2016-10-05 22:52:07 +00:00
# pragma once
2014-08-10 21:01:07 +02:00
// MESSAGE GPS_GLOBAL_ORIGIN PACKING
# define MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN 49
2020-09-20 10:12:24 +08:00
2016-08-02 12:16:40 +00:00
typedef struct __mavlink_gps_global_origin_t {
2018-08-07 10:12:17 +08:00
int32_t latitude ; /*< [degE7] Latitude (WGS84)*/
int32_t longitude ; /*< [degE7] Longitude (WGS84)*/
2018-12-06 01:31:47 +08:00
int32_t altitude ; /*< [mm] Altitude (MSL). Positive for up.*/
2020-09-20 13:56:18 +08:00
uint32_t time_usec ; /*< [us] Timestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.*/
2020-09-20 10:12:24 +08:00
} mavlink_gps_global_origin_t ;
2014-08-10 21:01:07 +02:00
2020-09-20 10:12:24 +08:00
# define MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN 16
2016-05-16 08:33:08 +00:00
# define MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_MIN_LEN 12
2020-09-20 10:12:24 +08:00
# define MAVLINK_MSG_ID_49_LEN 16
2016-05-16 08:33:08 +00:00
# define MAVLINK_MSG_ID_49_MIN_LEN 12
2014-08-10 21:01:07 +02:00
# define MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_CRC 39
# define MAVLINK_MSG_ID_49_CRC 39
2016-05-16 08:33:08 +00:00
# if MAVLINK_COMMAND_24BIT
2014-08-10 21:01:07 +02:00
# define MAVLINK_MESSAGE_INFO_GPS_GLOBAL_ORIGIN { \
2016-10-10 10:40:57 +00:00
49, \
"GPS_GLOBAL_ORIGIN", \
2017-06-16 07:31:19 +00:00
4, \
2016-10-10 10:40:57 +00:00
{ { "latitude", NULL, MAVLINK_TYPE_INT32_T, 0, 0, offsetof(mavlink_gps_global_origin_t, latitude) }, \
2014-08-10 21:01:07 +02:00
{ "longitude", NULL, MAVLINK_TYPE_INT32_T, 0, 4, offsetof(mavlink_gps_global_origin_t, longitude) }, \
{ "altitude", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_gps_global_origin_t, altitude) }, \
2020-09-20 10:12:24 +08:00
{ "time_usec", NULL, MAVLINK_TYPE_UINT32_T, 0, 12, offsetof(mavlink_gps_global_origin_t, time_usec) }, \
2014-08-10 21:01:07 +02:00
} \
}
2016-05-16 08:33:08 +00:00
# else
# define MAVLINK_MESSAGE_INFO_GPS_GLOBAL_ORIGIN { \
2016-10-10 10:40:57 +00:00
"GPS_GLOBAL_ORIGIN", \
2017-06-16 07:31:19 +00:00
4, \
2016-10-10 10:40:57 +00:00
{ { "latitude", NULL, MAVLINK_TYPE_INT32_T, 0, 0, offsetof(mavlink_gps_global_origin_t, latitude) }, \
2016-05-16 08:33:08 +00:00
{ "longitude", NULL, MAVLINK_TYPE_INT32_T, 0, 4, offsetof(mavlink_gps_global_origin_t, longitude) }, \
{ "altitude", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_gps_global_origin_t, altitude) }, \
2020-09-20 10:12:24 +08:00
{ "time_usec", NULL, MAVLINK_TYPE_UINT32_T, 0, 12, offsetof(mavlink_gps_global_origin_t, time_usec) }, \
2016-05-16 08:33:08 +00:00
} \
}
# endif
2014-08-10 21:01:07 +02:00
/**
* @brief Pack a gps_global_origin 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
*
2018-08-07 10:12:17 +08:00
* @param latitude [degE7] Latitude (WGS84)
* @param longitude [degE7] Longitude (WGS84)
2018-12-06 01:31:47 +08:00
* @param altitude [mm] Altitude (MSL). Positive for up.
2020-09-20 13:56:18 +08:00
* @param time_usec [us] Timestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
2014-08-10 21:01:07 +02:00
* @return length of the message in bytes (excluding serial stream start sign)
*/
2020-09-20 10:12:24 +08:00
static inline uint16_t mavlink_msg_gps_global_origin_pack ( uint16_t system_id , uint8_t component_id , mavlink_message_t * msg ,
int32_t latitude , int32_t longitude , int32_t altitude , uint32_t time_usec )
2014-08-10 21:01:07 +02:00
{
# if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
2016-10-10 10:40:57 +00:00
char buf [ MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN ] ;
_mav_put_int32_t ( buf , 0 , latitude ) ;
_mav_put_int32_t ( buf , 4 , longitude ) ;
_mav_put_int32_t ( buf , 8 , altitude ) ;
2020-09-20 10:12:24 +08:00
_mav_put_uint32_t ( buf , 12 , time_usec ) ;
2014-08-10 21:01:07 +02:00
memcpy ( _MAV_PAYLOAD_NON_CONST ( msg ) , buf , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN ) ;
# else
2016-10-10 10:40:57 +00:00
mavlink_gps_global_origin_t packet ;
packet . latitude = latitude ;
packet . longitude = longitude ;
packet . altitude = altitude ;
2017-06-16 07:31:19 +00:00
packet . time_usec = time_usec ;
2014-08-10 21:01:07 +02:00
memcpy ( _MAV_PAYLOAD_NON_CONST ( msg ) , & packet , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN ) ;
# endif
2016-10-10 10:40:57 +00:00
msg - > msgid = MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN ;
2016-05-16 08:33:08 +00:00
return mavlink_finalize_message ( msg , system_id , component_id , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_MIN_LEN , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_CRC ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Pack a gps_global_origin 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
2018-08-07 10:12:17 +08:00
* @param latitude [degE7] Latitude (WGS84)
* @param longitude [degE7] Longitude (WGS84)
2018-12-06 01:31:47 +08:00
* @param altitude [mm] Altitude (MSL). Positive for up.
2020-09-20 13:56:18 +08:00
* @param time_usec [us] Timestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
2014-08-10 21:01:07 +02:00
* @return length of the message in bytes (excluding serial stream start sign)
*/
2020-09-20 10:12:24 +08:00
static inline uint16_t mavlink_msg_gps_global_origin_pack_chan ( uint16_t system_id , uint8_t component_id , uint8_t chan ,
2016-10-10 10:40:57 +00:00
mavlink_message_t * msg ,
2020-09-20 10:12:24 +08:00
int32_t latitude , int32_t longitude , int32_t altitude , uint32_t time_usec )
2014-08-10 21:01:07 +02:00
{
# if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
2016-10-10 10:40:57 +00:00
char buf [ MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN ] ;
_mav_put_int32_t ( buf , 0 , latitude ) ;
_mav_put_int32_t ( buf , 4 , longitude ) ;
_mav_put_int32_t ( buf , 8 , altitude ) ;
2020-09-20 10:12:24 +08:00
_mav_put_uint32_t ( buf , 12 , time_usec ) ;
2014-08-10 21:01:07 +02:00
memcpy ( _MAV_PAYLOAD_NON_CONST ( msg ) , buf , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN ) ;
# else
2016-10-10 10:40:57 +00:00
mavlink_gps_global_origin_t packet ;
packet . latitude = latitude ;
packet . longitude = longitude ;
packet . altitude = altitude ;
2017-06-16 07:31:19 +00:00
packet . time_usec = time_usec ;
2014-08-10 21:01:07 +02:00
memcpy ( _MAV_PAYLOAD_NON_CONST ( msg ) , & packet , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN ) ;
# endif
2016-10-10 10:40:57 +00:00
msg - > msgid = MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN ;
2016-05-16 08:33:08 +00:00
return mavlink_finalize_message_chan ( msg , system_id , component_id , chan , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_MIN_LEN , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_CRC ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Encode a gps_global_origin 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 gps_global_origin C-struct to read the message contents from
*/
2020-09-20 10:12:24 +08:00
static inline uint16_t mavlink_msg_gps_global_origin_encode ( uint16_t system_id , uint8_t component_id , mavlink_message_t * msg , const mavlink_gps_global_origin_t * gps_global_origin )
2014-08-10 21:01:07 +02:00
{
2017-06-16 07:31:19 +00:00
return mavlink_msg_gps_global_origin_pack ( system_id , component_id , msg , gps_global_origin - > latitude , gps_global_origin - > longitude , gps_global_origin - > altitude , gps_global_origin - > time_usec ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Encode a gps_global_origin 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 gps_global_origin C-struct to read the message contents from
*/
2020-09-20 10:12:24 +08:00
static inline uint16_t mavlink_msg_gps_global_origin_encode_chan ( uint16_t system_id , uint8_t component_id , uint8_t chan , mavlink_message_t * msg , const mavlink_gps_global_origin_t * gps_global_origin )
2014-08-10 21:01:07 +02:00
{
2017-06-16 07:31:19 +00:00
return mavlink_msg_gps_global_origin_pack_chan ( system_id , component_id , chan , msg , gps_global_origin - > latitude , gps_global_origin - > longitude , gps_global_origin - > altitude , gps_global_origin - > time_usec ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Send a gps_global_origin message
* @param chan MAVLink channel to send the message
*
2018-08-07 10:12:17 +08:00
* @param latitude [degE7] Latitude (WGS84)
* @param longitude [degE7] Longitude (WGS84)
2018-12-06 01:31:47 +08:00
* @param altitude [mm] Altitude (MSL). Positive for up.
2020-09-20 13:56:18 +08:00
* @param time_usec [us] Timestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
2014-08-10 21:01:07 +02:00
*/
# ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
2020-09-20 10:12:24 +08:00
static inline void mavlink_msg_gps_global_origin_send ( mavlink_channel_t chan , int32_t latitude , int32_t longitude , int32_t altitude , uint32_t time_usec )
2014-08-10 21:01:07 +02:00
{
# if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
2016-10-10 10:40:57 +00:00
char buf [ MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN ] ;
_mav_put_int32_t ( buf , 0 , latitude ) ;
_mav_put_int32_t ( buf , 4 , longitude ) ;
_mav_put_int32_t ( buf , 8 , altitude ) ;
2020-09-20 10:12:24 +08:00
_mav_put_uint32_t ( buf , 12 , time_usec ) ;
2014-08-10 21:01:07 +02:00
2016-05-16 08:33:08 +00:00
_mav_finalize_message_chan_send ( chan , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN , buf , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_MIN_LEN , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_CRC ) ;
2014-08-10 21:01:07 +02:00
# else
2016-10-10 10:40:57 +00:00
mavlink_gps_global_origin_t packet ;
packet . latitude = latitude ;
packet . longitude = longitude ;
packet . altitude = altitude ;
2017-06-16 07:31:19 +00:00
packet . time_usec = time_usec ;
2014-08-10 21:01:07 +02:00
2016-05-16 08:33:08 +00:00
_mav_finalize_message_chan_send ( chan , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN , ( const char * ) & packet , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_MIN_LEN , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_CRC ) ;
2014-08-10 21:01:07 +02:00
# endif
2016-05-16 08:33:08 +00:00
}
/**
* @brief Send a gps_global_origin message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_gps_global_origin_send_struct ( mavlink_channel_t chan , const mavlink_gps_global_origin_t * gps_global_origin )
{
# if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
2017-06-16 07:31:19 +00:00
mavlink_msg_gps_global_origin_send ( chan , gps_global_origin - > latitude , gps_global_origin - > longitude , gps_global_origin - > altitude , gps_global_origin - > time_usec ) ;
2016-05-16 08:33:08 +00:00
# else
_mav_finalize_message_chan_send ( chan , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN , ( const char * ) gps_global_origin , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_MIN_LEN , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_CRC ) ;
2014-08-10 21:01:07 +02:00
# endif
}
# if MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_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.
*/
2020-09-20 10:12:24 +08:00
static inline void mavlink_msg_gps_global_origin_send_buf ( mavlink_message_t * msgbuf , mavlink_channel_t chan , int32_t latitude , int32_t longitude , int32_t altitude , uint32_t time_usec )
2014-08-10 21:01:07 +02:00
{
# if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
2016-10-10 10:40:57 +00:00
char * buf = ( char * ) msgbuf ;
_mav_put_int32_t ( buf , 0 , latitude ) ;
_mav_put_int32_t ( buf , 4 , longitude ) ;
_mav_put_int32_t ( buf , 8 , altitude ) ;
2020-09-20 10:12:24 +08:00
_mav_put_uint32_t ( buf , 12 , time_usec ) ;
2014-08-10 21:01:07 +02:00
2016-05-16 08:33:08 +00:00
_mav_finalize_message_chan_send ( chan , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN , buf , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_MIN_LEN , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_CRC ) ;
2014-08-10 21:01:07 +02:00
# else
2016-10-10 10:40:57 +00:00
mavlink_gps_global_origin_t * packet = ( mavlink_gps_global_origin_t * ) msgbuf ;
packet - > latitude = latitude ;
packet - > longitude = longitude ;
packet - > altitude = altitude ;
2017-06-16 07:31:19 +00:00
packet - > time_usec = time_usec ;
2014-08-10 21:01:07 +02:00
2016-05-16 08:33:08 +00:00
_mav_finalize_message_chan_send ( chan , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN , ( const char * ) packet , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_MIN_LEN , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_CRC ) ;
2014-08-10 21:01:07 +02:00
# endif
}
# endif
# endif
// MESSAGE GPS_GLOBAL_ORIGIN UNPACKING
/**
* @brief Get field latitude from gps_global_origin message
*
2018-08-07 10:12:17 +08:00
* @return [degE7] Latitude (WGS84)
2014-08-10 21:01:07 +02:00
*/
static inline int32_t mavlink_msg_gps_global_origin_get_latitude ( const mavlink_message_t * msg )
{
2016-10-10 10:40:57 +00:00
return _MAV_RETURN_int32_t ( msg , 0 ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Get field longitude from gps_global_origin message
*
2018-08-07 10:12:17 +08:00
* @return [degE7] Longitude (WGS84)
2014-08-10 21:01:07 +02:00
*/
static inline int32_t mavlink_msg_gps_global_origin_get_longitude ( const mavlink_message_t * msg )
{
2016-10-10 10:40:57 +00:00
return _MAV_RETURN_int32_t ( msg , 4 ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Get field altitude from gps_global_origin message
*
2018-12-06 01:31:47 +08:00
* @return [mm] Altitude (MSL). Positive for up.
2014-08-10 21:01:07 +02:00
*/
static inline int32_t mavlink_msg_gps_global_origin_get_altitude ( const mavlink_message_t * msg )
{
2016-10-10 10:40:57 +00:00
return _MAV_RETURN_int32_t ( msg , 8 ) ;
2014-08-10 21:01:07 +02:00
}
2017-06-16 07:31:19 +00:00
/**
* @brief Get field time_usec from gps_global_origin message
*
2020-09-20 13:56:18 +08:00
* @return [us] Timestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
2017-06-16 07:31:19 +00:00
*/
2020-09-20 10:12:24 +08:00
static inline uint32_t mavlink_msg_gps_global_origin_get_time_usec ( const mavlink_message_t * msg )
2017-06-16 07:31:19 +00:00
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_uint32_t ( msg , 12 ) ;
2017-06-16 07:31:19 +00:00
}
2014-08-10 21:01:07 +02:00
/**
* @brief Decode a gps_global_origin message into a struct
*
* @param msg The message to decode
* @param gps_global_origin C-struct to decode the message contents into
*/
static inline void mavlink_msg_gps_global_origin_decode ( const mavlink_message_t * msg , mavlink_gps_global_origin_t * gps_global_origin )
{
2016-05-16 08:33:08 +00:00
# if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
2016-10-10 10:40:57 +00:00
gps_global_origin - > latitude = mavlink_msg_gps_global_origin_get_latitude ( msg ) ;
gps_global_origin - > longitude = mavlink_msg_gps_global_origin_get_longitude ( msg ) ;
gps_global_origin - > altitude = mavlink_msg_gps_global_origin_get_altitude ( msg ) ;
2017-06-16 07:31:19 +00:00
gps_global_origin - > time_usec = mavlink_msg_gps_global_origin_get_time_usec ( msg ) ;
2014-08-10 21:01:07 +02:00
# else
2016-05-16 08:33:08 +00:00
uint8_t len = msg - > len < MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN ? msg - > len : MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN ;
memset ( gps_global_origin , 0 , MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN ) ;
2016-10-10 10:40:57 +00:00
memcpy ( gps_global_origin , _MAV_PAYLOAD ( msg ) , len ) ;
2014-08-10 21:01:07 +02:00
# endif
}