summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-07-11 13:53:30 -0700
committerKeith Packard <keithp@keithp.com>2012-07-11 13:53:30 -0700
commit846a6298e4a8bfbe87bb24d7b0802c0bf6f233be (patch)
tree246ac4909f2317dbee456a3b17ae47b9220fab50 /src
parentcf44ea354c2d1780cee343132c6058e11e9eefa3 (diff)
Report RSSI values in monitor idle UI (trac #44)
This adds a new 's' command to TeleDongle to report RSSI value from last received packet, and then has AltosUI request that value when closing the remote link. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
-rw-r--r--src/core/ao_packet.h2
-rw-r--r--src/drivers/ao_packet.c11
-rw-r--r--src/drivers/ao_packet_master.c7
3 files changed, 15 insertions, 5 deletions
diff --git a/src/core/ao_packet.h b/src/core/ao_packet.h
index 618ccda4..f232a878 100644
--- a/src/core/ao_packet.h
+++ b/src/core/ao_packet.h
@@ -67,6 +67,8 @@ ao_packet_pollchar(void) __critical;
#if PACKET_HAS_MASTER
/* ao_packet_master.c */
+extern __xdata uint8_t ao_packet_last_rssi;
+
void
ao_packet_master_init(void);
#endif
diff --git a/src/drivers/ao_packet.c b/src/drivers/ao_packet.c
index e020c003..d813b25f 100644
--- a/src/drivers/ao_packet.c
+++ b/src/drivers/ao_packet.c
@@ -27,7 +27,11 @@ static __pdata uint8_t rx_seq;
__xdata struct ao_task ao_packet_task;
__xdata uint8_t ao_packet_enable;
+
+#if PACKET_HAS_MASTER
__xdata uint8_t ao_packet_master_sleeping;
+__xdata uint8_t ao_packet_last_rssi;
+#endif
void
ao_packet_send(void)
@@ -80,6 +84,9 @@ ao_packet_recv(void)
if (!(ao_rx_packet.status & AO_RADIO_STATUS_CRC_OK))
return 0;
+#if PACKET_HAS_MASTER
+ ao_packet_last_rssi = ao_rx_packet.rssi;
+#endif
/* Accept packets with matching call signs, or any packet if
* our callsign hasn't been configured
*/
@@ -130,10 +137,6 @@ ao_packet_recv(void)
return 1;
}
-#ifndef PACKET_HAS_MASTER
-#define PACKET_HAS_MASTER 1
-#endif
-
#if PACKET_HAS_MASTER
void
ao_packet_flush(void)
diff --git a/src/drivers/ao_packet_master.c b/src/drivers/ao_packet_master.c
index 66f94288..e97a6648 100644
--- a/src/drivers/ao_packet_master.c
+++ b/src/drivers/ao_packet_master.c
@@ -137,10 +137,15 @@ ao_packet_forward(void) __reentrant
#endif
}
-
+static void
+ao_packet_signal(void)
+{
+ printf ("RSSI: %d\n", AO_RSSI_FROM_RADIO(ao_packet_last_rssi));
+}
__code struct ao_cmds ao_packet_master_cmds[] = {
{ ao_packet_forward, "p\0Remote packet link." },
+ { ao_packet_signal, "s\0Report signal strength." },
{ 0, NULL },
};