register periodic messages with 16 bit ID - e.g. Mavlink (#3482)

This commit is contained in:
Christophe De Wagter
2025-07-02 10:13:14 +02:00
committed by GitHub
parent 07558af7a2
commit 8a226b2ce3
2 changed files with 9 additions and 9 deletions
+3 -3
View File
@@ -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