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