summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ao.h9
-rw-r--r--src/ao_monitor.c10
-rw-r--r--src/ao_telemetry_orig.c10
3 files changed, 22 insertions, 7 deletions
diff --git a/src/ao.h b/src/ao.h
index b6a987e3..f5753703 100644
--- a/src/ao.h
+++ b/src/ao.h
@@ -1036,12 +1036,13 @@ void
ao_gps_report_init(void);
/*
- * ao_telemetry.c
+ * ao_telemetry_orig.c
*/
#define AO_MAX_CALLSIGN 8
+#define AO_MAX_TELEMETRY 128
-struct ao_telemetry {
+struct ao_telemetry_orig {
uint16_t serial;
uint16_t flight;
uint8_t flight_state;
@@ -1080,6 +1081,10 @@ struct ao_telemetry_tiny {
* ao_radio_recv tacks on rssi and status bytes
*/
+struct ao_telemetry_raw_recv {
+ uint8_t packet[AO_MAX_TELEMETRY + 2];
+};
+
struct ao_telemetry_orig_recv {
struct ao_telemetry_orig telemetry_orig;
int8_t rssi;
diff --git a/src/ao_monitor.c b/src/ao_monitor.c
index 248857de..ac1929db 100644
--- a/src/ao_monitor.c
+++ b/src/ao_monitor.c
@@ -26,6 +26,7 @@ ao_monitor(void)
{
__xdata char callsign[AO_MAX_CALLSIGN+1];
__xdata union {
+ struct ao_telemetry_raw_recv raw;
struct ao_telemetry_orig_recv orig;
struct ao_telemetry_tiny_recv tiny;
} u;
@@ -185,6 +186,15 @@ ao_monitor(void)
printf("CRC INVALID RSSI %3d\n", rssi);
}
break;
+ default:
+ if (ao_monitoring > AO_MAX_TELEMETRY)
+ ao_monitoring = AO_MAX_TELEMETRY;
+ if (!ao_radio_recv(&recv_raw, ao_monitoring))
+ continue;
+ for (state = 0; state < ao_monitoring + 1; state++)
+ printf("%02x ", recv_raw.packet[state]);
+ printf("%02x\n", recv_raw.packet[state]);
+ break;
}
ao_usb_flush();
ao_led_toggle(ao_monitor_led);
diff --git a/src/ao_telemetry_orig.c b/src/ao_telemetry_orig.c
index 9a86882f..4b3a344a 100644
--- a/src/ao_telemetry_orig.c
+++ b/src/ao_telemetry_orig.c
@@ -25,11 +25,11 @@ __xdata uint16_t ao_rdf_time;
#define AO_RDF_LENGTH_MS 500
void
-ao_telemetry(void)
+ao_telemetry_orig(void)
{
uint16_t time;
int16_t delay;
- static __xdata struct ao_telemetry telemetry;
+ static __xdata struct ao_telemetry_orig telemetry;
ao_config_get();
while (!ao_flight_number)
@@ -96,10 +96,10 @@ ao_rdf_set(uint8_t rdf)
ao_rdf_time = ao_time();
}
-__xdata struct ao_task ao_telemetry_task;
+__xdata struct ao_task ao_telemetry_orig_task;
void
-ao_telemetry_init()
+ao_telemetry_orig_init()
{
- ao_add_task(&ao_telemetry_task, ao_telemetry, "telemetry");
+ ao_add_task(&ao_telemetry_orig_task, ao_telemetry_orig, "telemetry_orig");
}