diff --git a/include/api/api_status_content.h b/include/api/api_content.h similarity index 85% rename from include/api/api_status_content.h rename to include/api/api_content.h index f0f75a1..5ed59af 100644 --- a/include/api/api_status_content.h +++ b/include/api/api_content.h @@ -17,6 +17,8 @@ #define ENTRIES_STRING(ENTRY) \ ENTRY(main_config_data_basic->callsign, callsign) \ + ENTRY(SW_VER, sw_ver) \ + ENTRY(SW_DATE, sw_data) \ #define ENTRIES_32INT_STATUS(ENTRY) \ ENTRY(master_time, master_time) \ @@ -42,9 +44,12 @@ ENTRY(rte_wx_temperature_average_pt, temperature_pt) \ ENTRY(rte_wx_temperature_average_internal, temperature_internal)\ ENTRY(rte_wx_pressure_average, pressure) \ + ENTRY(rte_wx_humidity_valid, humidity) \ ENTRY(rte_wx_average_winddirection, wind_direction) \ - ENTRY(rte_wx_average_windspeed, wind_speed) \ + ENTRY(rte_wx_average_windspeed, wind_average) \ ENTRY(rte_wx_max_windspeed, wind_gust) \ + ENTRY(rte_wx_windspeed[rte_wx_windspeed_it], wind_current) \ + ENTRY(rte_wx_get_minimum_windspeed(), wind_minimal) \ #define ENTRIES_32INT_WEATHER(ENTRY) \ ENTRY(pwm_first_channel, pwm_first) \ diff --git a/include/config_data.h b/include/config_data.h index 0d1bb00..8ee16ac 100644 --- a/include/config_data.h +++ b/include/config_data.h @@ -332,11 +332,21 @@ typedef struct config_data_gsm_t { // password for APN connection char password[24]; + uint8_t api_enable; + // http://pogoda.cc:8080/meteo_backend char api_base_url[64]; char api_station_name[32]; + uint8_t aprsis_enable; + + char aprsis_server_address[64]; + + uint16_t aprsis_server_port; + + uint32_t aprsis_passcode; + } config_data_gsm_t; #endif /* CONFIG_DATA_H_ */ diff --git a/include/rte_wx.h b/include/rte_wx.h index 3400339..8379a7d 100644 --- a/include/rte_wx.h +++ b/include/rte_wx.h @@ -56,6 +56,18 @@ extern uint16_t rte_wx_average_windspeed; extern uint16_t rte_wx_max_windspeed; extern int16_t rte_wx_average_winddirection; +inline uint16_t rte_wx_get_minimum_windspeed(void) { + uint16_t out = 0xFFFF; + + for (int i = 0 ; i < WIND_AVERAGE_LEN; i++) { + if (rte_wx_windspeed[i] < out) { + out = rte_wx_windspeed[i]; + } + } + + return out; +} + extern int8_t rte_wx_humidity, rte_wx_humidity_valid; extern uint8_t rte_wx_tx20_excessive_slew_rate; diff --git a/src/api.c b/src/api.c index d255941..3ae477c 100644 --- a/src/api.c +++ b/src/api.c @@ -8,7 +8,7 @@ * 19 maja, Krszystof Binek, miedy 12 a 13 */ -#include "api/api_status_content.h" +#include #include "etc/api_configuration.h" #include "http_client/http_client.h" @@ -18,7 +18,7 @@ /** * Buffers for generating JSON and URL */ -#define API_BUFFER_LN 384 +#define API_BUFFER_LN 512 char api_buffer[API_BUFFER_LN]; #define URL_BUFFER_LN 96 char api_url_buffer[URL_BUFFER_LN]; diff --git a/src/config_data_default.c b/src/config_data_default.c index 3eadf21..2e407b0 100644 --- a/src/config_data_default.c +++ b/src/config_data_default.c @@ -465,7 +465,21 @@ const config_data_gsm_t __attribute__((section(".config_section_default.gsm"))) .username = "\0", - .password = "\0" + .password = "\0", + + .api_enable = 1, + + .api_base_url = "http://pogoda.cc:8080/meteo_backend", + + .api_station_name = "pilsko", + + .aprsis_enable = 1, + + .aprsis_passcode = 16823, + + .aprsis_server_port = 14580, + + .aprsis_server_address = "euro.aprs2.net\0" }; #endif diff --git a/src/config_data_first.c b/src/config_data_first.c index a637589..2d3283e 100644 --- a/src/config_data_first.c +++ b/src/config_data_first.c @@ -469,6 +469,21 @@ const config_data_gsm_t __attribute__((section(".config_section_first.gsm"))) co .username = "\0", - .password = "\0" + .password = "\0", + + .api_enable = 1, + + .api_base_url = "http://pogoda.cc:8080/meteo_backend", + + .api_station_name = "pilsko", + + .aprsis_enable = 1, + + .aprsis_passcode = 16823, + + .aprsis_server_port = 14580, + + .aprsis_server_address = "euro.aprs2.net\0" + }; #endif diff --git a/src/config_data_second.c b/src/config_data_second.c index bb6155e..ba3fb4f 100644 --- a/src/config_data_second.c +++ b/src/config_data_second.c @@ -463,7 +463,21 @@ const config_data_gsm_t __attribute__((section(".config_section_second.gsm"))) c .username = "\0", - .password = "\0" + .password = "\0", + + .api_enable = 1, + + .api_base_url = "http://pogoda.cc:8080/meteo_backend", + + .api_station_name = "pilsko", + + .aprsis_enable = 1, + + .aprsis_passcode = 16823, + + .aprsis_server_port = 14580, + + .aprsis_server_address = "euro.aprs2.net\0" }; #endif diff --git a/src/main.c b/src/main.c index 3adcffb..0ce9faa 100644 --- a/src/main.c +++ b/src/main.c @@ -950,9 +950,9 @@ int main(int argc, char* argv[]){ http_client_init(&main_gsm_state, main_gsm_srl_ctx_ptr, 0); - api_init("http://pogoda.cc:8080/meteo_backend\0", "skrzyczne\0"); + api_init(main_config_data_gsm->api_base_url, main_config_data_gsm->api_station_name); - aprsis_init(&main_gsm_srl_ctx, &main_gsm_state, "SP8EBC", 10, 23220, TEST_IP, 14580); + aprsis_init(&main_gsm_srl_ctx, &main_gsm_state, main_config_data_basic->callsign, main_config_data_basic->ssid, main_config_data_gsm->aprsis_passcode, main_config_data_gsm->aprsis_server_address, main_config_data_gsm->aprsis_server_port); } pwm_input_io_init(); @@ -1071,6 +1071,7 @@ int main(int argc, char* argv[]){ ax25_new_msg_rx_flag = 0; rx10m++; + rte_main_rx_total++; } #ifdef STM32L471xx diff --git a/src/packet_tx_handler.c b/src/packet_tx_handler.c index d4df444..a523745 100644 --- a/src/packet_tx_handler.c +++ b/src/packet_tx_handler.c @@ -19,6 +19,7 @@ #ifdef STM32L471xx #include "aprsis.h" +#include "api/api.h" #include "pwr_save.h" #endif diff --git a/system/src/aprs/afsk.c b/system/src/aprs/afsk.c index 2b6ebf2..a37c559 100644 --- a/system/src/aprs/afsk.c +++ b/system/src/aprs/afsk.c @@ -29,6 +29,8 @@ char DrawCounter; extern unsigned short tx10m; +extern uint32_t rte_main_tx_total; + /** * Sine table for the first quarter of wave. @@ -307,7 +309,8 @@ void afsk_txStart(Afsk *af) { if (!af->sending) { - tx10m++; + tx10m++; + rte_main_tx_total++; af->phase_inc = MARK_INC; af->phase_acc = 0; diff --git a/system/src/aprs/telemetry.c b/system/src/aprs/telemetry.c index b330a13..8bc7daf 100644 --- a/system/src/aprs/telemetry.c +++ b/system/src/aprs/telemetry.c @@ -605,7 +605,7 @@ void telemetry_send_status_powersave_registers(uint32_t register_last_sleep, uin main_wait_for_tx_complete(); memset(main_own_aprs_msg, 0x00, sizeof(main_own_aprs_msg)); - main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ">[powersave registers][register_last_sleep: 0x%lX][register_last_wakeup: 0x%lX][register_counters: 0x%lX][monitor: 0x%lX][last_sleep_time: 0x%lX]",register_last_sleep, register_last_wakeup, register_counters, monitor, last_sleep_time); + main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ">[powersave registers][last_sleep_ts: 0x%lX][last_wakeup_ts: 0x%lX][sleep_wakeup_cntrs: 0x%lX][monitor: 0x%lX][last_sleep_time: 0x%lX]",register_last_sleep, register_last_wakeup, register_counters, monitor, last_sleep_time); ax25_sendVia(&main_ax25, main_own_path, main_own_path_ln, main_own_aprs_msg, main_own_aprs_msg_len); //while (main_ax25.dcd == 1); afsk_txStart(&main_afsk); diff --git a/system/src/aprs/wx.c b/system/src/aprs/wx.c index ad67ee4..6816026 100644 --- a/system/src/aprs/wx.c +++ b/system/src/aprs/wx.c @@ -59,8 +59,6 @@ void SendWXFrame(uint16_t windspeed, uint16_t windgusts, uint16_t winddirection, after_tx_lock = 1; while(main_ax25.dcd == true); afsk_txStart(&main_afsk); - - }