summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2009-05-13 20:40:42 -0700
committerKeith Packard <keithp@keithp.com>2009-05-13 20:40:42 -0700
commit9b974217958b1017e62d6c4f4568f547ccc30c58 (patch)
treef38fbb8b2f3b0e70ce9427273619d19a0fe362d6
parent25fc03a333b2cfad0a93ebc385fbcf74b63c229e (diff)
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 <keithp@keithp.com>
-rw-r--r--ao.h8
-rw-r--r--ao_monitor.c20
-rw-r--r--ao_teledongle.c2
-rw-r--r--ao_teleterra.c3
-rw-r--r--ao_tidongle.c2
5 files changed, 23 insertions, 12 deletions
diff --git a/ao.h b/ao.h
index 96dd02d0..76fc00ce 100644
--- a/ao.h
+++ b/ao.h
@@ -23,6 +23,9 @@
#include <string.h>
#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();