kopia lustrzana https://github.com/SP8EBC/ParaTNC
internal watchdog enabled once again. bugfix in sending telemetry channel descritpions
rodzic
4ced3c5b39
commit
f62de2051a
|
@ -96,9 +96,9 @@ telemetry_description_t aprsis_send_description_telemetry(uint8_t async,
|
|||
const char * callsign_with_ssid);
|
||||
|
||||
void aprsis_igate_to_aprsis(AX25Msg *msg, const char * callsign_with_ssid);
|
||||
void aprsis_send_server_conn_status(const char * callsign_with_ssid);
|
||||
void aprsis_send_server_comm_counters(const char * callsign_with_ssid);
|
||||
void aprsis_send_loginstring(const char * callsign_with_ssid, uint8_t rtc_ok, uint16_t voltage);
|
||||
void aprsis_send_gpsstatus(const char * callsign_with_ssid);
|
||||
void aprsis_send_gsm_status(const char * callsign_with_ssid);
|
||||
|
||||
char * aprsis_get_tx_buffer(void);
|
||||
uint8_t aprsis_get_aprsis_logged(void);
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#define SYSTICK_TICKS_PER_SECONDS 100
|
||||
#define SYSTICK_TICKS_PERIOD 10
|
||||
|
||||
//#define INTERNAL_WATCHDOG
|
||||
#define INTERNAL_WATCHDOG
|
||||
#define EXTERNAL_WATCHDOG
|
||||
|
||||
#define PWR_SWITCH_BOTH
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
//!< Set after everything was reinitialized from
|
||||
#define RTE_MAIN_WOKEN_UP_EXITED 4u
|
||||
|
||||
extern uint8_t rte_main_trigger_gsm_status_packet;
|
||||
extern uint8_t rte_main_trigger_gsm_aprsis_counters_packet;
|
||||
|
||||
extern uint8_t rte_main_trigger_gsm_loginstring_packet;
|
||||
|
||||
|
@ -22,7 +22,7 @@ extern uint8_t rte_main_trigger_gsm_telemetry_values;
|
|||
|
||||
extern uint8_t rte_main_trigger_gsm_telemetry_descriptions;
|
||||
|
||||
extern uint8_t rte_main_trigger_gsm_status_gsm;
|
||||
extern uint8_t rte_main_trigger_gsm_status;
|
||||
|
||||
//!< Trigger some reinitialization after waking up from deep sleep
|
||||
extern uint8_t rte_main_woken_up;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#define SOFTWARE_VERSION_H_
|
||||
|
||||
#define SW_VER "EB03"
|
||||
#define SW_DATE "16112023"
|
||||
#define SW_DATE "19112023"
|
||||
#define SW_KISS_PROTO "B"
|
||||
|
||||
extern const char software_version_str[5];
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include "stdint.h"
|
||||
|
||||
int variant_validate_is_within_ram(void * address);
|
||||
|
||||
int variant_validate_is_within_flash(void * address);
|
||||
|
||||
|
||||
#endif /* VARIANT_H_ */
|
||||
|
|
|
@ -303,7 +303,7 @@ aprsis_return_t aprsis_connect_and_login(const char * address, uint8_t address_l
|
|||
aprsis_logged = 1;
|
||||
|
||||
// trigger GSM status APRS-IS packet, when connection is ready
|
||||
rte_main_trigger_gsm_status_gsm = 1;
|
||||
rte_main_trigger_gsm_status = 1;
|
||||
|
||||
// set current timestamp as last
|
||||
aprsis_last_keepalive_ts = master_time;
|
||||
|
@ -906,7 +906,7 @@ void aprsis_igate_to_aprsis(AX25Msg *msg, const char * callsign_with_ssid) {
|
|||
|
||||
}
|
||||
|
||||
void aprsis_send_server_conn_status(const char * callsign_with_ssid) {
|
||||
void aprsis_send_server_comm_counters(const char * callsign_with_ssid) {
|
||||
|
||||
if (aprsis_logged == 0) {
|
||||
return;
|
||||
|
@ -956,7 +956,7 @@ void aprsis_send_loginstring(const char * callsign_with_ssid, uint8_t rtc_ok, ui
|
|||
|
||||
}
|
||||
|
||||
void aprsis_send_gpsstatus(const char * callsign_with_ssid) {
|
||||
void aprsis_send_gsm_status(const char * callsign_with_ssid) {
|
||||
if (aprsis_logged == 0) {
|
||||
return;
|
||||
}
|
||||
|
|
18
src/main.c
18
src/main.c
|
@ -1250,17 +1250,17 @@ int main(int argc, char* argv[]){
|
|||
gsm_sim800_tx_done_event_handler(main_gsm_srl_ctx_ptr, &main_gsm_state);
|
||||
}
|
||||
|
||||
if (rte_main_trigger_gsm_status_gsm == 1 && gsm_sim800_tcpip_tx_busy() == 0) {
|
||||
rte_main_trigger_gsm_status_gsm = 0;
|
||||
if (rte_main_trigger_gsm_status == 1 && gsm_sim800_tcpip_tx_busy() == 0) {
|
||||
rte_main_trigger_gsm_status = 0;
|
||||
|
||||
aprsis_send_gpsstatus((const char *)&main_callsign_with_ssid);
|
||||
aprsis_send_gsm_status((const char *)&main_callsign_with_ssid);
|
||||
}
|
||||
|
||||
// if GSM status message is triggered and GSM module is not busy transmitting something else
|
||||
if (rte_main_trigger_gsm_status_packet == 1 && gsm_sim800_tcpip_tx_busy() == 0) {
|
||||
rte_main_trigger_gsm_status_packet = 0;
|
||||
if (rte_main_trigger_gsm_aprsis_counters_packet == 1 && gsm_sim800_tcpip_tx_busy() == 0) {
|
||||
rte_main_trigger_gsm_aprsis_counters_packet = 0;
|
||||
|
||||
aprsis_send_server_conn_status((const char *)&main_callsign_with_ssid);
|
||||
aprsis_send_server_comm_counters((const char *)&main_callsign_with_ssid);
|
||||
}
|
||||
|
||||
// if loginstring packet (APRS status packet with loginstring received from a server)
|
||||
|
@ -1478,7 +1478,7 @@ int main(int argc, char* argv[]){
|
|||
|
||||
}
|
||||
|
||||
if (main_config_data_gsm->aprsis_enable != 0) {
|
||||
if ((main_config_data_gsm->aprsis_enable != 0) && (main_config_data_mode->gsm == 1)) {
|
||||
|
||||
if (pwr_save_is_currently_cutoff() == 0) {
|
||||
const int i_am_ok_with_aprsis = aprsis_check_connection_attempt_alive();
|
||||
|
@ -1503,6 +1503,10 @@ int main(int argc, char* argv[]){
|
|||
if (system_is_rtc_ok() == 0) {
|
||||
rte_main_reboot_req = 1;
|
||||
}
|
||||
|
||||
if ((main_config_data_gsm->aprsis_enable != 0) && (main_config_data_mode->gsm == 1)) {
|
||||
rte_main_trigger_gsm_aprsis_counters_packet = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ uint8_t rte_main_trigger_status = 0;
|
|||
uint8_t rte_main_trigger_wx_packet = 0;
|
||||
|
||||
#ifdef PARAMETEO
|
||||
uint8_t rte_main_trigger_gsm_status_packet = 0;
|
||||
uint8_t rte_main_trigger_gsm_aprsis_counters_packet = 0;
|
||||
|
||||
//!< Trigger sending status packet with received APRS is login string
|
||||
uint8_t rte_main_trigger_gsm_loginstring_packet = 0;
|
||||
|
@ -30,7 +30,7 @@ uint8_t rte_main_trigger_gsm_telemetry_values = 0;
|
|||
uint8_t rte_main_trigger_gsm_telemetry_descriptions = 0;
|
||||
|
||||
//!<
|
||||
uint8_t rte_main_trigger_gsm_status_gsm = 0;
|
||||
uint8_t rte_main_trigger_gsm_status = 0;
|
||||
|
||||
//!< Trigger some reinitialization after waking up from deep sleep
|
||||
uint8_t rte_main_woken_up = 0;
|
||||
|
|
|
@ -23,3 +23,16 @@ int variant_validate_is_within_ram(void * address) {
|
|||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int variant_validate_is_within_flash(void * address) {
|
||||
|
||||
uint32_t addr_value = (uint32_t)address;
|
||||
|
||||
if (addr_value > FLASH_BASE &&
|
||||
addr_value < FLASH_BANK1_END) {
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -326,11 +326,13 @@ void telemetry_send_chns_description(const config_data_basic_t * const config_ba
|
|||
|
||||
uint8_t is_viscous = 1;
|
||||
|
||||
if (variant_validate_is_within_ram(config_basic) == 0) {
|
||||
if (variant_validate_is_within_ram(config_basic) == 0 &&
|
||||
variant_validate_is_within_flash(config_basic) == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (variant_validate_is_within_ram(config_mode) == 0) {
|
||||
if (variant_validate_is_within_ram(config_basic) == 0 &&
|
||||
variant_validate_is_within_flash(config_basic) == 0) {
|
||||
is_viscous = 0;
|
||||
}
|
||||
else if (config_mode->digi_viscous == 0) {
|
||||
|
|
Ładowanie…
Reference in New Issue