Files
c_library_v2/pixhawk/mavlink_msg_detection_stats.h
T

474 lines
20 KiB
C
Raw Normal View History

// MESSAGE DETECTION_STATS PACKING
#define MAVLINK_MSG_ID_DETECTION_STATS 205
typedef struct __mavlink_detection_stats_t
{
uint32_t detections; ///< Number of detections
uint32_t cluster_iters; ///< Number of cluster iterations
float best_score; ///< Best score
int32_t best_lat; ///< Latitude of the best detection * 1E7
int32_t best_lon; ///< Longitude of the best detection * 1E7
int32_t best_alt; ///< Altitude of the best detection * 1E3
uint32_t best_detection_id; ///< Best detection ID
uint32_t best_cluster_id; ///< Best cluster ID
uint32_t best_cluster_iter_id; ///< Best cluster ID
uint32_t images_done; ///< Number of images already processed
uint32_t images_todo; ///< Number of images still to process
float fps; ///< Average images per seconds processed
} mavlink_detection_stats_t;
#define MAVLINK_MSG_ID_DETECTION_STATS_LEN 48
#define MAVLINK_MSG_ID_205_LEN 48
#define MAVLINK_MSG_ID_DETECTION_STATS_CRC 87
#define MAVLINK_MSG_ID_205_CRC 87
#define MAVLINK_MESSAGE_INFO_DETECTION_STATS { \
"DETECTION_STATS", \
12, \
{ { "detections", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_detection_stats_t, detections) }, \
{ "cluster_iters", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_detection_stats_t, cluster_iters) }, \
{ "best_score", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_detection_stats_t, best_score) }, \
{ "best_lat", NULL, MAVLINK_TYPE_INT32_T, 0, 12, offsetof(mavlink_detection_stats_t, best_lat) }, \
{ "best_lon", NULL, MAVLINK_TYPE_INT32_T, 0, 16, offsetof(mavlink_detection_stats_t, best_lon) }, \
{ "best_alt", NULL, MAVLINK_TYPE_INT32_T, 0, 20, offsetof(mavlink_detection_stats_t, best_alt) }, \
{ "best_detection_id", NULL, MAVLINK_TYPE_UINT32_T, 0, 24, offsetof(mavlink_detection_stats_t, best_detection_id) }, \
{ "best_cluster_id", NULL, MAVLINK_TYPE_UINT32_T, 0, 28, offsetof(mavlink_detection_stats_t, best_cluster_id) }, \
{ "best_cluster_iter_id", NULL, MAVLINK_TYPE_UINT32_T, 0, 32, offsetof(mavlink_detection_stats_t, best_cluster_iter_id) }, \
{ "images_done", NULL, MAVLINK_TYPE_UINT32_T, 0, 36, offsetof(mavlink_detection_stats_t, images_done) }, \
{ "images_todo", NULL, MAVLINK_TYPE_UINT32_T, 0, 40, offsetof(mavlink_detection_stats_t, images_todo) }, \
{ "fps", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_detection_stats_t, fps) }, \
} \
}
/**
* @brief Pack a detection_stats message
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param msg The MAVLink message to compress the data into
*
* @param detections Number of detections
* @param cluster_iters Number of cluster iterations
* @param best_score Best score
* @param best_lat Latitude of the best detection * 1E7
* @param best_lon Longitude of the best detection * 1E7
* @param best_alt Altitude of the best detection * 1E3
* @param best_detection_id Best detection ID
* @param best_cluster_id Best cluster ID
* @param best_cluster_iter_id Best cluster ID
* @param images_done Number of images already processed
* @param images_todo Number of images still to process
* @param fps Average images per seconds processed
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_detection_stats_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint32_t detections, uint32_t cluster_iters, float best_score, int32_t best_lat, int32_t best_lon, int32_t best_alt, uint32_t best_detection_id, uint32_t best_cluster_id, uint32_t best_cluster_iter_id, uint32_t images_done, uint32_t images_todo, float fps)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_DETECTION_STATS_LEN];
_mav_put_uint32_t(buf, 0, detections);
_mav_put_uint32_t(buf, 4, cluster_iters);
_mav_put_float(buf, 8, best_score);
_mav_put_int32_t(buf, 12, best_lat);
_mav_put_int32_t(buf, 16, best_lon);
_mav_put_int32_t(buf, 20, best_alt);
_mav_put_uint32_t(buf, 24, best_detection_id);
_mav_put_uint32_t(buf, 28, best_cluster_id);
_mav_put_uint32_t(buf, 32, best_cluster_iter_id);
_mav_put_uint32_t(buf, 36, images_done);
_mav_put_uint32_t(buf, 40, images_todo);
_mav_put_float(buf, 44, fps);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_DETECTION_STATS_LEN);
#else
mavlink_detection_stats_t packet;
packet.detections = detections;
packet.cluster_iters = cluster_iters;
packet.best_score = best_score;
packet.best_lat = best_lat;
packet.best_lon = best_lon;
packet.best_alt = best_alt;
packet.best_detection_id = best_detection_id;
packet.best_cluster_id = best_cluster_id;
packet.best_cluster_iter_id = best_cluster_iter_id;
packet.images_done = images_done;
packet.images_todo = images_todo;
packet.fps = fps;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_DETECTION_STATS_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_DETECTION_STATS;
#if MAVLINK_CRC_EXTRA
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_DETECTION_STATS_LEN, MAVLINK_MSG_ID_DETECTION_STATS_CRC);
#else
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_DETECTION_STATS_LEN);
#endif
}
/**
* @brief Pack a detection_stats message on a channel
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param chan The MAVLink channel this message will be sent over
* @param msg The MAVLink message to compress the data into
* @param detections Number of detections
* @param cluster_iters Number of cluster iterations
* @param best_score Best score
* @param best_lat Latitude of the best detection * 1E7
* @param best_lon Longitude of the best detection * 1E7
* @param best_alt Altitude of the best detection * 1E3
* @param best_detection_id Best detection ID
* @param best_cluster_id Best cluster ID
* @param best_cluster_iter_id Best cluster ID
* @param images_done Number of images already processed
* @param images_todo Number of images still to process
* @param fps Average images per seconds processed
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_detection_stats_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint32_t detections,uint32_t cluster_iters,float best_score,int32_t best_lat,int32_t best_lon,int32_t best_alt,uint32_t best_detection_id,uint32_t best_cluster_id,uint32_t best_cluster_iter_id,uint32_t images_done,uint32_t images_todo,float fps)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_DETECTION_STATS_LEN];
_mav_put_uint32_t(buf, 0, detections);
_mav_put_uint32_t(buf, 4, cluster_iters);
_mav_put_float(buf, 8, best_score);
_mav_put_int32_t(buf, 12, best_lat);
_mav_put_int32_t(buf, 16, best_lon);
_mav_put_int32_t(buf, 20, best_alt);
_mav_put_uint32_t(buf, 24, best_detection_id);
_mav_put_uint32_t(buf, 28, best_cluster_id);
_mav_put_uint32_t(buf, 32, best_cluster_iter_id);
_mav_put_uint32_t(buf, 36, images_done);
_mav_put_uint32_t(buf, 40, images_todo);
_mav_put_float(buf, 44, fps);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_DETECTION_STATS_LEN);
#else
mavlink_detection_stats_t packet;
packet.detections = detections;
packet.cluster_iters = cluster_iters;
packet.best_score = best_score;
packet.best_lat = best_lat;
packet.best_lon = best_lon;
packet.best_alt = best_alt;
packet.best_detection_id = best_detection_id;
packet.best_cluster_id = best_cluster_id;
packet.best_cluster_iter_id = best_cluster_iter_id;
packet.images_done = images_done;
packet.images_todo = images_todo;
packet.fps = fps;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_DETECTION_STATS_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_DETECTION_STATS;
#if MAVLINK_CRC_EXTRA
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_DETECTION_STATS_LEN, MAVLINK_MSG_ID_DETECTION_STATS_CRC);
#else
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_DETECTION_STATS_LEN);
#endif
}
/**
* @brief Encode a detection_stats struct
*
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param msg The MAVLink message to compress the data into
* @param detection_stats C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_detection_stats_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_detection_stats_t* detection_stats)
{
return mavlink_msg_detection_stats_pack(system_id, component_id, msg, detection_stats->detections, detection_stats->cluster_iters, detection_stats->best_score, detection_stats->best_lat, detection_stats->best_lon, detection_stats->best_alt, detection_stats->best_detection_id, detection_stats->best_cluster_id, detection_stats->best_cluster_iter_id, detection_stats->images_done, detection_stats->images_todo, detection_stats->fps);
}
/**
* @brief Encode a detection_stats struct on a channel
*
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param chan The MAVLink channel this message will be sent over
* @param msg The MAVLink message to compress the data into
* @param detection_stats C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_detection_stats_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_detection_stats_t* detection_stats)
{
return mavlink_msg_detection_stats_pack_chan(system_id, component_id, chan, msg, detection_stats->detections, detection_stats->cluster_iters, detection_stats->best_score, detection_stats->best_lat, detection_stats->best_lon, detection_stats->best_alt, detection_stats->best_detection_id, detection_stats->best_cluster_id, detection_stats->best_cluster_iter_id, detection_stats->images_done, detection_stats->images_todo, detection_stats->fps);
}
/**
* @brief Send a detection_stats message
* @param chan MAVLink channel to send the message
*
* @param detections Number of detections
* @param cluster_iters Number of cluster iterations
* @param best_score Best score
* @param best_lat Latitude of the best detection * 1E7
* @param best_lon Longitude of the best detection * 1E7
* @param best_alt Altitude of the best detection * 1E3
* @param best_detection_id Best detection ID
* @param best_cluster_id Best cluster ID
* @param best_cluster_iter_id Best cluster ID
* @param images_done Number of images already processed
* @param images_todo Number of images still to process
* @param fps Average images per seconds processed
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_detection_stats_send(mavlink_channel_t chan, uint32_t detections, uint32_t cluster_iters, float best_score, int32_t best_lat, int32_t best_lon, int32_t best_alt, uint32_t best_detection_id, uint32_t best_cluster_id, uint32_t best_cluster_iter_id, uint32_t images_done, uint32_t images_todo, float fps)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_DETECTION_STATS_LEN];
_mav_put_uint32_t(buf, 0, detections);
_mav_put_uint32_t(buf, 4, cluster_iters);
_mav_put_float(buf, 8, best_score);
_mav_put_int32_t(buf, 12, best_lat);
_mav_put_int32_t(buf, 16, best_lon);
_mav_put_int32_t(buf, 20, best_alt);
_mav_put_uint32_t(buf, 24, best_detection_id);
_mav_put_uint32_t(buf, 28, best_cluster_id);
_mav_put_uint32_t(buf, 32, best_cluster_iter_id);
_mav_put_uint32_t(buf, 36, images_done);
_mav_put_uint32_t(buf, 40, images_todo);
_mav_put_float(buf, 44, fps);
#if MAVLINK_CRC_EXTRA
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DETECTION_STATS, buf, MAVLINK_MSG_ID_DETECTION_STATS_LEN, MAVLINK_MSG_ID_DETECTION_STATS_CRC);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DETECTION_STATS, buf, MAVLINK_MSG_ID_DETECTION_STATS_LEN);
#endif
#else
mavlink_detection_stats_t packet;
packet.detections = detections;
packet.cluster_iters = cluster_iters;
packet.best_score = best_score;
packet.best_lat = best_lat;
packet.best_lon = best_lon;
packet.best_alt = best_alt;
packet.best_detection_id = best_detection_id;
packet.best_cluster_id = best_cluster_id;
packet.best_cluster_iter_id = best_cluster_iter_id;
packet.images_done = images_done;
packet.images_todo = images_todo;
packet.fps = fps;
#if MAVLINK_CRC_EXTRA
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DETECTION_STATS, (const char *)&packet, MAVLINK_MSG_ID_DETECTION_STATS_LEN, MAVLINK_MSG_ID_DETECTION_STATS_CRC);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DETECTION_STATS, (const char *)&packet, MAVLINK_MSG_ID_DETECTION_STATS_LEN);
#endif
#endif
}
#if MAVLINK_MSG_ID_DETECTION_STATS_LEN <= MAVLINK_MAX_PAYLOAD_LEN
/*
This varient of _send() can be used to save stack space by re-using
memory from the receive buffer. The caller provides a
mavlink_message_t which is the size of a full mavlink message. This
is usually the receive buffer for the channel, and allows a reply to an
incoming message with minimum stack space usage.
*/
static inline void mavlink_msg_detection_stats_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t detections, uint32_t cluster_iters, float best_score, int32_t best_lat, int32_t best_lon, int32_t best_alt, uint32_t best_detection_id, uint32_t best_cluster_id, uint32_t best_cluster_iter_id, uint32_t images_done, uint32_t images_todo, float fps)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint32_t(buf, 0, detections);
_mav_put_uint32_t(buf, 4, cluster_iters);
_mav_put_float(buf, 8, best_score);
_mav_put_int32_t(buf, 12, best_lat);
_mav_put_int32_t(buf, 16, best_lon);
_mav_put_int32_t(buf, 20, best_alt);
_mav_put_uint32_t(buf, 24, best_detection_id);
_mav_put_uint32_t(buf, 28, best_cluster_id);
_mav_put_uint32_t(buf, 32, best_cluster_iter_id);
_mav_put_uint32_t(buf, 36, images_done);
_mav_put_uint32_t(buf, 40, images_todo);
_mav_put_float(buf, 44, fps);
#if MAVLINK_CRC_EXTRA
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DETECTION_STATS, buf, MAVLINK_MSG_ID_DETECTION_STATS_LEN, MAVLINK_MSG_ID_DETECTION_STATS_CRC);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DETECTION_STATS, buf, MAVLINK_MSG_ID_DETECTION_STATS_LEN);
#endif
#else
mavlink_detection_stats_t *packet = (mavlink_detection_stats_t *)msgbuf;
packet->detections = detections;
packet->cluster_iters = cluster_iters;
packet->best_score = best_score;
packet->best_lat = best_lat;
packet->best_lon = best_lon;
packet->best_alt = best_alt;
packet->best_detection_id = best_detection_id;
packet->best_cluster_id = best_cluster_id;
packet->best_cluster_iter_id = best_cluster_iter_id;
packet->images_done = images_done;
packet->images_todo = images_todo;
packet->fps = fps;
#if MAVLINK_CRC_EXTRA
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DETECTION_STATS, (const char *)packet, MAVLINK_MSG_ID_DETECTION_STATS_LEN, MAVLINK_MSG_ID_DETECTION_STATS_CRC);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DETECTION_STATS, (const char *)packet, MAVLINK_MSG_ID_DETECTION_STATS_LEN);
#endif
#endif
}
#endif
#endif
// MESSAGE DETECTION_STATS UNPACKING
/**
* @brief Get field detections from detection_stats message
*
* @return Number of detections
*/
static inline uint32_t mavlink_msg_detection_stats_get_detections(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 0);
}
/**
* @brief Get field cluster_iters from detection_stats message
*
* @return Number of cluster iterations
*/
static inline uint32_t mavlink_msg_detection_stats_get_cluster_iters(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 4);
}
/**
* @brief Get field best_score from detection_stats message
*
* @return Best score
*/
static inline float mavlink_msg_detection_stats_get_best_score(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field best_lat from detection_stats message
*
* @return Latitude of the best detection * 1E7
*/
static inline int32_t mavlink_msg_detection_stats_get_best_lat(const mavlink_message_t* msg)
{
return _MAV_RETURN_int32_t(msg, 12);
}
/**
* @brief Get field best_lon from detection_stats message
*
* @return Longitude of the best detection * 1E7
*/
static inline int32_t mavlink_msg_detection_stats_get_best_lon(const mavlink_message_t* msg)
{
return _MAV_RETURN_int32_t(msg, 16);
}
/**
* @brief Get field best_alt from detection_stats message
*
* @return Altitude of the best detection * 1E3
*/
static inline int32_t mavlink_msg_detection_stats_get_best_alt(const mavlink_message_t* msg)
{
return _MAV_RETURN_int32_t(msg, 20);
}
/**
* @brief Get field best_detection_id from detection_stats message
*
* @return Best detection ID
*/
static inline uint32_t mavlink_msg_detection_stats_get_best_detection_id(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 24);
}
/**
* @brief Get field best_cluster_id from detection_stats message
*
* @return Best cluster ID
*/
static inline uint32_t mavlink_msg_detection_stats_get_best_cluster_id(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 28);
}
/**
* @brief Get field best_cluster_iter_id from detection_stats message
*
* @return Best cluster ID
*/
static inline uint32_t mavlink_msg_detection_stats_get_best_cluster_iter_id(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 32);
}
/**
* @brief Get field images_done from detection_stats message
*
* @return Number of images already processed
*/
static inline uint32_t mavlink_msg_detection_stats_get_images_done(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 36);
}
/**
* @brief Get field images_todo from detection_stats message
*
* @return Number of images still to process
*/
static inline uint32_t mavlink_msg_detection_stats_get_images_todo(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 40);
}
/**
* @brief Get field fps from detection_stats message
*
* @return Average images per seconds processed
*/
static inline float mavlink_msg_detection_stats_get_fps(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 44);
}
/**
* @brief Decode a detection_stats message into a struct
*
* @param msg The message to decode
* @param detection_stats C-struct to decode the message contents into
*/
static inline void mavlink_msg_detection_stats_decode(const mavlink_message_t* msg, mavlink_detection_stats_t* detection_stats)
{
#if MAVLINK_NEED_BYTE_SWAP
detection_stats->detections = mavlink_msg_detection_stats_get_detections(msg);
detection_stats->cluster_iters = mavlink_msg_detection_stats_get_cluster_iters(msg);
detection_stats->best_score = mavlink_msg_detection_stats_get_best_score(msg);
detection_stats->best_lat = mavlink_msg_detection_stats_get_best_lat(msg);
detection_stats->best_lon = mavlink_msg_detection_stats_get_best_lon(msg);
detection_stats->best_alt = mavlink_msg_detection_stats_get_best_alt(msg);
detection_stats->best_detection_id = mavlink_msg_detection_stats_get_best_detection_id(msg);
detection_stats->best_cluster_id = mavlink_msg_detection_stats_get_best_cluster_id(msg);
detection_stats->best_cluster_iter_id = mavlink_msg_detection_stats_get_best_cluster_iter_id(msg);
detection_stats->images_done = mavlink_msg_detection_stats_get_images_done(msg);
detection_stats->images_todo = mavlink_msg_detection_stats_get_images_todo(msg);
detection_stats->fps = mavlink_msg_detection_stats_get_fps(msg);
#else
memcpy(detection_stats, _MAV_PAYLOAD(msg), MAVLINK_MSG_ID_DETECTION_STATS_LEN);
#endif
}