From: Keith Packard Date: Thu, 14 May 2009 03:40:42 +0000 (-0700) Subject: Enable radio monitor by default in teleterra, teledongle and tidongle X-Git-Tag: 0.2~1 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=9b974217958b1017e62d6c4f4568f547ccc30c58;hp=25fc03a333b2cfad0a93ebc385fbcf74b63c229e Enable radio monitor by default in teleterra, teledongle and tidongle These ground loads want to monitor the radio constantly, and not require use of the 'm' command before listening. Signed-off-by: Keith Packard --- diff --git a/ao.h b/ao.h index 96dd02d0..76fc00ce 100644 --- a/ao.h +++ b/ao.h @@ -23,6 +23,9 @@ #include #include "cc1111.h" +#define TRUE 1 +#define FALSE 0 + /* Convert a __data pointer into an __xdata pointer */ #define DATA_TO_XDATA(a) ((void __xdata *) ((uint8_t) (a) | 0xff00)) @@ -775,7 +778,10 @@ void ao_monitor(void); void -ao_monitor_init(uint8_t led); +ao_set_monitor(uint8_t monitoring); + +void +ao_monitor_init(uint8_t led, uint8_t monitoring) __reentrant; /* * ao_stdio.c diff --git a/ao_monitor.c b/ao_monitor.c index 2f6584bc..6aed581a 100644 --- a/ao_monitor.c +++ b/ao_monitor.c @@ -61,24 +61,30 @@ ao_monitor(void) __xdata struct ao_task ao_monitor_task; +void +ao_set_monitor(uint8_t monitoring) +{ + ao_monitoring = monitoring; + ao_wakeup(&ao_monitoring); +} + static void -ao_set_monitor(void) +set_monitor(void) { ao_cmd_hex(); - ao_monitoring = ao_cmd_lex_i != 0; - ao_wakeup(&ao_monitoring); + ao_set_monitor(ao_cmd_lex_i != 0); } __code struct ao_cmds ao_monitor_cmds[] = { - { 'm', ao_set_monitor, "m <0 off, 1 on> Enable/disable radio monitoring" }, - { 0, ao_set_monitor, NULL }, + { 'm', set_monitor, "m <0 off, 1 on> Enable/disable radio monitoring" }, + { 0, set_monitor, NULL }, }; void -ao_monitor_init(uint8_t monitor_led) +ao_monitor_init(uint8_t monitor_led, uint8_t monitoring) __reentrant { ao_monitor_led = monitor_led; - ao_monitoring = 0; + ao_monitoring = monitoring; ao_cmd_register(&ao_monitor_cmds[0]); ao_add_task(&ao_monitor_task, ao_monitor, "monitor"); } diff --git a/ao_teledongle.c b/ao_teledongle.c index 98163109..67fe7614 100644 --- a/ao_teledongle.c +++ b/ao_teledongle.c @@ -32,7 +32,7 @@ main(void) ao_timer_init(); ao_cmd_init(); ao_usb_init(); - ao_monitor_init(AO_LED_GREEN); + ao_monitor_init(AO_LED_GREEN, TRUE); ao_rssi_init(AO_LED_RED); ao_radio_init(); ao_dbg_init(); diff --git a/ao_teleterra.c b/ao_teleterra.c index ed72cd4b..ad3e2d9b 100644 --- a/ao_teleterra.c +++ b/ao_teleterra.c @@ -34,8 +34,7 @@ main(void) ao_usb_init(); ao_serial_init(); ao_gps_init(); - ao_monitor_init(AO_LED_GREEN); - ao_monitor_init(AO_LED_RED); + ao_monitor_init(AO_LED_GREEN, TRUE); ao_radio_init(); ao_dbg_init(); ao_config_init(); diff --git a/ao_tidongle.c b/ao_tidongle.c index 4d9a77f7..b068d045 100644 --- a/ao_tidongle.c +++ b/ao_tidongle.c @@ -32,7 +32,7 @@ main(void) ao_timer_init(); ao_cmd_init(); ao_usb_init(); - ao_monitor_init(AO_LED_RED); + ao_monitor_init(AO_LED_RED, TRUE); ao_rssi_init(AO_LED_RED); ao_radio_init(); ao_dbg_init();