volatile keyword added to delay counter variable. telemetry modified to show NOT_AVALIABLE quality factors

pull/2/head
Mateusz Lubecki 2019-01-27 17:33:53 +01:00
rodzic be03b44f7e
commit d40e78fd32
7 zmienionych plików z 40 dodań i 21 usunięć

Wyświetl plik

@ -11,7 +11,7 @@
#include "stdint.h"
#include "main.h"
extern uint16_t delay_cnt;
extern volatile uint16_t delay_cnt;
void delay_set(uint16_t delay_in_msecs, uint8_t randomize);
void delay_fixed(uint16_t delay_in_msecs);

Wyświetl plik

@ -3,6 +3,9 @@
#include "aprs/ax25.h"
#define SW_VER "DA01"
#define SW_DATE "27012019"
#define SYSTICK_TICKS_PER_SECONDS 100
#define SYSTICK_TICKS_PERIOD 10

Wyświetl plik

@ -11,7 +11,7 @@ uint16_t preset_delay_msecs = 0;
uint8_t preset_use_random = 0;
// counter decrement in Systick handler
uint16_t delay_cnt = 0;
volatile uint16_t delay_cnt = 0;
void delay_fixed(uint16_t delay_in_msecs) {
@ -47,7 +47,7 @@ void delay_from_preset(void) {
delay_cnt = preset_delay_msecs;
while(delay_cnt > 0);
while(delay_cnt > (uint16_t)0);
if (preset_use_random == 1) {
delay_random();

Wyświetl plik

@ -22,7 +22,7 @@ uint8_t packet_tx_telemetry_interval = 10;
uint8_t packet_tx_telemetry_counter = 0;
uint8_t packet_tx_telemetry_descr_interval = 40;
uint8_t packet_tx_telemetry_descr_counter = 0;
uint8_t packet_tx_telemetry_descr_counter = 35;
// this shall be called in 60 seconds periods
void packet_tx_handler(void) {
@ -85,7 +85,11 @@ void packet_tx_handler(void) {
main_wait_for_tx_complete();
packet_tx_telemetry_descr_interval = 0;
telemetry_send_status();
main_wait_for_tx_complete();
packet_tx_telemetry_descr_counter = 0;
}
}

Wyświetl plik

@ -23,6 +23,8 @@ void wx_get_all_measurements(void) {
// checking if communication was successfull
if (rte_wx_temperature_dallas != -128.0f)
rte_wx_temperature_dallas_valid = rte_wx_temperature_dallas;
else
rte_wx_temperature_dallas_valid = 0.0f;
#endif
#ifdef _METEO

Wyświetl plik

@ -28,6 +28,7 @@ void telemetry_send_values( uint8_t rx_pkts,
ms5611_qf_t ms_qf,
dht22QF ds_qf);
void telemetry_send_chns_description(void);
void telemetry_send_status(void);
#ifdef __cplusplus
}

Wyświetl plik

@ -16,13 +16,13 @@ void telemetry_send_chns_description(void) {
while (main_afsk.sending == 1);
#if (_SSID == 0)
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ":%s :PARM.Rx10min,Tx10min,Digi10min,HostTx10m,Tempre,DS_QF_FULL,DS_QF_DEGRAD,DS_QF_NAVBLE,MS_QF_FULL,DHT_QF_FULL,N", _CALL);
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ":%s :PARM.Rx10min,Tx10min,Digi10min,HostTx10m,Tempre,DS_QF_FULL,DS_QF_DEGRAD,DS_QF_NAVBLE,MS_QF_NAVBLE,DHT_QF_NAVBLE,TX20_SLEW", _CALL);
#endif
#if (_SSID > 0 && _SSID <= 9)
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ":%s-%d :PARM.Rx10min,Tx10min,Digi10min,HostTx10m,Tempre,DS_QF_FULL,DS_QF_DEGRAD,DS_QF_NAVBLE,MS_QF_FULL,DHT_QF_FULL,N", _CALL, _SSID);
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ":%s-%d :PARM.Rx10min,Tx10min,Digi10min,HostTx10m,Tempre,DS_QF_FULL,DS_QF_DEGRAD,DS_QF_NAVBLE,MS_QF_NAVBLE,DHT_QF_NAVBLE,TX20_SLEW", _CALL, _SSID);
#endif
#if (_SSID > 9 && _SSID <= 15)
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ":%s-%d:PARM.Rx10min,Tx10min,Digi10min,HostTx10m,Tempre,DS_QF_FULL,DS_QF_DEGRADA,DS_QF_NAVBLE,MS_QF_FULL,DHT_QF_FULL,N", _CALL, _SSID);
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ":%s-%d:PARM.Rx10min,Tx10min,Digi10min,HostTx10m,Tempre,DS_QF_FULL,DS_QF_DEGRADA,DS_QF_NAVBLE,MS_QF_NAVBLE,DHT_QF_NAVBLE,TX20_SLEW", _CALL, _SSID);
#endif
main_own_aprs_msg[main_own_aprs_msg_len] = 0;
ax25_sendVia(&main_ax25, main_own_path, main_own_path_ln, main_own_aprs_msg, main_own_aprs_msg_len);
@ -52,13 +52,13 @@ main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ":%s-%d:PARM.Rx10min,Tx10min,
delay_fixed(1200);
#if (_SSID == 0)
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ":%s :UNIT.Pkt,Pkt,Pkt,Pkt,DegC,Hi,Hi,Hi,Hi,Hi,N", _CALL);
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ":%s :UNIT.Pkt,Pkt,Pkt,Pkt,DegC,Hi,Hi,Hi,Hi,Hi,Hi", _CALL);
#endif
#if (_SSID > 0 && _SSID <= 9)
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ":%s-%d :UNIT.Pkt,Pkt,Pkt,Pkt,DegC,Hi,Hi,Hi,Hi,Hi,N", _CALL, _SSID);
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ":%s-%d :UNIT.Pkt,Pkt,Pkt,Pkt,DegC,Hi,Hi,Hi,Hi,Hi,Hi", _CALL, _SSID);
#endif
#if (_SSID > 9 && _SSID <= 15)
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ":%s-%d:UNIT.Pkt,Pkt,Pkt,Pkt,DegC,Hi,Hi,Hi,Hi,Hi,N", _CALL, _SSID);
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ":%s-%d:UNIT.Pkt,Pkt,Pkt,Pkt,DegC,Hi,Hi,Hi,Hi,Hi,Hi", _CALL, _SSID);
#endif
main_own_aprs_msg[main_own_aprs_msg_len] = 0;
ax25_sendVia(&main_ax25, main_own_path, main_own_path_ln, main_own_aprs_msg, main_own_aprs_msg_len);
@ -81,8 +81,8 @@ void telemetry_send_values( uint8_t rx_pkts,
// local variables with characters to be inserted to APRS telemetry frame
char qf = '0', degr = '0', nav = '0';
char ms_qf_full = '0';
char dht_qf_full = '0';
char ms_qf_navaliable = '0';
char dht_qf_navaliable = '0';
uint8_t scaled_temperature = 0;
@ -114,26 +114,28 @@ void telemetry_send_values( uint8_t rx_pkts,
}
switch (ms_qf) {
case MS5611_QF_FULL:
ms_qf_full = '1';
case MS5611_QF_NOT_AVALIABLE:
case MS5611_QF_UNKNOWN:
ms_qf_navaliable = '1';
break;
default:
ms_qf_full = '0';
ms_qf_navaliable = '0';
break;
}
switch (ds_qf) {
case DHT22_QF_FULL:
dht_qf_full = '1';
case DHT22_QF_UNAVALIABLE:
case DHT22_QF_UNKNOWN:
dht_qf_navaliable = '1';
break;
default:
dht_qf_full = '0';
dht_qf_navaliable = '0';
}
#ifdef _DALLAS_AS_TELEM
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, "T#%03d,%03d,%03d,%03d,%03d,%03d,%c%c%c%c%c000", telemetry_counter++, rx_pkts, tx_pkts, digi_pkts, kiss_pkts, scaled_temperature, qf, degr, nav, ms_qf_full, dht_qf_full);
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, "T#%03d,%03d,%03d,%03d,%03d,%03d,%c%c%c%c%c000", telemetry_counter++, rx_pkts, tx_pkts, digi_pkts, kiss_pkts, scaled_temperature, qf, degr, nav, ms_qf_navaliable, dht_qf_navaliable);
#else
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, "T#%03d,%03d,%03d,%03d,%03d,%03d,%c%c%c%c%c000", telemetry_counter++, rx_pkts, tx_pkts, digi_pkts, kiss_pkts, 0, qf, degr, nav, ms_qf_full, dht_qf_full);
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, "T#%03d,%03d,%03d,%03d,%03d,%03d,%c%c%c%c%c000", telemetry_counter++, rx_pkts, tx_pkts, digi_pkts, kiss_pkts, 0, qf, degr, nav, ms_qf_navaliable, dht_qf_navaliable);
#endif
if (telemetry_counter > 999)
@ -147,3 +149,10 @@ void telemetry_send_values( uint8_t rx_pkts,
afsk_txStart(&main_afsk);
}
void telemetry_send_status(void) {
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ">ParaTNC firmware %s-%s by SP8EBC", SW_VER, SW_DATE);
ax25_sendVia(&main_ax25, main_own_path, main_own_path_ln, main_own_aprs_msg, main_own_aprs_msg_len);
afsk_txStart(&main_afsk);
}