rc_proto: allow to configure timers
[protos/xbee-avr.git] / rc_proto.h
index 2a2a666..3df4aaf 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);
@@ -94,9 +105,12 @@ int8_t rc_proto_send_echo_req(uint64_t addr, void *data, uint8_t data_len,
 /* reception of a xbee message */
 int rc_proto_rx(struct xbee_recv_hdr *recvframe, unsigned len);
 
-/* dmp statistics related to rc_proto */
+/* dump statistics related to rc_proto */
 void rc_proto_dump_stats(void);
 
+/* reset statistics related to rc_proto */
+void rc_proto_reset_stats(void);
+
 /* set the peer xbee address */
 void rc_proto_set_dstaddr(uint64_t addr);