mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-23 13:05:34 +08:00
register periodic messages with 16 bit ID - e.g. Mavlink (#3482)
This commit is contained in:
committed by
GitHub
parent
07558af7a2
commit
8a226b2ce3
@@ -48,9 +48,9 @@ struct periodic_telemetry pprz_telemetry = { TELEMETRY_PPRZ_NB_MSG, telemetry_cb
|
||||
* @param _cb callback function, called according to telemetry mode and specified period
|
||||
* @return -1 on failure to register, index of callback otherwise
|
||||
*/
|
||||
int8_t register_periodic_telemetry(struct periodic_telemetry *_pt, uint8_t _id, telemetry_cb _cb)
|
||||
int16_t register_periodic_telemetry(struct periodic_telemetry *_pt, uint16_t _id, telemetry_cb _cb)
|
||||
{
|
||||
uint8_t i, j;
|
||||
uint16_t i, j;
|
||||
// return if NULL is passed as periodic_telemetry
|
||||
if (_pt == NULL) { return -1; }
|
||||
// check if message with id _msgn has a periodic entery in telemetry file
|
||||
@@ -112,7 +112,7 @@ void telemetry_reporting_task(void)
|
||||
* @param _mode telemetry mode
|
||||
* @param _id id of the message in telemetry system (see var/<AC>/generated/periodic_telemetry.h)
|
||||
*/
|
||||
void periodic_telemetry_err_report(uint8_t _process, uint8_t _mode, uint8_t _id)
|
||||
void periodic_telemetry_err_report(uint8_t _process, uint8_t _mode, uint16_t _id)
|
||||
{
|
||||
uint8_t process = _process;
|
||||
uint8_t mode = _mode;
|
||||
|
||||
@@ -51,7 +51,7 @@ typedef const char telemetry_msg[64];
|
||||
#define TELEMETRY_NB_CBS 4
|
||||
|
||||
struct telemetry_cb_slots {
|
||||
uint8_t id; ///< id of telemetry message
|
||||
uint16_t id; ///< id of telemetry message
|
||||
telemetry_cb slots[TELEMETRY_NB_CBS];
|
||||
};
|
||||
|
||||
@@ -60,7 +60,7 @@ struct telemetry_cb_slots {
|
||||
* and the list of registered callbacks
|
||||
*/
|
||||
struct periodic_telemetry {
|
||||
uint8_t nb; ///< number of messages
|
||||
uint16_t nb; ///< number of messages
|
||||
struct telemetry_cb_slots *cbs; ///< array of callbacks defined through TELEMETRY_MSG
|
||||
};
|
||||
|
||||
@@ -76,10 +76,10 @@ extern void telemetry_reporting_task(void);
|
||||
* @return -1 on failure to register, index of callback otherwise
|
||||
*/
|
||||
#if PERIODIC_TELEMETRY
|
||||
extern int8_t register_periodic_telemetry(struct periodic_telemetry *_pt, uint8_t _id, telemetry_cb _cb);
|
||||
extern int16_t register_periodic_telemetry(struct periodic_telemetry *_pt, uint16_t _id, telemetry_cb _cb);
|
||||
#else
|
||||
static inline int8_t register_periodic_telemetry(struct periodic_telemetry *_pt __attribute__((unused)),
|
||||
uint8_t _id __attribute__((unused)), telemetry_cb _cb __attribute__((unused))) { return -1; }
|
||||
static inline int16_t register_periodic_telemetry(struct periodic_telemetry *_pt __attribute__((unused)),
|
||||
uint16_t _id __attribute__((unused)), telemetry_cb _cb __attribute__((unused))) { return -1; }
|
||||
#endif
|
||||
|
||||
#if USE_PERIODIC_TELEMETRY_REPORT
|
||||
@@ -88,7 +88,7 @@ static inline int8_t register_periodic_telemetry(struct periodic_telemetry *_pt
|
||||
* @param _mode telemetry mode
|
||||
* @param _id id of the message
|
||||
*/
|
||||
extern void periodic_telemetry_err_report(uint8_t _process, uint8_t _mode, uint8_t _id);
|
||||
extern void periodic_telemetry_err_report(uint8_t _process, uint8_t _mode, uint16_t _id);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
Reference in New Issue
Block a user