kopia lustrzana https://github.com/SP8EBC/ParaTNC
Quality Factors unified across different kinds of sensors
rodzic
1581920fe1
commit
13ea140060
|
@ -1 +0,0 @@
|
|||
,mateusz,mateusz-Latitude-E5510,21.07.2020 00:45,file:///home/mateusz/.config/libreoffice/4;
|
Plik binarny nie jest wyświetlany.
|
@ -4,8 +4,8 @@
|
|||
#include "aprs/ax25.h"
|
||||
#include "drivers/serial.h"
|
||||
|
||||
#define SW_VER "DF04"
|
||||
#define SW_DATE "12072020"
|
||||
#define SW_VER "DF05"
|
||||
#define SW_DATE "24072020"
|
||||
|
||||
#define SYSTICK_TICKS_PER_SECONDS 100
|
||||
#define SYSTICK_TICKS_PERIOD 10
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "drivers/dallas.h"
|
||||
#include "drivers/ms5611.h"
|
||||
#include "drivers/bme280.h"
|
||||
#include "drivers/analog_anemometer.h"
|
||||
#include "../umb_master/umb_master.h"
|
||||
#include "../umb_master/umb_qf_t.h"
|
||||
|
||||
|
@ -52,6 +53,7 @@ extern dallas_qf_t rte_wx_current_dallas_qf, rte_wx_error_dallas_qf;
|
|||
extern dallas_average_t rte_wx_dallas_average;
|
||||
extern ms5611_qf_t rte_wx_ms5611_qf;
|
||||
extern bme280_qf_t rte_wx_bme280_qf;
|
||||
extern analog_wind_qf_t rte_wx_analog_wind_qf;
|
||||
|
||||
#ifdef _UMB_MASTER
|
||||
|
||||
|
|
|
@ -38,6 +38,10 @@ uint8_t packet_tx_telemetry_descr_counter = 145;
|
|||
void packet_tx_handler(void) {
|
||||
dallas_qf_t dallas_qf = DALLAS_QF_UNKNOWN;
|
||||
|
||||
pressure_qf_t pressure_qf = PRESSURE_QF_UNKNOWN;
|
||||
humidity_qf_t humidity_qf = HUMIDITY_QF_UNKNOWN;
|
||||
wind_qf_t wind_qf = WIND_QF_UNKNOWN;
|
||||
|
||||
int ln = 0;
|
||||
|
||||
packet_tx_beacon_counter++;
|
||||
|
@ -135,6 +139,65 @@ void packet_tx_handler(void) {
|
|||
rte_wx_current_dallas_qf = DALLAS_QF_UNKNOWN;
|
||||
}
|
||||
|
||||
// pressure sensors quality factors
|
||||
if (rte_wx_ms5611_qf == MS5611_QF_UNKNOWN) {
|
||||
// use BME280 is used instead
|
||||
switch (rte_wx_bme280_qf) {
|
||||
case BME280_QF_FULL:
|
||||
case BME280_QF_HUMIDITY_DEGRADED: pressure_qf = PRESSURE_QF_FULL; break;
|
||||
case BME280_QF_UKNOWN:
|
||||
case BME280_QF_NOT_AVAILABLE: pressure_qf = PRESSURE_QF_NOT_AVALIABLE; break;
|
||||
case BME280_QF_PRESSURE_DEGRADED:
|
||||
case BME280_QF_GEN_DEGRADED: pressure_qf = PRESSURE_QF_DEGRADATED; break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// if not use MS5611
|
||||
switch (rte_wx_ms5611_qf) {
|
||||
case MS5611_QF_FULL: pressure_qf = PRESSURE_QF_FULL; break;
|
||||
case MS5611_QF_NOT_AVALIABLE: pressure_qf = PRESSURE_QF_NOT_AVALIABLE; break;
|
||||
case MS5611_QF_DEGRADATED: pressure_qf = PRESSURE_QF_DEGRADATED; break;
|
||||
case MS5611_QF_UNKNOWN: pressure_qf = PRESSURE_QF_UNKNOWN; break;
|
||||
}
|
||||
}
|
||||
|
||||
// humidity sensors quality factors
|
||||
if (rte_wx_bme280_qf == BME280_QF_UKNOWN) {
|
||||
// use DHT22
|
||||
switch(rte_wx_dht_valid.qf) {
|
||||
case DHT22_QF_UNKNOWN: humidity_qf = HUMIDITY_QF_UNKNOWN; break;
|
||||
case DHT22_QF_FULL: humidity_qf = HUMIDITY_QF_FULL; break;
|
||||
case DHT22_QF_DEGRADATED: humidity_qf = HUMIDITY_QF_DEGRADATED; break;
|
||||
case DHT22_QF_UNAVALIABLE: humidity_qf = HUMIDITY_QF_NOT_AVALIABLE; break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// use BME280
|
||||
switch (rte_wx_bme280_qf) {
|
||||
case BME280_QF_FULL:
|
||||
case BME280_QF_PRESSURE_DEGRADED: humidity_qf = HUMIDITY_QF_FULL; break;
|
||||
case BME280_QF_UKNOWN:
|
||||
case BME280_QF_NOT_AVAILABLE: humidity_qf = HUMIDITY_QF_NOT_AVALIABLE; break;
|
||||
case BME280_QF_HUMIDITY_DEGRADED:
|
||||
case BME280_QF_GEN_DEGRADED: humidity_qf = HUMIDITY_QF_DEGRADATED; break;
|
||||
}
|
||||
}
|
||||
|
||||
// wind quality factor
|
||||
if (rte_wx_analog_wind_qf == AN_WIND_QF_UNKNOWN) {
|
||||
|
||||
}
|
||||
else {
|
||||
switch (rte_wx_analog_wind_qf) {
|
||||
case AN_WIND_QF_FULL: wind_qf = WIND_QF_FULL; break;
|
||||
case AN_WIND_QF_DEGRADED_DEBOUNCE:
|
||||
case AN_WIND_QF_DEGRADED_SLEW:
|
||||
case AN_WIND_QF_DEGRADED: wind_qf = WIND_QF_DEGRADATED; break;
|
||||
case AN_WIND_QF_NOT_AVALIABLE:
|
||||
case AN_WIND_QF_UNKNOWN: wind_qf = WIND_QF_NOT_AVALIABLE; break;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef _VICTRON
|
||||
//
|
||||
telemetry_send_values_pv(rx10m, digi10m, rte_pv_battery_current, rte_pv_battery_voltage, rte_pv_cell_voltage, dallas_qf, rte_wx_ms5611_qf, rte_wx_dht_valid.qf);
|
||||
|
@ -147,7 +210,7 @@ void packet_tx_handler(void) {
|
|||
#elif defined _METEO
|
||||
// if _METEO will be enabled, but without _DALLAS_AS_TELEM the fifth channel will be used to transmit temperature from MS5611
|
||||
// which may be treated then as 'rack/cabinet internal temperature'. Dallas DS12B10 will be used for ragular WX frames
|
||||
telemetry_send_values(rx10m, tx10m, digi10m, kiss10m, rte_wx_temperature_ms_valid, dallas_qf, rte_wx_ms5611_qf, rte_wx_dht.qf, rte_wx_umb_qf);
|
||||
telemetry_send_values(rx10m, tx10m, digi10m, kiss10m, rte_wx_temperature_ms_valid, dallas_qf, pressure_qf, humidity_qf, wind_qf);
|
||||
#else
|
||||
// if user will disable both _METEO and _DALLAS_AS_TELEM value will be zeroed internally anyway
|
||||
telemetry_send_values(rx10m, tx10m, digi10m, kiss10m, 0.0f, dallas_qf, rte_wx_ms5611_qf, rte_wx_dht.qf, rte_wx_umb_qf);
|
||||
|
|
|
@ -36,8 +36,9 @@ uint8_t rte_wx_tx20_excessive_slew_rate = 0;
|
|||
dht22Values rte_wx_dht, rte_wx_dht_valid; // quality factor inside this structure
|
||||
dallas_qf_t rte_wx_current_dallas_qf, rte_wx_error_dallas_qf = DALLAS_QF_UNKNOWN;
|
||||
dallas_average_t rte_wx_dallas_average;
|
||||
ms5611_qf_t rte_wx_ms5611_qf;
|
||||
bme280_qf_t rte_wx_bme280_qf;
|
||||
ms5611_qf_t rte_wx_ms5611_qf = MS5611_QF_UNKNOWN;
|
||||
bme280_qf_t rte_wx_bme280_qf = BME280_QF_UKNOWN;
|
||||
analog_wind_qf_t rte_wx_analog_wind_qf = AN_WIND_QF_UNKNOWN;
|
||||
|
||||
#ifdef _UMB_MASTER
|
||||
umb_frame_t rte_wx_umb;
|
||||
|
|
|
@ -105,6 +105,10 @@ void wx_get_all_measurements(void) {
|
|||
rte_wx_pressure_valid = pressure_average_sum / (float)j;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// set the quality factor is sensor is not responding on the i2c bus
|
||||
rte_wx_bme280_qf = BME280_QF_NOT_AVAILABLE;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined _METEO || defined _DALLAS_AS_TELEM
|
||||
|
@ -355,6 +359,8 @@ void wx_pool_anemometer(void) {
|
|||
if (rte_wx_average_winddirection < 0)
|
||||
rte_wx_average_winddirection += 360;
|
||||
|
||||
rte_wx_analog_wind_qf = analog_anemometer_get_qf();
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,27 @@
|
|||
|
||||
#include "stdint.h"
|
||||
|
||||
typedef enum pressure_qf {
|
||||
PRESSURE_QF_UNKNOWN = 0,
|
||||
PRESSURE_QF_FULL = 1,
|
||||
PRESSURE_QF_NOT_AVALIABLE = 2,
|
||||
PRESSURE_QF_DEGRADATED = 3
|
||||
}pressure_qf_t;
|
||||
|
||||
typedef enum humidity_qf {
|
||||
HUMIDITY_QF_UNKNOWN = 0,
|
||||
HUMIDITY_QF_FULL = 1,
|
||||
HUMIDITY_QF_NOT_AVALIABLE = 2,
|
||||
HUMIDITY_QF_DEGRADATED = 3
|
||||
}humidity_qf_t;
|
||||
|
||||
typedef enum wind_qf {
|
||||
WIND_QF_UNKNOWN = 0,
|
||||
WIND_QF_FULL = 1,
|
||||
WIND_QF_NOT_AVALIABLE = 2,
|
||||
WIND_QF_DEGRADATED = 3
|
||||
}wind_qf_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
|
@ -48,9 +69,9 @@ void telemetry_send_values( uint8_t rx_pkts,
|
|||
uint8_t kiss_pkts,
|
||||
float temperature,
|
||||
dallas_qf_t dallas_qf,
|
||||
ms5611_qf_t ms_qf,
|
||||
dht22QF ds_qf,
|
||||
umb_qf_t anemometer_qf);
|
||||
pressure_qf_t press_qf,
|
||||
humidity_qf_t humid_qf,
|
||||
wind_qf_t anemometer_qf);
|
||||
void telemetry_send_chns_description(void);
|
||||
void telemetry_send_status(void);
|
||||
|
||||
|
|
|
@ -14,6 +14,14 @@
|
|||
|
||||
#ifdef _ANEMOMETER_ANALOGUE
|
||||
|
||||
typedef enum analog_wind_qf {
|
||||
AN_WIND_QF_FULL,
|
||||
AN_WIND_QF_DEGRADED_DEBOUNCE,
|
||||
AN_WIND_QF_DEGRADED_SLEW,
|
||||
AN_WIND_QF_DEGRADED,
|
||||
AN_WIND_QF_NOT_AVALIABLE,
|
||||
AN_WIND_QF_UNKNOWN
|
||||
} analog_wind_qf_t;
|
||||
|
||||
extern uint16_t analog_anemometer_windspeed_pulses_time[ANALOG_ANEMOMETER_SPEED_PULSES_N];
|
||||
extern uint16_t analog_anemometer_time_between_pulses[ANALOG_ANEMOMETER_SPEED_PULSES_N];
|
||||
|
@ -32,6 +40,7 @@ void analog_anemometer_dma_irq(void);
|
|||
uint32_t analog_anemometer_get_ms_from_pulse(uint16_t inter_pulse_time);
|
||||
int16_t analog_anemometer_direction_handler(void);
|
||||
void analog_anemometer_direction_reset(void);
|
||||
analog_wind_qf_t analog_anemometer_get_qf(void);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -24,7 +24,8 @@ typedef enum bme280_qf {
|
|||
BME280_QF_NOT_AVAILABLE,
|
||||
BME280_QF_HUMIDITY_DEGRADED,
|
||||
BME280_QF_PRESSURE_DEGRADED,
|
||||
BME280_QF_GEN_DEGRADED
|
||||
BME280_QF_GEN_DEGRADED,
|
||||
BME280_QF_UKNOWN
|
||||
}bme280_qf_t;
|
||||
|
||||
extern uint8_t bme280_data_buffer[BME280_LN_RAW_DATA + 1];
|
||||
|
|
|
@ -179,13 +179,13 @@ void telemetry_send_chns_description(void) {
|
|||
memset(main_own_aprs_msg, 0x00, sizeof(main_own_aprs_msg));
|
||||
|
||||
#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_NAVBLE,DHT_QF_NAVBLE,WIND_QF_DEGR,WIND_QF_NAVB", _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,QNH_QF_NAVBLE,HUM_QF_NAVBLE,WIND_QF_DEGR,WIND_QF_NAVB", _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_NAVBLE,DHT_QF_NAVBLE,WIND_QF_DEGR,WIND_QF_NAVB", _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,QNH_QF_NAVBLE,HUM_QF_NAVBLE,WIND_QF_DEGR,WIND_QF_NAVB", _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_NAVBLE,DHT_QF_NAVBLE,WIND_QF_DEGR,WIND_QF_NAVB", _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,QNH_QF_NAVBLE,HUM_QF_NAVBLE,WIND_QF_DEGR,WIND_QF_NAVB", _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);
|
||||
|
@ -238,29 +238,29 @@ void telemetry_send_values( uint8_t rx_pkts,
|
|||
uint8_t kiss_pkts,
|
||||
float temperature,
|
||||
dallas_qf_t dallas_qf,
|
||||
ms5611_qf_t ms_qf,
|
||||
dht22QF ds_qf,
|
||||
umb_qf_t anemometer_qf) {
|
||||
pressure_qf_t press_qf,
|
||||
humidity_qf_t humid_qf,
|
||||
wind_qf_t anemometer_qf) {
|
||||
|
||||
|
||||
// local variables with characters to be inserted to APRS telemetry frame
|
||||
char qf = '0', degr = '0', nav = '0';
|
||||
char ms_qf_navaliable = '0';
|
||||
char dht_qf_navaliable = '0';
|
||||
char pressure_qf_navaliable = '0';
|
||||
char humidity_qf_navaliable = '0';
|
||||
char anemometer_degradated = '0';
|
||||
char anemometer_navble = '0';
|
||||
|
||||
uint8_t scaled_temperature = 0;
|
||||
|
||||
if (anemometer_qf == UMB_QF_DEGRADED) {
|
||||
if (anemometer_qf == WIND_QF_DEGRADATED) {
|
||||
anemometer_degradated = '1';
|
||||
anemometer_navble = '0';
|
||||
}
|
||||
else if (anemometer_qf == UMB_QF_NOT_AVALIABLE) {
|
||||
else if (anemometer_qf == WIND_QF_NOT_AVALIABLE) {
|
||||
anemometer_degradated = '0';
|
||||
anemometer_navble = '1';
|
||||
}
|
||||
else if (anemometer_qf == UMB_QF_UNITIALIZED || anemometer_qf == UMB_QF_UNKNOWN) {
|
||||
else if (anemometer_qf == WIND_QF_UNKNOWN) {
|
||||
anemometer_degradated = '1';
|
||||
anemometer_navble = '1';
|
||||
}
|
||||
|
@ -292,31 +292,31 @@ void telemetry_send_values( uint8_t rx_pkts,
|
|||
break;
|
||||
}
|
||||
|
||||
switch (ms_qf) {
|
||||
case MS5611_QF_NOT_AVALIABLE:
|
||||
case MS5611_QF_UNKNOWN:
|
||||
ms_qf_navaliable = '1';
|
||||
switch (press_qf) {
|
||||
case PRESSURE_QF_NOT_AVALIABLE:
|
||||
case PRESSURE_QF_UNKNOWN:
|
||||
pressure_qf_navaliable = '1';
|
||||
break;
|
||||
default:
|
||||
ms_qf_navaliable = '0';
|
||||
pressure_qf_navaliable = '0';
|
||||
break;
|
||||
}
|
||||
|
||||
switch (ds_qf) {
|
||||
case DHT22_QF_UNAVALIABLE:
|
||||
case DHT22_QF_UNKNOWN:
|
||||
dht_qf_navaliable = '1';
|
||||
switch (humid_qf) {
|
||||
case HUMIDITY_QF_UNKNOWN:
|
||||
case HUMIDITY_QF_NOT_AVALIABLE:
|
||||
humidity_qf_navaliable = '1';
|
||||
break;
|
||||
default:
|
||||
dht_qf_navaliable = '0';
|
||||
humidity_qf_navaliable = '0';
|
||||
}
|
||||
|
||||
memset(main_own_aprs_msg, 0x00, sizeof(main_own_aprs_msg));
|
||||
|
||||
#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%c%c%c0", telemetry_counter++, rx_pkts, tx_pkts, digi_pkts, kiss_pkts, scaled_temperature, qf, degr, nav, ms_qf_navaliable, dht_qf_navaliable, anemometer_degradated, anemometer_navble);
|
||||
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, "T#%03d,%03d,%03d,%03d,%03d,%03d,%c%c%c%c%c%c%c0", telemetry_counter++, rx_pkts, tx_pkts, digi_pkts, kiss_pkts, scaled_temperature, qf, degr, nav, pressure_qf_navaliable, humidity_qf_navaliable, anemometer_degradated, anemometer_navble);
|
||||
#else
|
||||
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, "T#%03d,%03d,%03d,%03d,%03d,%03d,%c%c%c%c%c%c%c0", telemetry_counter++, rx_pkts, tx_pkts, digi_pkts, kiss_pkts, scaled_temperature, qf, degr, nav, ms_qf_navaliable, dht_qf_navaliable, anemometer_degradated, anemometer_navble);
|
||||
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, "T#%03d,%03d,%03d,%03d,%03d,%03d,%c%c%c%c%c%c%c0", telemetry_counter++, rx_pkts, tx_pkts, digi_pkts, kiss_pkts, scaled_temperature, qf, degr, nav, pressure_qf_navaliable, humidity_qf_navaliable, anemometer_degradated, anemometer_navble);
|
||||
#endif
|
||||
|
||||
if (telemetry_counter > 999)
|
||||
|
|
|
@ -56,6 +56,8 @@ uint8_t analog_anemometer_slew_limit_fired = 0;
|
|||
|
||||
uint8_t analog_anemometer_deboucing_fired = 0;
|
||||
|
||||
uint8_t analog_anemometer_direction_doesnt_work = 0;
|
||||
|
||||
DMA_InitTypeDef DMA_InitStruct;
|
||||
|
||||
// direction recalculated from v/f
|
||||
|
@ -383,6 +385,8 @@ int16_t analog_anemometer_direction_handler(void) {
|
|||
|
||||
TIM_Cmd(TIM3, ENABLE);
|
||||
|
||||
analog_anemometer_direction_doesnt_work = 1;
|
||||
|
||||
return rte_wx_winddirection_last;
|
||||
}
|
||||
|
||||
|
@ -455,4 +459,65 @@ void analog_anemometer_direction_reset(void) {
|
|||
TIM_Cmd(TIM3, ENABLE);
|
||||
}
|
||||
|
||||
analog_wind_qf_t analog_anemometer_get_qf(void) {
|
||||
|
||||
analog_wind_qf_t out;
|
||||
|
||||
if (
|
||||
analog_anemometer_slew_limit_fired == 0 &&
|
||||
analog_anemometer_deboucing_fired == 0 &&
|
||||
analog_anemometer_direction_doesnt_work == 0
|
||||
)
|
||||
{
|
||||
out = AN_WIND_QF_FULL;
|
||||
}
|
||||
else if (
|
||||
analog_anemometer_slew_limit_fired == 1 &&
|
||||
analog_anemometer_deboucing_fired == 0 &&
|
||||
analog_anemometer_direction_doesnt_work == 0
|
||||
)
|
||||
{
|
||||
out = AN_WIND_QF_DEGRADED_SLEW;
|
||||
}
|
||||
else if (
|
||||
analog_anemometer_slew_limit_fired == 0 &&
|
||||
analog_anemometer_deboucing_fired == 1 &&
|
||||
analog_anemometer_direction_doesnt_work == 0
|
||||
)
|
||||
{
|
||||
out = AN_WIND_QF_DEGRADED_DEBOUNCE;
|
||||
|
||||
}
|
||||
else if (
|
||||
analog_anemometer_slew_limit_fired == 1 &&
|
||||
analog_anemometer_deboucing_fired == 1 &&
|
||||
analog_anemometer_direction_doesnt_work == 0
|
||||
)
|
||||
{
|
||||
out = AN_WIND_QF_DEGRADED;
|
||||
|
||||
}
|
||||
else if (
|
||||
analog_anemometer_slew_limit_fired == 0 &&
|
||||
analog_anemometer_deboucing_fired == 0 &&
|
||||
analog_anemometer_direction_doesnt_work == 1
|
||||
)
|
||||
{
|
||||
out = AN_WIND_QF_NOT_AVALIABLE;
|
||||
|
||||
}
|
||||
else {
|
||||
out = AN_WIND_QF_UNKNOWN;
|
||||
|
||||
}
|
||||
|
||||
// reseting flags
|
||||
analog_anemometer_slew_limit_fired = 0;
|
||||
analog_anemometer_deboucing_fired = 0;
|
||||
analog_anemometer_direction_doesnt_work = 0;
|
||||
|
||||
return out;
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Ładowanie…
Reference in New Issue