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));
#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));
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);
/* 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);
/* 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);