struct ao_gps_tracking_data gps_tracking;
};
+struct ao_telemetry_tiny {
+ uint16_t serial;
+ uint16_t flight;
+ uint8_t flight_state;
+ int16_t height; /* AGL in meters */
+ int16_t speed; /* in m/s * 16 */
+ int16_t accel; /* in m/s² * 16 */
+ int16_t ground_pres; /* sensor units */
+ struct ao_adc adc; /* raw ADC readings */
+ char callsign[AO_MAX_CALLSIGN];
+};
+
/*
* ao_radio_recv tacks on rssi and status bytes
*/
uint8_t status;
};
+struct ao_telemetry_tiny_recv {
+ struct ao_telemetry_tiny telemetry_tiny;
+ int8_t rssi;
+ uint8_t status;
+};
+
/* Set delay between telemetry reports (0 to disable) */
#define AO_TELEMETRY_INTERVAL_PAD AO_MS_TO_TICKS(1000)
-#define AO_TELEMETRY_INTERVAL_FLIGHT AO_MS_TO_TICKS(50)
+#define AO_TELEMETRY_INTERVAL_FLIGHT AO_MS_TO_TICKS(100)
#define AO_TELEMETRY_INTERVAL_RECOVER AO_MS_TO_TICKS(1000)
void
void
ao_telemetry_init(void);
+void
+ao_telemetry_tiny_init(void);
+
/*
* ao_radio.c
*/
ao_radio_general_isr(void) __interrupt 16;
void
-ao_radio_get(void);
+ao_radio_get(uint8_t len);
#define ao_radio_put() ao_mutex_put(&ao_radio_mutex)
void
-ao_radio_set_fixed_pkt(size_t size);
-
-#define ao_radio_set_telemetry() \
- ao_radio_set_fixed_pkt(sizeof (struct ao_telemetry))
-
-#define ao_radio_set_packet() \
- ao_radio_set_fixed_pkt(sizeof (struct ao_packet))
+ao_radio_set_packet(void);
void
ao_radio_send(__xdata void *data, uint8_t size) __reentrant;
ao_packet_slave_stop(void);
void
-ao_packet_slave_init(void);
+ao_packet_slave_init(uint8_t enable);
#endif /* _AO_H_ */