diff options
| -rw-r--r-- | src/core/ao.h | 5 | ||||
| -rw-r--r-- | src/core/ao_config.c | 2 | ||||
| -rw-r--r-- | src/core/ao_telemetry.c | 31 | 
3 files changed, 27 insertions, 11 deletions
diff --git a/src/core/ao.h b/src/core/ao.h index d6e27707..fa873efe 100644 --- a/src/core/ao.h +++ b/src/core/ao.h @@ -717,6 +717,11 @@ struct ao_config {  #define AO_IGNITE_MODE_APOGEE		1  #define AO_IGNITE_MODE_MAIN		2 +#define AO_RADIO_ENABLE_CORE		1 +#define AO_RADIO_ENABLE_APRS		2 +#define AO_RADIO_DISABLE_TELEMETRY	4 +#define AO_RADIO_DISABLE_RDF		8 +  #define AO_PAD_ORIENTATION_ANTENNA_UP	0  #define AO_PAD_ORIENTATION_ANTENNA_DOWN	1 diff --git a/src/core/ao_config.c b/src/core/ao_config.c index e85ddcb4..df40ff90 100644 --- a/src/core/ao_config.c +++ b/src/core/ao_config.c @@ -128,7 +128,7 @@ _ao_config_get(void)  		if (minor < 6)  			ao_config.pad_orientation = AO_CONFIG_DEFAULT_PAD_ORIENTATION;  		if (minor < 8) -			ao_config.radio_enable = TRUE; +			ao_config.radio_enable = AO_RADIO_ENABLE_CORE;  		if (minor < 9)  			ao_xmemset(&ao_config.aes_key, '\0', AO_AES_LEN);  		if (minor < 10) diff --git a/src/core/ao_telemetry.c b/src/core/ao_telemetry.c index 79d1bb81..4ff98f9b 100644 --- a/src/core/ao_telemetry.c +++ b/src/core/ao_telemetry.c @@ -300,27 +300,35 @@ ao_telemetry(void)  		while (ao_telemetry_interval) { +#if HAS_APRS +			if (!(ao_config.radio_enable & AO_RADIO_DISABLE_TELEMETRY)) +#endif +			{  #ifdef AO_SEND_ALL_BARO -			ao_send_baro(); +				ao_send_baro();  #endif  #ifdef AO_SEND_MEGA -			ao_send_mega_sensor(); -			ao_send_mega_data(); +				ao_send_mega_sensor(); +				ao_send_mega_data();  #else -			ao_send_sensor(); +				ao_send_sensor();  #endif  #if HAS_COMPANION -			if (ao_companion_running) -				ao_send_companion(); +				if (ao_companion_running) +					ao_send_companion();  #endif -			ao_send_configuration(); +				ao_send_configuration();  #if HAS_GPS -			ao_send_location(); -			ao_send_satellite(); +				ao_send_location(); +				ao_send_satellite();  #endif +			}  #ifndef AO_SEND_ALL_BARO  			if (ao_rdf && +#if HAS_APRS +			    !(ao_config.radio_enable & AO_RADIO_DISABLE_RDF) && +#endif  			    (int16_t) (ao_time() - ao_rdf_time) >= 0)  			{  #if HAS_IGNITE_REPORT @@ -335,7 +343,10 @@ ao_telemetry(void)  					ao_radio_rdf();  			}  #if HAS_APRS -			if (ao_rdf && (int16_t) (ao_time() - ao_aprs_time) >= 0) { +			if (ao_rdf && +			    (ao_config.radio_enable & AO_RADIO_ENABLE_APRS) && +			    (int16_t) (ao_time() - ao_aprs_time) >= 0) +			{  				ao_aprs_time = ao_time() + AO_APRS_INTERVAL_TICKS;  				ao_aprs_send();  			}  | 
