beep when GPS ready
[protos/xbee-avr.git] / rc_proto.h
index 82f2fd2..baf90f4 100644 (file)
@@ -20,6 +20,7 @@ struct rc_proto_hello {
 struct rc_proto_echo_req {
        uint8_t type;
        int8_t power;
+       uint16_t timestamp; /* copied as-is in answer */
        uint8_t datalen; /* len of data excluding header */
        uint8_t data[];
 } __attribute__((packed));
@@ -28,6 +29,7 @@ struct rc_proto_echo_req {
 #define RC_PROTO_ECHO_ANS 0x02
 struct rc_proto_echo_ans {
        uint8_t type;
+       uint16_t timestamp;
        uint8_t datalen; /* len of data excluding header */
        uint8_t data[];
 } __attribute__((packed));
@@ -84,6 +86,15 @@ struct rc_proto_stats {
        uint8_t stats[]; /* format is struct rc_proto_stats_data */
 } __attribute__((packed));
 
+/* rc_proto timers configuration */
+struct rc_proto_timers {
+       uint16_t send_servo_min_ms;
+       uint16_t send_servo_max_ms;
+       uint16_t send_power_probe_ms;
+       uint16_t autobypass_ms;
+};
+extern struct rc_proto_timers rc_proto_timers;
+
 /* send a Hello message to a peer */
 int8_t rc_proto_send_hello(uint64_t addr, void *data, uint8_t data_len,
        int8_t power);
@@ -127,6 +138,9 @@ void rc_proto_dump_servos(void);
 /* if set, send power probe periodically to the peer (500 ms) */
 #define RC_PROTO_FLAGS_TX_POW_PROBE  0x20
 
+/* if set, use received probes to compute best power level */
+#define RC_PROTO_FLAGS_COMPUTE_BEST_POW  0x40
+
 void rc_proto_set_mode(uint8_t flags);
 
 uint8_t rc_proto_get_mode(void);