Merged sdlog_buffering branch

This commit is contained in:
Lorenz Meier
2013-01-10 14:43:59 +01:00
67 changed files with 9568 additions and 315 deletions
+34 -20
View File
@@ -9,6 +9,13 @@ close all
% Set the path to your sysvector.bin file here
filePath = 'sysvector.bin';
% Work around a Matlab bug (not related to PX4)
% where timestamps from 1.1.1970 do not allow to
% read the file's size
if ismac
system('touch -t 201212121212.12 sysvector.bin');
end
%%%%%%%%%%%%%%%%%%%%%%%
% SYSTEM VECTOR
%
@@ -24,6 +31,8 @@ filePath = 'sysvector.bin';
% float control[4]; //roll, pitch, yaw [-1..1], thrust [0..1]
% float actuators[8]; //motor 1-8, in motor units (PWM: 1000-2000,AR.Drone: 0-512)
% float vbat; //battery voltage in [volt]
% float bat_current - current drawn from battery at this time instant
% float bat_discharged - discharged energy in mAh
% float adc[3]; //remaining auxiliary ADC ports [volt]
% float local_position[3]; //tangent plane mapping into x,y,z [m]
% int32_t gps_raw_position[3]; //latitude [degrees] north, longitude [degrees] east, altitude above MSL [millimeter]
@@ -31,27 +40,34 @@ filePath = 'sysvector.bin';
% float rotMatrix[9]; //unitvectors
% float actuator_control[4]; //unitvector
% float optical_flow[4]; //roll, pitch, yaw [-1..1], thrust [0..1]
% float diff_pressure; - pressure difference in millibar
% float ind_airspeed;
% float true_airspeed;
% Definition of the logged values
logFormat{1} = struct('name', 'timestamp', 'bytes', 8, 'array', 1, 'precision', 'uint64', 'machineformat', 'ieee-le.l64');
logFormat{2} = struct('name', 'gyro', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{3} = struct('name', 'accel', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{4} = struct('name', 'mag', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{5} = struct('name', 'baro', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{6} = struct('name', 'baro_alt', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{7} = struct('name', 'baro_temp', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{1} = struct('name', 'timestamp', 'bytes', 8, 'array', 1, 'precision', 'uint64', 'machineformat', 'ieee-le.l64');
logFormat{2} = struct('name', 'gyro', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{3} = struct('name', 'accel', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{4} = struct('name', 'mag', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{5} = struct('name', 'baro', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{6} = struct('name', 'baro_alt', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{7} = struct('name', 'baro_temp', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{8} = struct('name', 'control', 'bytes', 4, 'array', 4, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{9} = struct('name', 'actuators', 'bytes', 4, 'array', 8, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{10} = struct('name', 'vbat', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{11} = struct('name', 'adc', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{12} = struct('name', 'local_position', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{13} = struct('name', 'gps_raw_position', 'bytes', 4, 'array', 3, 'precision', 'uint32', 'machineformat', 'ieee-le');
logFormat{14} = struct('name', 'attitude', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{15} = struct('name', 'rot_matrix', 'bytes', 4, 'array', 9, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{16} = struct('name', 'vicon_position', 'bytes', 4, 'array', 6, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{17} = struct('name', 'actuator_control', 'bytes', 4, 'array', 4, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{18} = struct('name', 'optical_flow', 'bytes', 4, 'array', 6, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{9} = struct('name', 'actuators', 'bytes', 4, 'array', 8, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{10} = struct('name', 'vbat', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{11} = struct('name', 'bat_current', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{12} = struct('name', 'bat_discharged', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{13} = struct('name', 'adc', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{14} = struct('name', 'local_position', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{15} = struct('name', 'gps_raw_position', 'bytes', 4, 'array', 3, 'precision', 'uint32', 'machineformat', 'ieee-le');
logFormat{16} = struct('name', 'attitude', 'bytes', 4, 'array', 3, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{17} = struct('name', 'rot_matrix', 'bytes', 4, 'array', 9, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{18} = struct('name', 'vicon_position', 'bytes', 4, 'array', 6, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{19} = struct('name', 'actuator_control', 'bytes', 4, 'array', 4, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{20} = struct('name', 'optical_flow', 'bytes', 4, 'array', 6, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{21} = struct('name', 'diff_pressure', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{22} = struct('name', 'ind_airspeed', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
logFormat{23} = struct('name', 'true_airspeed', 'bytes', 4, 'array', 1, 'precision', 'float', 'machineformat', 'ieee-le');
% First get length of one line
columns = length(logFormat);
@@ -96,5 +112,3 @@ if exist(filePath, 'file')
else
disp(['file: ' filePath ' does not exist' char(10)]);
end
+2 -1
View File
@@ -36,7 +36,8 @@
#
APPNAME = sdlog
PRIORITY = SCHED_PRIORITY_DEFAULT - 30
# The main thread only buffers to RAM, needs a high priority
PRIORITY = SCHED_PRIORITY_MAX - 30
STACKSIZE = 2048
include $(APPDIR)/mk/app.mk
+252 -94
View File
File diff suppressed because it is too large Load Diff
+91
View File
@@ -0,0 +1,91 @@
/****************************************************************************
*
* Copyright (C) 2013 PX4 Development Team. All rights reserved.
* Author: Lorenz Meier <lm@inf.ethz.ch>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name PX4 nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/**
* @file sdlog_log.c
* MAVLink text logging.
*
* @author Lorenz Meier <lm@inf.ethz.ch>
*/
#include <string.h>
#include <stdlib.h>
#include "sdlog_ringbuffer.h"
void sdlog_logbuffer_init(struct sdlog_logbuffer *lb, int size)
{
lb->size = size;
lb->start = 0;
lb->count = 0;
lb->elems = (struct sdlog_sysvector *)calloc(lb->size, sizeof(struct sdlog_sysvector));
}
int sdlog_logbuffer_is_full(struct sdlog_logbuffer *lb)
{
return lb->count == (int)lb->size;
}
int sdlog_logbuffer_is_empty(struct sdlog_logbuffer *lb)
{
return lb->count == 0;
}
// XXX make these functions thread-safe
void sdlog_logbuffer_write(struct sdlog_logbuffer *lb, const struct sdlog_sysvector *elem)
{
int end = (lb->start + lb->count) % lb->size;
memcpy(&(lb->elems[end]), elem, sizeof(struct sdlog_sysvector));
if (sdlog_logbuffer_is_full(lb)) {
lb->start = (lb->start + 1) % lb->size; /* full, overwrite */
} else {
++lb->count;
}
}
int sdlog_logbuffer_read(struct sdlog_logbuffer *lb, struct sdlog_sysvector *elem)
{
if (!sdlog_logbuffer_is_empty(lb)) {
memcpy(elem, &(lb->elems[lb->start]), sizeof(struct sdlog_sysvector));
lb->start = (lb->start + 1) % lb->size;
--lb->count;
return 0;
} else {
return 1;
}
}
+91
View File
@@ -0,0 +1,91 @@
/****************************************************************************
*
* Copyright (C) 2013 PX4 Development Team. All rights reserved.
* Author: Lorenz Meier <lm@inf.ethz.ch>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name PX4 nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/**
* @file sdlog_ringbuffer.h
* microSD logging
*
* @author Lorenz Meier <lm@inf.ethz.ch>
*/
#ifndef SDLOG_RINGBUFFER_H_
#define SDLOG_RINGBUFFER_H_
#pragma pack(push, 1)
struct sdlog_sysvector {
uint64_t timestamp; /**< time [us] */
float gyro[3]; /**< [rad/s] */
float accel[3]; /**< [m/s^2] */
float mag[3]; /**< [gauss] */
float baro; /**< pressure [millibar] */
float baro_alt; /**< altitude above MSL [meter] */
float baro_temp; /**< [degree celcius] */
float control[4]; /**< roll, pitch, yaw [-1..1], thrust [0..1] */
float actuators[8]; /**< motor 1-8, in motor units (PWM: 1000-2000,AR.Drone: 0-512) */
float vbat; /**< battery voltage in [volt] */
float bat_current; /**< battery discharge current */
float bat_discharged; /**< discharged energy in mAh */
float adc[3]; /**< remaining auxiliary ADC ports [volt] */
float local_position[3]; /**< tangent plane mapping into x,y,z [m] */
int32_t gps_raw_position[3]; /**< latitude [degrees] north, longitude [degrees] east, altitude above MSL [millimeter] */
float attitude[3]; /**< roll, pitch, yaw [rad] */
float rotMatrix[9]; /**< unitvectors */
float vicon[6]; /**< Vicon ground truth x, y, z and roll, pitch, yaw */
float control_effective[4]; /**< roll, pitch, yaw [-1..1], thrust [0..1] */
float flow[6]; /**< flow raw x, y, flow metric x, y, flow ground dist, flow quality */
float diff_pressure; /**< differential pressure */
float ind_airspeed; /**< indicated airspeed */
float true_airspeed; /**< true airspeed */
};
#pragma pack(pop)
struct sdlog_logbuffer {
unsigned int start;
// unsigned int end;
unsigned int size;
int count;
struct sdlog_sysvector *elems;
};
void sdlog_logbuffer_init(struct sdlog_logbuffer *lb, int size);
int sdlog_logbuffer_is_full(struct sdlog_logbuffer *lb);
int sdlog_logbuffer_is_empty(struct sdlog_logbuffer *lb);
void sdlog_logbuffer_write(struct sdlog_logbuffer *lb, const struct sdlog_sysvector *elem);
int sdlog_logbuffer_read(struct sdlog_logbuffer *lb, struct sdlog_sysvector *elem);
#endif
+79
View File
@@ -0,0 +1,79 @@
/****************************************************************************
*
* Copyright (C) 2012-2013 PX4 Development Team. All rights reserved.
* Author: Lorenz Meier <lm@inf.ethz.ch>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name PX4 nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/**
* @file airspeed.c
* Airspeed estimation
*
* @author Lorenz Meier <lm@inf.ethz.ch>
*
*/
#include "math.h"
float calc_indicated_airspeed(float pressure_front, float pressure_ambient, float temperature)
{
return sqrtf((2.0f*(pressure_front - pressure_ambient)) / air_density_sea_level);
}
/**
* Calculate true airspeed from indicated airspeed.
*
* Note that the true airspeed is NOT the groundspeed, because of the effects of wind
*
* @param speed current indicated airspeed
* @param pressure_ambient pressure at the side of the tube/airplane
* @param temperature air temperature in degrees celcius
* @return true airspeed in m/s
*/
float calc_true_airspeed_from_indicated(float speed, float pressure_ambient, float temperature)
{
return speed * sqrtf(air_density_sea_level / get_air_density(pressure_ambient, temperature));
}
/**
* Directly calculate true airspeed
*
* Note that the true airspeed is NOT the groundspeed, because of the effects of wind
*
* @param pressure_front pressure inside the pitot/prandl tube
* @param pressure_ambient pressure at the side of the tube/airplane
* @param temperature air temperature in degrees celcius
* @return true airspeed in m/s
*/
float calc_true_airspeed(float pressure_front, float pressure_ambient, float temperature)
{
return sqrtf((2.0f*(pressure_front - pressure_ambient)) / get_air_density(pressure_ambient, temperature));
}
+86
View File
@@ -0,0 +1,86 @@
/****************************************************************************
*
* Copyright (C) 2012-2013 PX4 Development Team. All rights reserved.
* Author: Lorenz Meier <lm@inf.ethz.ch>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name PX4 nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/**
* @file airspeed.c
* Airspeed estimation
*
* @author Lorenz Meier <lm@inf.ethz.ch>
*
*/
#include "math.h"
#include "conversions.h"
__BEGIN_DECLS
/**
* Calculate indicated airspeed.
*
* Note that the indicated airspeed is not the true airspeed because it
* lacks the air density compensation. Use the calc_true_airspeed functions to get
* the true airspeed.
*
* @param pressure_front pressure inside the pitot/prandl tube
* @param pressure_ambient pressure at the side of the tube/airplane
* @param temperature air temperature in degrees celcius
* @return indicated airspeed in m/s
*/
__EXPORT float calc_indicated_airspeed(float pressure_front, float pressure_ambient, float temperature);
/**
* Calculate true airspeed from indicated airspeed.
*
* Note that the true airspeed is NOT the groundspeed, because of the effects of wind
*
* @param speed current indicated airspeed
* @param pressure_ambient pressure at the side of the tube/airplane
* @param temperature air temperature in degrees celcius
* @return true airspeed in m/s
*/
__EXPORT float calc_true_airspeed_from_indicated(float speed, float pressure_ambient, float temperature);
/**
* Directly calculate true airspeed
*
* Note that the true airspeed is NOT the groundspeed, because of the effects of wind
*
* @param pressure_front pressure inside the pitot/prandl tube
* @param pressure_ambient pressure at the side of the tube/airplane
* @param temperature air temperature in degrees celcius
* @return true airspeed in m/s
*/
__EXPORT float calc_true_airspeed(float pressure_front, float pressure_ambient, float temperature);
__END_DECLS
+10 -1
View File
@@ -42,6 +42,10 @@
#include "conversions.h"
#define air_gas_constant 8.31432f
#define air_density_sea_level 1.225f
#define absolute_null_kelvin 273.15f
int16_t
int16_t_from_bytes(uint8_t bytes[])
{
@@ -143,4 +147,9 @@ void quat2rot(const float Q[4], float R[9])
R[2] = 2.0F * (Q[1] * Q[3] - Q[0] * Q[2]);
R[5] = 2.0F * (Q[2] * Q[3] + Q[0] * Q[1]);
R[8] = ((q0_2 + q3_2) - q1_2) - q2_2;
}
}
float get_air_density(float static_pressure, float temperature_celsius)
{
return static_pressure/(air_gas_constant * (temperature_celsius + absolute_null_kelvin));
}
+8
View File
@@ -78,6 +78,14 @@ __EXPORT void rot2quat(const float R[9], float Q[4]);
*/
__EXPORT void quat2rot(const float Q[4], float R[9]);
/**
* Calculates air density.
*
* @param static_pressure ambient pressure in millibar
* @param temperature_celcius air / ambient temperature in celcius
*/
__EXPORT float get_air_density(float static_pressure, float temperature_celsius);
__END_DECLS
#endif /* CONVERSIONS_H_ */
+6
View File
@@ -113,6 +113,12 @@ ORB_DEFINE(offboard_control_setpoint, struct offboard_control_setpoint_s);
#include "topics/optical_flow.h"
ORB_DEFINE(optical_flow, struct optical_flow_s);
#include "topics/omnidirectional_flow.h"
ORB_DEFINE(omnidirectional_flow, struct omnidirectional_flow_s);
#include "topics/differential_pressure.h"
ORB_DEFINE(differential_pressure, struct differential_pressure_s);
#include "topics/subsystem_info.h"
ORB_DEFINE(subsystem_info, struct subsystem_info_s);
+70
View File
@@ -0,0 +1,70 @@
/****************************************************************************
*
* Copyright (C) 2012-2013 PX4 Development Team. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name PX4 nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/**
* @file differential_pressure.h
*
* Definition of differential pressure topic
*/
#ifndef TOPIC_DIFFERENTIAL_PRESSURE_H_
#define TOPIC_DIFFERENTIAL_PRESSURE_H_
#include "../uORB.h"
#include <stdint.h>
/**
* @addtogroup topics
* @{
*/
/**
* Battery voltages and status
*/
struct differential_pressure_s {
uint64_t timestamp; /**< microseconds since system boot, needed to integrate */
float static_pressure_mbar; /**< Static / environment pressure */
float differential_pressure_mbar; /**< Differential pressure reading */
float temperature_celcius; /**< ambient temperature in celcius, -1 if unknown */
float indicated_airspeed_m_s; /**< indicated airspeed in meters per second, -1 if unknown */
float true_airspeed_m_s; /**< true airspeed in meters per second, -1 if unknown */
};
/**
* @}
*/
/* register this as object request broker structure */
ORB_DECLARE(differential_pressure);
#endif
+75
View File
@@ -0,0 +1,75 @@
/****************************************************************************
*
* Copyright (C) 2012 PX4 Development Team. All rights reserved.
* Author: @author Lorenz Meier <lm@inf.ethz.ch>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name PX4 nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/**
* @file optical_flow.h
* Definition of the optical flow uORB topic.
*/
#ifndef TOPIC_OMNIDIRECTIONAL_FLOW_H_
#define TOPIC_OMNIDIRECTIONAL_FLOW_H_
#include <stdint.h>
#include <stdbool.h>
#include "../uORB.h"
/**
* @addtogroup topics
*/
/**
* Omnidirectional optical flow in NED body frame in SI units.
*
* @see http://en.wikipedia.org/wiki/International_System_of_Units
*/
struct omnidirectional_flow_s {
uint64_t timestamp; /**< in microseconds since system start */
uint16_t left[10]; /**< Left flow, in decipixels */
uint16_t right[10]; /**< Right flow, in decipixels */
float front_distance_m; /**< Altitude / distance to object front in meters */
uint8_t quality; /**< Quality of the measurement, 0: bad quality, 255: maximum quality */
uint8_t sensor_id; /**< id of the sensor emitting the flow value */
};
/**
* @}
*/
/* register this as object request broker structure */
ORB_DECLARE(omnidirectional_flow);
#endif
+2 -7
View File
@@ -55,11 +55,6 @@
*/
struct optical_flow_s {
/*
* Actual data, this is specific to the type of data which is stored in this struct
* A line containing L0GME will be added by the Python logging code generator to the
* logged dataset.
*/
uint64_t timestamp; /**< in microseconds since system start */
uint16_t flow_raw_x; /**< flow in pixels in X direction, not rotation-compensated */
@@ -67,8 +62,8 @@ struct optical_flow_s {
float flow_comp_x_m; /**< speed over ground in meters, rotation-compensated */
float flow_comp_y_m; /**< speed over ground in meters, rotation-compensated */
float ground_distance_m; /**< Altitude / distance to ground in meters */
uint8_t quality; /**< Quality of the measurement, 0: bad quality, 255: maximum quality */
uint8_t sensor_id; /**< id of the sensor emitting the flow value */
uint8_t quality; /**< Quality of the measurement, 0: bad quality, 255: maximum quality */
uint8_t sensor_id; /**< id of the sensor emitting the flow value */
};
File diff suppressed because one or more lines are too long
@@ -4,7 +4,7 @@
typedef struct __mavlink_wind_t
{
float direction; ///< wind direction (degrees)
float direction; ///< wind direction that wind is coming from (degrees)
float speed; ///< wind speed in ground plane (m/s)
float speed_z; ///< vertical wind speed (m/s)
} mavlink_wind_t;
@@ -30,7 +30,7 @@ typedef struct __mavlink_wind_t
* @param component_id ID of this component (e.g. 200 for IMU)
* @param msg The MAVLink message to compress the data into
*
* @param direction wind direction (degrees)
* @param direction wind direction that wind is coming from (degrees)
* @param speed wind speed in ground plane (m/s)
* @param speed_z vertical wind speed (m/s)
* @return length of the message in bytes (excluding serial stream start sign)
@@ -64,7 +64,7 @@ static inline uint16_t mavlink_msg_wind_pack(uint8_t system_id, uint8_t componen
* @param component_id ID of this component (e.g. 200 for IMU)
* @param chan The MAVLink channel this message was sent over
* @param msg The MAVLink message to compress the data into
* @param direction wind direction (degrees)
* @param direction wind direction that wind is coming from (degrees)
* @param speed wind speed in ground plane (m/s)
* @param speed_z vertical wind speed (m/s)
* @return length of the message in bytes (excluding serial stream start sign)
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_wind_encode(uint8_t system_id, uint8_t compon
* @brief Send a wind message
* @param chan MAVLink channel to send the message
*
* @param direction wind direction (degrees)
* @param direction wind direction that wind is coming from (degrees)
* @param speed wind speed in ground plane (m/s)
* @param speed_z vertical wind speed (m/s)
*/
@@ -143,7 +143,7 @@ static inline void mavlink_msg_wind_send(mavlink_channel_t chan, float direction
/**
* @brief Get field direction from wind message
*
* @return wind direction (degrees)
* @return wind direction that wind is coming from (degrees)
*/
static inline float mavlink_msg_wind_get_direction(const mavlink_message_t* msg)
{
@@ -5,7 +5,7 @@
#ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Sat Dec 1 02:05:58 2012"
#define MAVLINK_BUILD_DATE "Wed Jan 9 16:17:57 2013"
#define MAVLINK_WIRE_PROTOCOL_VERSION "1.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 254
+2
View File
@@ -15,6 +15,7 @@ extern "C" {
#define X25_INIT_CRC 0xffff
#define X25_VALIDATE_CRC 0xf0b8
#ifndef HAVE_CRC_ACCUMULATE
/**
* @brief Accumulate the X.25 CRC by adding one char at a time.
*
@@ -33,6 +34,7 @@ static inline void crc_accumulate(uint8_t data, uint16_t *crcAccum)
tmp ^= (tmp<<4);
*crcAccum = (*crcAccum>>8) ^ (tmp<<8) ^ (tmp <<3) ^ (tmp>>4);
}
#endif
/**
* @brief Initiliaze the buffer for the X.25 CRC
File diff suppressed because one or more lines are too long
@@ -0,0 +1,276 @@
// MESSAGE 6DOF_SETPOINT PACKING
#define MAVLINK_MSG_ID_6DOF_SETPOINT 149
typedef struct __mavlink_6dof_setpoint_t
{
float trans_x; ///< Translational Component in x
float trans_y; ///< Translational Component in y
float trans_z; ///< Translational Component in z
float rot_x; ///< Rotational Component in x
float rot_y; ///< Rotational Component in y
float rot_z; ///< Rotational Component in z
uint8_t target_system; ///< System ID
} mavlink_6dof_setpoint_t;
#define MAVLINK_MSG_ID_6DOF_SETPOINT_LEN 25
#define MAVLINK_MSG_ID_149_LEN 25
#define MAVLINK_MESSAGE_INFO_6DOF_SETPOINT { \
"6DOF_SETPOINT", \
7, \
{ { "trans_x", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_6dof_setpoint_t, trans_x) }, \
{ "trans_y", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_6dof_setpoint_t, trans_y) }, \
{ "trans_z", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_6dof_setpoint_t, trans_z) }, \
{ "rot_x", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_6dof_setpoint_t, rot_x) }, \
{ "rot_y", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_6dof_setpoint_t, rot_y) }, \
{ "rot_z", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_6dof_setpoint_t, rot_z) }, \
{ "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 24, offsetof(mavlink_6dof_setpoint_t, target_system) }, \
} \
}
/**
* @brief Pack a 6dof_setpoint 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 target_system System ID
* @param trans_x Translational Component in x
* @param trans_y Translational Component in y
* @param trans_z Translational Component in z
* @param rot_x Rotational Component in x
* @param rot_y Rotational Component in y
* @param rot_z Rotational Component in z
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_6dof_setpoint_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint8_t target_system, float trans_x, float trans_y, float trans_z, float rot_x, float rot_y, float rot_z)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[25];
_mav_put_float(buf, 0, trans_x);
_mav_put_float(buf, 4, trans_y);
_mav_put_float(buf, 8, trans_z);
_mav_put_float(buf, 12, rot_x);
_mav_put_float(buf, 16, rot_y);
_mav_put_float(buf, 20, rot_z);
_mav_put_uint8_t(buf, 24, target_system);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 25);
#else
mavlink_6dof_setpoint_t packet;
packet.trans_x = trans_x;
packet.trans_y = trans_y;
packet.trans_z = trans_z;
packet.rot_x = rot_x;
packet.rot_y = rot_y;
packet.rot_z = rot_z;
packet.target_system = target_system;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 25);
#endif
msg->msgid = MAVLINK_MSG_ID_6DOF_SETPOINT;
return mavlink_finalize_message(msg, system_id, component_id, 25, 144);
}
/**
* @brief Pack a 6dof_setpoint 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param target_system System ID
* @param trans_x Translational Component in x
* @param trans_y Translational Component in y
* @param trans_z Translational Component in z
* @param rot_x Rotational Component in x
* @param rot_y Rotational Component in y
* @param rot_z Rotational Component in z
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_6dof_setpoint_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint8_t target_system,float trans_x,float trans_y,float trans_z,float rot_x,float rot_y,float rot_z)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[25];
_mav_put_float(buf, 0, trans_x);
_mav_put_float(buf, 4, trans_y);
_mav_put_float(buf, 8, trans_z);
_mav_put_float(buf, 12, rot_x);
_mav_put_float(buf, 16, rot_y);
_mav_put_float(buf, 20, rot_z);
_mav_put_uint8_t(buf, 24, target_system);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 25);
#else
mavlink_6dof_setpoint_t packet;
packet.trans_x = trans_x;
packet.trans_y = trans_y;
packet.trans_z = trans_z;
packet.rot_x = rot_x;
packet.rot_y = rot_y;
packet.rot_z = rot_z;
packet.target_system = target_system;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 25);
#endif
msg->msgid = MAVLINK_MSG_ID_6DOF_SETPOINT;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 25, 144);
}
/**
* @brief Encode a 6dof_setpoint struct into a 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 6dof_setpoint C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_6dof_setpoint_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_6dof_setpoint_t* 6dof_setpoint)
{
return mavlink_msg_6dof_setpoint_pack(system_id, component_id, msg, 6dof_setpoint->target_system, 6dof_setpoint->trans_x, 6dof_setpoint->trans_y, 6dof_setpoint->trans_z, 6dof_setpoint->rot_x, 6dof_setpoint->rot_y, 6dof_setpoint->rot_z);
}
/**
* @brief Send a 6dof_setpoint message
* @param chan MAVLink channel to send the message
*
* @param target_system System ID
* @param trans_x Translational Component in x
* @param trans_y Translational Component in y
* @param trans_z Translational Component in z
* @param rot_x Rotational Component in x
* @param rot_y Rotational Component in y
* @param rot_z Rotational Component in z
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_6dof_setpoint_send(mavlink_channel_t chan, uint8_t target_system, float trans_x, float trans_y, float trans_z, float rot_x, float rot_y, float rot_z)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[25];
_mav_put_float(buf, 0, trans_x);
_mav_put_float(buf, 4, trans_y);
_mav_put_float(buf, 8, trans_z);
_mav_put_float(buf, 12, rot_x);
_mav_put_float(buf, 16, rot_y);
_mav_put_float(buf, 20, rot_z);
_mav_put_uint8_t(buf, 24, target_system);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_6DOF_SETPOINT, buf, 25, 144);
#else
mavlink_6dof_setpoint_t packet;
packet.trans_x = trans_x;
packet.trans_y = trans_y;
packet.trans_z = trans_z;
packet.rot_x = rot_x;
packet.rot_y = rot_y;
packet.rot_z = rot_z;
packet.target_system = target_system;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_6DOF_SETPOINT, (const char *)&packet, 25, 144);
#endif
}
#endif
// MESSAGE 6DOF_SETPOINT UNPACKING
/**
* @brief Get field target_system from 6dof_setpoint message
*
* @return System ID
*/
static inline uint8_t mavlink_msg_6dof_setpoint_get_target_system(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 24);
}
/**
* @brief Get field trans_x from 6dof_setpoint message
*
* @return Translational Component in x
*/
static inline float mavlink_msg_6dof_setpoint_get_trans_x(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 0);
}
/**
* @brief Get field trans_y from 6dof_setpoint message
*
* @return Translational Component in y
*/
static inline float mavlink_msg_6dof_setpoint_get_trans_y(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 4);
}
/**
* @brief Get field trans_z from 6dof_setpoint message
*
* @return Translational Component in z
*/
static inline float mavlink_msg_6dof_setpoint_get_trans_z(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field rot_x from 6dof_setpoint message
*
* @return Rotational Component in x
*/
static inline float mavlink_msg_6dof_setpoint_get_rot_x(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Get field rot_y from 6dof_setpoint message
*
* @return Rotational Component in y
*/
static inline float mavlink_msg_6dof_setpoint_get_rot_y(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Get field rot_z from 6dof_setpoint message
*
* @return Rotational Component in z
*/
static inline float mavlink_msg_6dof_setpoint_get_rot_z(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 20);
}
/**
* @brief Decode a 6dof_setpoint message into a struct
*
* @param msg The message to decode
* @param 6dof_setpoint C-struct to decode the message contents into
*/
static inline void mavlink_msg_6dof_setpoint_decode(const mavlink_message_t* msg, mavlink_6dof_setpoint_t* 6dof_setpoint)
{
#if MAVLINK_NEED_BYTE_SWAP
6dof_setpoint->trans_x = mavlink_msg_6dof_setpoint_get_trans_x(msg);
6dof_setpoint->trans_y = mavlink_msg_6dof_setpoint_get_trans_y(msg);
6dof_setpoint->trans_z = mavlink_msg_6dof_setpoint_get_trans_z(msg);
6dof_setpoint->rot_x = mavlink_msg_6dof_setpoint_get_rot_x(msg);
6dof_setpoint->rot_y = mavlink_msg_6dof_setpoint_get_rot_y(msg);
6dof_setpoint->rot_z = mavlink_msg_6dof_setpoint_get_rot_z(msg);
6dof_setpoint->target_system = mavlink_msg_6dof_setpoint_get_target_system(msg);
#else
memcpy(6dof_setpoint, _MAV_PAYLOAD(msg), 25);
#endif
}
@@ -0,0 +1,320 @@
// MESSAGE 8DOF_SETPOINT PACKING
#define MAVLINK_MSG_ID_8DOF_SETPOINT 148
typedef struct __mavlink_8dof_setpoint_t
{
float val1; ///< Value 1
float val2; ///< Value 2
float val3; ///< Value 3
float val4; ///< Value 4
float val5; ///< Value 5
float val6; ///< Value 6
float val7; ///< Value 7
float val8; ///< Value 8
uint8_t target_system; ///< System ID
} mavlink_8dof_setpoint_t;
#define MAVLINK_MSG_ID_8DOF_SETPOINT_LEN 33
#define MAVLINK_MSG_ID_148_LEN 33
#define MAVLINK_MESSAGE_INFO_8DOF_SETPOINT { \
"8DOF_SETPOINT", \
9, \
{ { "val1", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_8dof_setpoint_t, val1) }, \
{ "val2", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_8dof_setpoint_t, val2) }, \
{ "val3", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_8dof_setpoint_t, val3) }, \
{ "val4", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_8dof_setpoint_t, val4) }, \
{ "val5", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_8dof_setpoint_t, val5) }, \
{ "val6", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_8dof_setpoint_t, val6) }, \
{ "val7", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_8dof_setpoint_t, val7) }, \
{ "val8", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_8dof_setpoint_t, val8) }, \
{ "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_8dof_setpoint_t, target_system) }, \
} \
}
/**
* @brief Pack a 8dof_setpoint 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 target_system System ID
* @param val1 Value 1
* @param val2 Value 2
* @param val3 Value 3
* @param val4 Value 4
* @param val5 Value 5
* @param val6 Value 6
* @param val7 Value 7
* @param val8 Value 8
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_8dof_setpoint_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint8_t target_system, float val1, float val2, float val3, float val4, float val5, float val6, float val7, float val8)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[33];
_mav_put_float(buf, 0, val1);
_mav_put_float(buf, 4, val2);
_mav_put_float(buf, 8, val3);
_mav_put_float(buf, 12, val4);
_mav_put_float(buf, 16, val5);
_mav_put_float(buf, 20, val6);
_mav_put_float(buf, 24, val7);
_mav_put_float(buf, 28, val8);
_mav_put_uint8_t(buf, 32, target_system);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 33);
#else
mavlink_8dof_setpoint_t packet;
packet.val1 = val1;
packet.val2 = val2;
packet.val3 = val3;
packet.val4 = val4;
packet.val5 = val5;
packet.val6 = val6;
packet.val7 = val7;
packet.val8 = val8;
packet.target_system = target_system;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 33);
#endif
msg->msgid = MAVLINK_MSG_ID_8DOF_SETPOINT;
return mavlink_finalize_message(msg, system_id, component_id, 33, 42);
}
/**
* @brief Pack a 8dof_setpoint 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param target_system System ID
* @param val1 Value 1
* @param val2 Value 2
* @param val3 Value 3
* @param val4 Value 4
* @param val5 Value 5
* @param val6 Value 6
* @param val7 Value 7
* @param val8 Value 8
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_8dof_setpoint_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint8_t target_system,float val1,float val2,float val3,float val4,float val5,float val6,float val7,float val8)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[33];
_mav_put_float(buf, 0, val1);
_mav_put_float(buf, 4, val2);
_mav_put_float(buf, 8, val3);
_mav_put_float(buf, 12, val4);
_mav_put_float(buf, 16, val5);
_mav_put_float(buf, 20, val6);
_mav_put_float(buf, 24, val7);
_mav_put_float(buf, 28, val8);
_mav_put_uint8_t(buf, 32, target_system);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 33);
#else
mavlink_8dof_setpoint_t packet;
packet.val1 = val1;
packet.val2 = val2;
packet.val3 = val3;
packet.val4 = val4;
packet.val5 = val5;
packet.val6 = val6;
packet.val7 = val7;
packet.val8 = val8;
packet.target_system = target_system;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 33);
#endif
msg->msgid = MAVLINK_MSG_ID_8DOF_SETPOINT;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 33, 42);
}
/**
* @brief Encode a 8dof_setpoint struct into a 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 8dof_setpoint C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_8dof_setpoint_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_8dof_setpoint_t* 8dof_setpoint)
{
return mavlink_msg_8dof_setpoint_pack(system_id, component_id, msg, 8dof_setpoint->target_system, 8dof_setpoint->val1, 8dof_setpoint->val2, 8dof_setpoint->val3, 8dof_setpoint->val4, 8dof_setpoint->val5, 8dof_setpoint->val6, 8dof_setpoint->val7, 8dof_setpoint->val8);
}
/**
* @brief Send a 8dof_setpoint message
* @param chan MAVLink channel to send the message
*
* @param target_system System ID
* @param val1 Value 1
* @param val2 Value 2
* @param val3 Value 3
* @param val4 Value 4
* @param val5 Value 5
* @param val6 Value 6
* @param val7 Value 7
* @param val8 Value 8
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_8dof_setpoint_send(mavlink_channel_t chan, uint8_t target_system, float val1, float val2, float val3, float val4, float val5, float val6, float val7, float val8)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[33];
_mav_put_float(buf, 0, val1);
_mav_put_float(buf, 4, val2);
_mav_put_float(buf, 8, val3);
_mav_put_float(buf, 12, val4);
_mav_put_float(buf, 16, val5);
_mav_put_float(buf, 20, val6);
_mav_put_float(buf, 24, val7);
_mav_put_float(buf, 28, val8);
_mav_put_uint8_t(buf, 32, target_system);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_8DOF_SETPOINT, buf, 33, 42);
#else
mavlink_8dof_setpoint_t packet;
packet.val1 = val1;
packet.val2 = val2;
packet.val3 = val3;
packet.val4 = val4;
packet.val5 = val5;
packet.val6 = val6;
packet.val7 = val7;
packet.val8 = val8;
packet.target_system = target_system;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_8DOF_SETPOINT, (const char *)&packet, 33, 42);
#endif
}
#endif
// MESSAGE 8DOF_SETPOINT UNPACKING
/**
* @brief Get field target_system from 8dof_setpoint message
*
* @return System ID
*/
static inline uint8_t mavlink_msg_8dof_setpoint_get_target_system(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 32);
}
/**
* @brief Get field val1 from 8dof_setpoint message
*
* @return Value 1
*/
static inline float mavlink_msg_8dof_setpoint_get_val1(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 0);
}
/**
* @brief Get field val2 from 8dof_setpoint message
*
* @return Value 2
*/
static inline float mavlink_msg_8dof_setpoint_get_val2(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 4);
}
/**
* @brief Get field val3 from 8dof_setpoint message
*
* @return Value 3
*/
static inline float mavlink_msg_8dof_setpoint_get_val3(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field val4 from 8dof_setpoint message
*
* @return Value 4
*/
static inline float mavlink_msg_8dof_setpoint_get_val4(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Get field val5 from 8dof_setpoint message
*
* @return Value 5
*/
static inline float mavlink_msg_8dof_setpoint_get_val5(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Get field val6 from 8dof_setpoint message
*
* @return Value 6
*/
static inline float mavlink_msg_8dof_setpoint_get_val6(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 20);
}
/**
* @brief Get field val7 from 8dof_setpoint message
*
* @return Value 7
*/
static inline float mavlink_msg_8dof_setpoint_get_val7(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 24);
}
/**
* @brief Get field val8 from 8dof_setpoint message
*
* @return Value 8
*/
static inline float mavlink_msg_8dof_setpoint_get_val8(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 28);
}
/**
* @brief Decode a 8dof_setpoint message into a struct
*
* @param msg The message to decode
* @param 8dof_setpoint C-struct to decode the message contents into
*/
static inline void mavlink_msg_8dof_setpoint_decode(const mavlink_message_t* msg, mavlink_8dof_setpoint_t* 8dof_setpoint)
{
#if MAVLINK_NEED_BYTE_SWAP
8dof_setpoint->val1 = mavlink_msg_8dof_setpoint_get_val1(msg);
8dof_setpoint->val2 = mavlink_msg_8dof_setpoint_get_val2(msg);
8dof_setpoint->val3 = mavlink_msg_8dof_setpoint_get_val3(msg);
8dof_setpoint->val4 = mavlink_msg_8dof_setpoint_get_val4(msg);
8dof_setpoint->val5 = mavlink_msg_8dof_setpoint_get_val5(msg);
8dof_setpoint->val6 = mavlink_msg_8dof_setpoint_get_val6(msg);
8dof_setpoint->val7 = mavlink_msg_8dof_setpoint_get_val7(msg);
8dof_setpoint->val8 = mavlink_msg_8dof_setpoint_get_val8(msg);
8dof_setpoint->target_system = mavlink_msg_8dof_setpoint_get_target_system(msg);
#else
memcpy(8dof_setpoint, _MAV_PAYLOAD(msg), 33);
#endif
}
@@ -0,0 +1,249 @@
// MESSAGE OMNIDIRECTIONAL_FLOW PACKING
#define MAVLINK_MSG_ID_OMNIDIRECTIONAL_FLOW 106
typedef struct __mavlink_omnidirectional_flow_t
{
uint64_t time_usec; ///< Timestamp (microseconds, synced to UNIX time or since system boot)
float front_distance_m; ///< Front distance in meters. Positive value (including zero): distance known. Negative value: Unknown distance
int16_t left[10]; ///< Flow in deci pixels (1 = 0.1 pixel) on left hemisphere
int16_t right[10]; ///< Flow in deci pixels (1 = 0.1 pixel) on right hemisphere
uint8_t sensor_id; ///< Sensor ID
uint8_t quality; ///< Optical flow quality / confidence. 0: bad, 255: maximum quality
} mavlink_omnidirectional_flow_t;
#define MAVLINK_MSG_ID_OMNIDIRECTIONAL_FLOW_LEN 54
#define MAVLINK_MSG_ID_106_LEN 54
#define MAVLINK_MSG_OMNIDIRECTIONAL_FLOW_FIELD_LEFT_LEN 10
#define MAVLINK_MSG_OMNIDIRECTIONAL_FLOW_FIELD_RIGHT_LEN 10
#define MAVLINK_MESSAGE_INFO_OMNIDIRECTIONAL_FLOW { \
"OMNIDIRECTIONAL_FLOW", \
6, \
{ { "time_usec", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_omnidirectional_flow_t, time_usec) }, \
{ "front_distance_m", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_omnidirectional_flow_t, front_distance_m) }, \
{ "left", NULL, MAVLINK_TYPE_INT16_T, 10, 12, offsetof(mavlink_omnidirectional_flow_t, left) }, \
{ "right", NULL, MAVLINK_TYPE_INT16_T, 10, 32, offsetof(mavlink_omnidirectional_flow_t, right) }, \
{ "sensor_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 52, offsetof(mavlink_omnidirectional_flow_t, sensor_id) }, \
{ "quality", NULL, MAVLINK_TYPE_UINT8_T, 0, 53, offsetof(mavlink_omnidirectional_flow_t, quality) }, \
} \
}
/**
* @brief Pack a omnidirectional_flow 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 time_usec Timestamp (microseconds, synced to UNIX time or since system boot)
* @param sensor_id Sensor ID
* @param left Flow in deci pixels (1 = 0.1 pixel) on left hemisphere
* @param right Flow in deci pixels (1 = 0.1 pixel) on right hemisphere
* @param quality Optical flow quality / confidence. 0: bad, 255: maximum quality
* @param front_distance_m Front distance in meters. Positive value (including zero): distance known. Negative value: Unknown distance
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_omnidirectional_flow_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint64_t time_usec, uint8_t sensor_id, const int16_t *left, const int16_t *right, uint8_t quality, float front_distance_m)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[54];
_mav_put_uint64_t(buf, 0, time_usec);
_mav_put_float(buf, 8, front_distance_m);
_mav_put_uint8_t(buf, 52, sensor_id);
_mav_put_uint8_t(buf, 53, quality);
_mav_put_int16_t_array(buf, 12, left, 10);
_mav_put_int16_t_array(buf, 32, right, 10);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 54);
#else
mavlink_omnidirectional_flow_t packet;
packet.time_usec = time_usec;
packet.front_distance_m = front_distance_m;
packet.sensor_id = sensor_id;
packet.quality = quality;
mav_array_memcpy(packet.left, left, sizeof(int16_t)*10);
mav_array_memcpy(packet.right, right, sizeof(int16_t)*10);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 54);
#endif
msg->msgid = MAVLINK_MSG_ID_OMNIDIRECTIONAL_FLOW;
return mavlink_finalize_message(msg, system_id, component_id, 54, 211);
}
/**
* @brief Pack a omnidirectional_flow 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param time_usec Timestamp (microseconds, synced to UNIX time or since system boot)
* @param sensor_id Sensor ID
* @param left Flow in deci pixels (1 = 0.1 pixel) on left hemisphere
* @param right Flow in deci pixels (1 = 0.1 pixel) on right hemisphere
* @param quality Optical flow quality / confidence. 0: bad, 255: maximum quality
* @param front_distance_m Front distance in meters. Positive value (including zero): distance known. Negative value: Unknown distance
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_omnidirectional_flow_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint64_t time_usec,uint8_t sensor_id,const int16_t *left,const int16_t *right,uint8_t quality,float front_distance_m)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[54];
_mav_put_uint64_t(buf, 0, time_usec);
_mav_put_float(buf, 8, front_distance_m);
_mav_put_uint8_t(buf, 52, sensor_id);
_mav_put_uint8_t(buf, 53, quality);
_mav_put_int16_t_array(buf, 12, left, 10);
_mav_put_int16_t_array(buf, 32, right, 10);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 54);
#else
mavlink_omnidirectional_flow_t packet;
packet.time_usec = time_usec;
packet.front_distance_m = front_distance_m;
packet.sensor_id = sensor_id;
packet.quality = quality;
mav_array_memcpy(packet.left, left, sizeof(int16_t)*10);
mav_array_memcpy(packet.right, right, sizeof(int16_t)*10);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 54);
#endif
msg->msgid = MAVLINK_MSG_ID_OMNIDIRECTIONAL_FLOW;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 54, 211);
}
/**
* @brief Encode a omnidirectional_flow struct into a 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 omnidirectional_flow C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_omnidirectional_flow_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_omnidirectional_flow_t* omnidirectional_flow)
{
return mavlink_msg_omnidirectional_flow_pack(system_id, component_id, msg, omnidirectional_flow->time_usec, omnidirectional_flow->sensor_id, omnidirectional_flow->left, omnidirectional_flow->right, omnidirectional_flow->quality, omnidirectional_flow->front_distance_m);
}
/**
* @brief Send a omnidirectional_flow message
* @param chan MAVLink channel to send the message
*
* @param time_usec Timestamp (microseconds, synced to UNIX time or since system boot)
* @param sensor_id Sensor ID
* @param left Flow in deci pixels (1 = 0.1 pixel) on left hemisphere
* @param right Flow in deci pixels (1 = 0.1 pixel) on right hemisphere
* @param quality Optical flow quality / confidence. 0: bad, 255: maximum quality
* @param front_distance_m Front distance in meters. Positive value (including zero): distance known. Negative value: Unknown distance
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_omnidirectional_flow_send(mavlink_channel_t chan, uint64_t time_usec, uint8_t sensor_id, const int16_t *left, const int16_t *right, uint8_t quality, float front_distance_m)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[54];
_mav_put_uint64_t(buf, 0, time_usec);
_mav_put_float(buf, 8, front_distance_m);
_mav_put_uint8_t(buf, 52, sensor_id);
_mav_put_uint8_t(buf, 53, quality);
_mav_put_int16_t_array(buf, 12, left, 10);
_mav_put_int16_t_array(buf, 32, right, 10);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OMNIDIRECTIONAL_FLOW, buf, 54, 211);
#else
mavlink_omnidirectional_flow_t packet;
packet.time_usec = time_usec;
packet.front_distance_m = front_distance_m;
packet.sensor_id = sensor_id;
packet.quality = quality;
mav_array_memcpy(packet.left, left, sizeof(int16_t)*10);
mav_array_memcpy(packet.right, right, sizeof(int16_t)*10);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OMNIDIRECTIONAL_FLOW, (const char *)&packet, 54, 211);
#endif
}
#endif
// MESSAGE OMNIDIRECTIONAL_FLOW UNPACKING
/**
* @brief Get field time_usec from omnidirectional_flow message
*
* @return Timestamp (microseconds, synced to UNIX time or since system boot)
*/
static inline uint64_t mavlink_msg_omnidirectional_flow_get_time_usec(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint64_t(msg, 0);
}
/**
* @brief Get field sensor_id from omnidirectional_flow message
*
* @return Sensor ID
*/
static inline uint8_t mavlink_msg_omnidirectional_flow_get_sensor_id(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 52);
}
/**
* @brief Get field left from omnidirectional_flow message
*
* @return Flow in deci pixels (1 = 0.1 pixel) on left hemisphere
*/
static inline uint16_t mavlink_msg_omnidirectional_flow_get_left(const mavlink_message_t* msg, int16_t *left)
{
return _MAV_RETURN_int16_t_array(msg, left, 10, 12);
}
/**
* @brief Get field right from omnidirectional_flow message
*
* @return Flow in deci pixels (1 = 0.1 pixel) on right hemisphere
*/
static inline uint16_t mavlink_msg_omnidirectional_flow_get_right(const mavlink_message_t* msg, int16_t *right)
{
return _MAV_RETURN_int16_t_array(msg, right, 10, 32);
}
/**
* @brief Get field quality from omnidirectional_flow message
*
* @return Optical flow quality / confidence. 0: bad, 255: maximum quality
*/
static inline uint8_t mavlink_msg_omnidirectional_flow_get_quality(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 53);
}
/**
* @brief Get field front_distance_m from omnidirectional_flow message
*
* @return Front distance in meters. Positive value (including zero): distance known. Negative value: Unknown distance
*/
static inline float mavlink_msg_omnidirectional_flow_get_front_distance_m(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Decode a omnidirectional_flow message into a struct
*
* @param msg The message to decode
* @param omnidirectional_flow C-struct to decode the message contents into
*/
static inline void mavlink_msg_omnidirectional_flow_decode(const mavlink_message_t* msg, mavlink_omnidirectional_flow_t* omnidirectional_flow)
{
#if MAVLINK_NEED_BYTE_SWAP
omnidirectional_flow->time_usec = mavlink_msg_omnidirectional_flow_get_time_usec(msg);
omnidirectional_flow->front_distance_m = mavlink_msg_omnidirectional_flow_get_front_distance_m(msg);
mavlink_msg_omnidirectional_flow_get_left(msg, omnidirectional_flow->left);
mavlink_msg_omnidirectional_flow_get_right(msg, omnidirectional_flow->right);
omnidirectional_flow->sensor_id = mavlink_msg_omnidirectional_flow_get_sensor_id(msg);
omnidirectional_flow->quality = mavlink_msg_omnidirectional_flow_get_quality(msg);
#else
memcpy(omnidirectional_flow, _MAV_PAYLOAD(msg), 54);
#endif
}
@@ -4,7 +4,7 @@
typedef struct __mavlink_servo_output_raw_t
{
uint32_t time_boot_ms; ///< Timestamp (microseconds since system boot)
uint32_t time_usec; ///< Timestamp (microseconds since system boot)
uint16_t servo1_raw; ///< Servo output 1 value, in microseconds
uint16_t servo2_raw; ///< Servo output 2 value, in microseconds
uint16_t servo3_raw; ///< Servo output 3 value, in microseconds
@@ -24,7 +24,7 @@ typedef struct __mavlink_servo_output_raw_t
#define MAVLINK_MESSAGE_INFO_SERVO_OUTPUT_RAW { \
"SERVO_OUTPUT_RAW", \
10, \
{ { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_servo_output_raw_t, time_boot_ms) }, \
{ { "time_usec", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_servo_output_raw_t, time_usec) }, \
{ "servo1_raw", NULL, MAVLINK_TYPE_UINT16_T, 0, 4, offsetof(mavlink_servo_output_raw_t, servo1_raw) }, \
{ "servo2_raw", NULL, MAVLINK_TYPE_UINT16_T, 0, 6, offsetof(mavlink_servo_output_raw_t, servo2_raw) }, \
{ "servo3_raw", NULL, MAVLINK_TYPE_UINT16_T, 0, 8, offsetof(mavlink_servo_output_raw_t, servo3_raw) }, \
@@ -44,7 +44,7 @@ typedef struct __mavlink_servo_output_raw_t
* @param component_id ID of this component (e.g. 200 for IMU)
* @param msg The MAVLink message to compress the data into
*
* @param time_boot_ms Timestamp (microseconds since system boot)
* @param time_usec Timestamp (microseconds since system boot)
* @param port Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos.
* @param servo1_raw Servo output 1 value, in microseconds
* @param servo2_raw Servo output 2 value, in microseconds
@@ -57,11 +57,11 @@ typedef struct __mavlink_servo_output_raw_t
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_servo_output_raw_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint32_t time_boot_ms, uint8_t port, uint16_t servo1_raw, uint16_t servo2_raw, uint16_t servo3_raw, uint16_t servo4_raw, uint16_t servo5_raw, uint16_t servo6_raw, uint16_t servo7_raw, uint16_t servo8_raw)
uint32_t time_usec, uint8_t port, uint16_t servo1_raw, uint16_t servo2_raw, uint16_t servo3_raw, uint16_t servo4_raw, uint16_t servo5_raw, uint16_t servo6_raw, uint16_t servo7_raw, uint16_t servo8_raw)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[21];
_mav_put_uint32_t(buf, 0, time_boot_ms);
_mav_put_uint32_t(buf, 0, time_usec);
_mav_put_uint16_t(buf, 4, servo1_raw);
_mav_put_uint16_t(buf, 6, servo2_raw);
_mav_put_uint16_t(buf, 8, servo3_raw);
@@ -75,7 +75,7 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack(uint8_t system_id, uint
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 21);
#else
mavlink_servo_output_raw_t packet;
packet.time_boot_ms = time_boot_ms;
packet.time_usec = time_usec;
packet.servo1_raw = servo1_raw;
packet.servo2_raw = servo2_raw;
packet.servo3_raw = servo3_raw;
@@ -90,7 +90,7 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack(uint8_t system_id, uint
#endif
msg->msgid = MAVLINK_MSG_ID_SERVO_OUTPUT_RAW;
return mavlink_finalize_message(msg, system_id, component_id, 21, 242);
return mavlink_finalize_message(msg, system_id, component_id, 21, 222);
}
/**
@@ -99,7 +99,7 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack(uint8_t system_id, uint
* @param component_id ID of this component (e.g. 200 for IMU)
* @param chan The MAVLink channel this message was sent over
* @param msg The MAVLink message to compress the data into
* @param time_boot_ms Timestamp (microseconds since system boot)
* @param time_usec Timestamp (microseconds since system boot)
* @param port Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos.
* @param servo1_raw Servo output 1 value, in microseconds
* @param servo2_raw Servo output 2 value, in microseconds
@@ -113,11 +113,11 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack(uint8_t system_id, uint
*/
static inline uint16_t mavlink_msg_servo_output_raw_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint32_t time_boot_ms,uint8_t port,uint16_t servo1_raw,uint16_t servo2_raw,uint16_t servo3_raw,uint16_t servo4_raw,uint16_t servo5_raw,uint16_t servo6_raw,uint16_t servo7_raw,uint16_t servo8_raw)
uint32_t time_usec,uint8_t port,uint16_t servo1_raw,uint16_t servo2_raw,uint16_t servo3_raw,uint16_t servo4_raw,uint16_t servo5_raw,uint16_t servo6_raw,uint16_t servo7_raw,uint16_t servo8_raw)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[21];
_mav_put_uint32_t(buf, 0, time_boot_ms);
_mav_put_uint32_t(buf, 0, time_usec);
_mav_put_uint16_t(buf, 4, servo1_raw);
_mav_put_uint16_t(buf, 6, servo2_raw);
_mav_put_uint16_t(buf, 8, servo3_raw);
@@ -131,7 +131,7 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack_chan(uint8_t system_id,
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 21);
#else
mavlink_servo_output_raw_t packet;
packet.time_boot_ms = time_boot_ms;
packet.time_usec = time_usec;
packet.servo1_raw = servo1_raw;
packet.servo2_raw = servo2_raw;
packet.servo3_raw = servo3_raw;
@@ -146,7 +146,7 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack_chan(uint8_t system_id,
#endif
msg->msgid = MAVLINK_MSG_ID_SERVO_OUTPUT_RAW;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 21, 242);
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 21, 222);
}
/**
@@ -159,14 +159,14 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack_chan(uint8_t system_id,
*/
static inline uint16_t mavlink_msg_servo_output_raw_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_servo_output_raw_t* servo_output_raw)
{
return mavlink_msg_servo_output_raw_pack(system_id, component_id, msg, servo_output_raw->time_boot_ms, servo_output_raw->port, servo_output_raw->servo1_raw, servo_output_raw->servo2_raw, servo_output_raw->servo3_raw, servo_output_raw->servo4_raw, servo_output_raw->servo5_raw, servo_output_raw->servo6_raw, servo_output_raw->servo7_raw, servo_output_raw->servo8_raw);
return mavlink_msg_servo_output_raw_pack(system_id, component_id, msg, servo_output_raw->time_usec, servo_output_raw->port, servo_output_raw->servo1_raw, servo_output_raw->servo2_raw, servo_output_raw->servo3_raw, servo_output_raw->servo4_raw, servo_output_raw->servo5_raw, servo_output_raw->servo6_raw, servo_output_raw->servo7_raw, servo_output_raw->servo8_raw);
}
/**
* @brief Send a servo_output_raw message
* @param chan MAVLink channel to send the message
*
* @param time_boot_ms Timestamp (microseconds since system boot)
* @param time_usec Timestamp (microseconds since system boot)
* @param port Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos.
* @param servo1_raw Servo output 1 value, in microseconds
* @param servo2_raw Servo output 2 value, in microseconds
@@ -179,11 +179,11 @@ static inline uint16_t mavlink_msg_servo_output_raw_encode(uint8_t system_id, ui
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_servo_output_raw_send(mavlink_channel_t chan, uint32_t time_boot_ms, uint8_t port, uint16_t servo1_raw, uint16_t servo2_raw, uint16_t servo3_raw, uint16_t servo4_raw, uint16_t servo5_raw, uint16_t servo6_raw, uint16_t servo7_raw, uint16_t servo8_raw)
static inline void mavlink_msg_servo_output_raw_send(mavlink_channel_t chan, uint32_t time_usec, uint8_t port, uint16_t servo1_raw, uint16_t servo2_raw, uint16_t servo3_raw, uint16_t servo4_raw, uint16_t servo5_raw, uint16_t servo6_raw, uint16_t servo7_raw, uint16_t servo8_raw)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[21];
_mav_put_uint32_t(buf, 0, time_boot_ms);
_mav_put_uint32_t(buf, 0, time_usec);
_mav_put_uint16_t(buf, 4, servo1_raw);
_mav_put_uint16_t(buf, 6, servo2_raw);
_mav_put_uint16_t(buf, 8, servo3_raw);
@@ -194,10 +194,10 @@ static inline void mavlink_msg_servo_output_raw_send(mavlink_channel_t chan, uin
_mav_put_uint16_t(buf, 18, servo8_raw);
_mav_put_uint8_t(buf, 20, port);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVO_OUTPUT_RAW, buf, 21, 242);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVO_OUTPUT_RAW, buf, 21, 222);
#else
mavlink_servo_output_raw_t packet;
packet.time_boot_ms = time_boot_ms;
packet.time_usec = time_usec;
packet.servo1_raw = servo1_raw;
packet.servo2_raw = servo2_raw;
packet.servo3_raw = servo3_raw;
@@ -208,7 +208,7 @@ static inline void mavlink_msg_servo_output_raw_send(mavlink_channel_t chan, uin
packet.servo8_raw = servo8_raw;
packet.port = port;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVO_OUTPUT_RAW, (const char *)&packet, 21, 242);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVO_OUTPUT_RAW, (const char *)&packet, 21, 222);
#endif
}
@@ -218,11 +218,11 @@ static inline void mavlink_msg_servo_output_raw_send(mavlink_channel_t chan, uin
/**
* @brief Get field time_boot_ms from servo_output_raw message
* @brief Get field time_usec from servo_output_raw message
*
* @return Timestamp (microseconds since system boot)
*/
static inline uint32_t mavlink_msg_servo_output_raw_get_time_boot_ms(const mavlink_message_t* msg)
static inline uint32_t mavlink_msg_servo_output_raw_get_time_usec(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 0);
}
@@ -326,7 +326,7 @@ static inline uint16_t mavlink_msg_servo_output_raw_get_servo8_raw(const mavlink
static inline void mavlink_msg_servo_output_raw_decode(const mavlink_message_t* msg, mavlink_servo_output_raw_t* servo_output_raw)
{
#if MAVLINK_NEED_BYTE_SWAP
servo_output_raw->time_boot_ms = mavlink_msg_servo_output_raw_get_time_boot_ms(msg);
servo_output_raw->time_usec = mavlink_msg_servo_output_raw_get_time_usec(msg);
servo_output_raw->servo1_raw = mavlink_msg_servo_output_raw_get_servo1_raw(msg);
servo_output_raw->servo2_raw = mavlink_msg_servo_output_raw_get_servo2_raw(msg);
servo_output_raw->servo3_raw = mavlink_msg_servo_output_raw_get_servo3_raw(msg);
@@ -1327,7 +1327,7 @@ static void mavlink_test_servo_output_raw(uint8_t system_id, uint8_t component_i
};
mavlink_servo_output_raw_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.time_boot_ms = packet_in.time_boot_ms;
packet1.time_usec = packet_in.time_usec;
packet1.servo1_raw = packet_in.servo1_raw;
packet1.servo2_raw = packet_in.servo2_raw;
packet1.servo3_raw = packet_in.servo3_raw;
@@ -1346,12 +1346,12 @@ static void mavlink_test_servo_output_raw(uint8_t system_id, uint8_t component_i
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_servo_output_raw_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.port , packet1.servo1_raw , packet1.servo2_raw , packet1.servo3_raw , packet1.servo4_raw , packet1.servo5_raw , packet1.servo6_raw , packet1.servo7_raw , packet1.servo8_raw );
mavlink_msg_servo_output_raw_pack(system_id, component_id, &msg , packet1.time_usec , packet1.port , packet1.servo1_raw , packet1.servo2_raw , packet1.servo3_raw , packet1.servo4_raw , packet1.servo5_raw , packet1.servo6_raw , packet1.servo7_raw , packet1.servo8_raw );
mavlink_msg_servo_output_raw_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_servo_output_raw_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.port , packet1.servo1_raw , packet1.servo2_raw , packet1.servo3_raw , packet1.servo4_raw , packet1.servo5_raw , packet1.servo6_raw , packet1.servo7_raw , packet1.servo8_raw );
mavlink_msg_servo_output_raw_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.port , packet1.servo1_raw , packet1.servo2_raw , packet1.servo3_raw , packet1.servo4_raw , packet1.servo5_raw , packet1.servo6_raw , packet1.servo7_raw , packet1.servo8_raw );
mavlink_msg_servo_output_raw_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
@@ -1364,7 +1364,7 @@ static void mavlink_test_servo_output_raw(uint8_t system_id, uint8_t component_i
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_servo_output_raw_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.port , packet1.servo1_raw , packet1.servo2_raw , packet1.servo3_raw , packet1.servo4_raw , packet1.servo5_raw , packet1.servo6_raw , packet1.servo7_raw , packet1.servo8_raw );
mavlink_msg_servo_output_raw_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.port , packet1.servo1_raw , packet1.servo2_raw , packet1.servo3_raw , packet1.servo4_raw , packet1.servo5_raw , packet1.servo6_raw , packet1.servo7_raw , packet1.servo8_raw );
mavlink_msg_servo_output_raw_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
@@ -3886,6 +3886,59 @@ static void mavlink_test_highres_imu(uint8_t system_id, uint8_t component_id, ma
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_omnidirectional_flow(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_omnidirectional_flow_t packet_in = {
93372036854775807ULL,
73.0,
{ 17859, 17860, 17861, 17862, 17863, 17864, 17865, 17866, 17867, 17868 },
{ 18899, 18900, 18901, 18902, 18903, 18904, 18905, 18906, 18907, 18908 },
161,
228,
};
mavlink_omnidirectional_flow_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.time_usec = packet_in.time_usec;
packet1.front_distance_m = packet_in.front_distance_m;
packet1.sensor_id = packet_in.sensor_id;
packet1.quality = packet_in.quality;
mav_array_memcpy(packet1.left, packet_in.left, sizeof(int16_t)*10);
mav_array_memcpy(packet1.right, packet_in.right, sizeof(int16_t)*10);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_omnidirectional_flow_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_omnidirectional_flow_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_omnidirectional_flow_pack(system_id, component_id, &msg , packet1.time_usec , packet1.sensor_id , packet1.left , packet1.right , packet1.quality , packet1.front_distance_m );
mavlink_msg_omnidirectional_flow_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_omnidirectional_flow_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.sensor_id , packet1.left , packet1.right , packet1.quality , packet1.front_distance_m );
mavlink_msg_omnidirectional_flow_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_omnidirectional_flow_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_omnidirectional_flow_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.sensor_id , packet1.left , packet1.right , packet1.quality , packet1.front_distance_m );
mavlink_msg_omnidirectional_flow_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_file_transfer_start(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
mavlink_message_t msg;
@@ -4562,6 +4615,7 @@ static void mavlink_test_common(uint8_t system_id, uint8_t component_id, mavlink
mavlink_test_vision_speed_estimate(system_id, component_id, last_msg);
mavlink_test_vicon_position_estimate(system_id, component_id, last_msg);
mavlink_test_highres_imu(system_id, component_id, last_msg);
mavlink_test_omnidirectional_flow(system_id, component_id, last_msg);
mavlink_test_file_transfer_start(system_id, component_id, last_msg);
mavlink_test_file_transfer_dir_list(system_id, component_id, last_msg);
mavlink_test_file_transfer_res(system_id, component_id, last_msg);
@@ -5,7 +5,7 @@
#ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Sat Dec 1 02:07:06 2012"
#define MAVLINK_BUILD_DATE "Wed Jan 9 16:19:41 2013"
#define MAVLINK_WIRE_PROTOCOL_VERSION "1.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 254
File diff suppressed because one or more lines are too long
@@ -0,0 +1,276 @@
// MESSAGE AIRSPEEDS PACKING
#define MAVLINK_MSG_ID_AIRSPEEDS 182
typedef struct __mavlink_airspeeds_t
{
uint32_t time_boot_ms; ///< Timestamp (milliseconds since system boot)
int16_t airspeed_imu; ///< Airspeed estimate from IMU, cm/s
int16_t airspeed_pitot; ///< Pitot measured forward airpseed, cm/s
int16_t airspeed_hot_wire; ///< Hot wire anenometer measured airspeed, cm/s
int16_t airspeed_ultrasonic; ///< Ultrasonic measured airspeed, cm/s
int16_t aoa; ///< Angle of attack sensor, degrees * 10
int16_t aoy; ///< Yaw angle sensor, degrees * 10
} mavlink_airspeeds_t;
#define MAVLINK_MSG_ID_AIRSPEEDS_LEN 16
#define MAVLINK_MSG_ID_182_LEN 16
#define MAVLINK_MESSAGE_INFO_AIRSPEEDS { \
"AIRSPEEDS", \
7, \
{ { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_airspeeds_t, time_boot_ms) }, \
{ "airspeed_imu", NULL, MAVLINK_TYPE_INT16_T, 0, 4, offsetof(mavlink_airspeeds_t, airspeed_imu) }, \
{ "airspeed_pitot", NULL, MAVLINK_TYPE_INT16_T, 0, 6, offsetof(mavlink_airspeeds_t, airspeed_pitot) }, \
{ "airspeed_hot_wire", NULL, MAVLINK_TYPE_INT16_T, 0, 8, offsetof(mavlink_airspeeds_t, airspeed_hot_wire) }, \
{ "airspeed_ultrasonic", NULL, MAVLINK_TYPE_INT16_T, 0, 10, offsetof(mavlink_airspeeds_t, airspeed_ultrasonic) }, \
{ "aoa", NULL, MAVLINK_TYPE_INT16_T, 0, 12, offsetof(mavlink_airspeeds_t, aoa) }, \
{ "aoy", NULL, MAVLINK_TYPE_INT16_T, 0, 14, offsetof(mavlink_airspeeds_t, aoy) }, \
} \
}
/**
* @brief Pack a airspeeds 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 time_boot_ms Timestamp (milliseconds since system boot)
* @param airspeed_imu Airspeed estimate from IMU, cm/s
* @param airspeed_pitot Pitot measured forward airpseed, cm/s
* @param airspeed_hot_wire Hot wire anenometer measured airspeed, cm/s
* @param airspeed_ultrasonic Ultrasonic measured airspeed, cm/s
* @param aoa Angle of attack sensor, degrees * 10
* @param aoy Yaw angle sensor, degrees * 10
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_airspeeds_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint32_t time_boot_ms, int16_t airspeed_imu, int16_t airspeed_pitot, int16_t airspeed_hot_wire, int16_t airspeed_ultrasonic, int16_t aoa, int16_t aoy)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[16];
_mav_put_uint32_t(buf, 0, time_boot_ms);
_mav_put_int16_t(buf, 4, airspeed_imu);
_mav_put_int16_t(buf, 6, airspeed_pitot);
_mav_put_int16_t(buf, 8, airspeed_hot_wire);
_mav_put_int16_t(buf, 10, airspeed_ultrasonic);
_mav_put_int16_t(buf, 12, aoa);
_mav_put_int16_t(buf, 14, aoy);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 16);
#else
mavlink_airspeeds_t packet;
packet.time_boot_ms = time_boot_ms;
packet.airspeed_imu = airspeed_imu;
packet.airspeed_pitot = airspeed_pitot;
packet.airspeed_hot_wire = airspeed_hot_wire;
packet.airspeed_ultrasonic = airspeed_ultrasonic;
packet.aoa = aoa;
packet.aoy = aoy;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 16);
#endif
msg->msgid = MAVLINK_MSG_ID_AIRSPEEDS;
return mavlink_finalize_message(msg, system_id, component_id, 16, 154);
}
/**
* @brief Pack a airspeeds 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param time_boot_ms Timestamp (milliseconds since system boot)
* @param airspeed_imu Airspeed estimate from IMU, cm/s
* @param airspeed_pitot Pitot measured forward airpseed, cm/s
* @param airspeed_hot_wire Hot wire anenometer measured airspeed, cm/s
* @param airspeed_ultrasonic Ultrasonic measured airspeed, cm/s
* @param aoa Angle of attack sensor, degrees * 10
* @param aoy Yaw angle sensor, degrees * 10
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_airspeeds_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint32_t time_boot_ms,int16_t airspeed_imu,int16_t airspeed_pitot,int16_t airspeed_hot_wire,int16_t airspeed_ultrasonic,int16_t aoa,int16_t aoy)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[16];
_mav_put_uint32_t(buf, 0, time_boot_ms);
_mav_put_int16_t(buf, 4, airspeed_imu);
_mav_put_int16_t(buf, 6, airspeed_pitot);
_mav_put_int16_t(buf, 8, airspeed_hot_wire);
_mav_put_int16_t(buf, 10, airspeed_ultrasonic);
_mav_put_int16_t(buf, 12, aoa);
_mav_put_int16_t(buf, 14, aoy);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 16);
#else
mavlink_airspeeds_t packet;
packet.time_boot_ms = time_boot_ms;
packet.airspeed_imu = airspeed_imu;
packet.airspeed_pitot = airspeed_pitot;
packet.airspeed_hot_wire = airspeed_hot_wire;
packet.airspeed_ultrasonic = airspeed_ultrasonic;
packet.aoa = aoa;
packet.aoy = aoy;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 16);
#endif
msg->msgid = MAVLINK_MSG_ID_AIRSPEEDS;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 16, 154);
}
/**
* @brief Encode a airspeeds struct into a 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 airspeeds C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_airspeeds_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_airspeeds_t* airspeeds)
{
return mavlink_msg_airspeeds_pack(system_id, component_id, msg, airspeeds->time_boot_ms, airspeeds->airspeed_imu, airspeeds->airspeed_pitot, airspeeds->airspeed_hot_wire, airspeeds->airspeed_ultrasonic, airspeeds->aoa, airspeeds->aoy);
}
/**
* @brief Send a airspeeds message
* @param chan MAVLink channel to send the message
*
* @param time_boot_ms Timestamp (milliseconds since system boot)
* @param airspeed_imu Airspeed estimate from IMU, cm/s
* @param airspeed_pitot Pitot measured forward airpseed, cm/s
* @param airspeed_hot_wire Hot wire anenometer measured airspeed, cm/s
* @param airspeed_ultrasonic Ultrasonic measured airspeed, cm/s
* @param aoa Angle of attack sensor, degrees * 10
* @param aoy Yaw angle sensor, degrees * 10
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_airspeeds_send(mavlink_channel_t chan, uint32_t time_boot_ms, int16_t airspeed_imu, int16_t airspeed_pitot, int16_t airspeed_hot_wire, int16_t airspeed_ultrasonic, int16_t aoa, int16_t aoy)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[16];
_mav_put_uint32_t(buf, 0, time_boot_ms);
_mav_put_int16_t(buf, 4, airspeed_imu);
_mav_put_int16_t(buf, 6, airspeed_pitot);
_mav_put_int16_t(buf, 8, airspeed_hot_wire);
_mav_put_int16_t(buf, 10, airspeed_ultrasonic);
_mav_put_int16_t(buf, 12, aoa);
_mav_put_int16_t(buf, 14, aoy);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_AIRSPEEDS, buf, 16, 154);
#else
mavlink_airspeeds_t packet;
packet.time_boot_ms = time_boot_ms;
packet.airspeed_imu = airspeed_imu;
packet.airspeed_pitot = airspeed_pitot;
packet.airspeed_hot_wire = airspeed_hot_wire;
packet.airspeed_ultrasonic = airspeed_ultrasonic;
packet.aoa = aoa;
packet.aoy = aoy;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_AIRSPEEDS, (const char *)&packet, 16, 154);
#endif
}
#endif
// MESSAGE AIRSPEEDS UNPACKING
/**
* @brief Get field time_boot_ms from airspeeds message
*
* @return Timestamp (milliseconds since system boot)
*/
static inline uint32_t mavlink_msg_airspeeds_get_time_boot_ms(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 0);
}
/**
* @brief Get field airspeed_imu from airspeeds message
*
* @return Airspeed estimate from IMU, cm/s
*/
static inline int16_t mavlink_msg_airspeeds_get_airspeed_imu(const mavlink_message_t* msg)
{
return _MAV_RETURN_int16_t(msg, 4);
}
/**
* @brief Get field airspeed_pitot from airspeeds message
*
* @return Pitot measured forward airpseed, cm/s
*/
static inline int16_t mavlink_msg_airspeeds_get_airspeed_pitot(const mavlink_message_t* msg)
{
return _MAV_RETURN_int16_t(msg, 6);
}
/**
* @brief Get field airspeed_hot_wire from airspeeds message
*
* @return Hot wire anenometer measured airspeed, cm/s
*/
static inline int16_t mavlink_msg_airspeeds_get_airspeed_hot_wire(const mavlink_message_t* msg)
{
return _MAV_RETURN_int16_t(msg, 8);
}
/**
* @brief Get field airspeed_ultrasonic from airspeeds message
*
* @return Ultrasonic measured airspeed, cm/s
*/
static inline int16_t mavlink_msg_airspeeds_get_airspeed_ultrasonic(const mavlink_message_t* msg)
{
return _MAV_RETURN_int16_t(msg, 10);
}
/**
* @brief Get field aoa from airspeeds message
*
* @return Angle of attack sensor, degrees * 10
*/
static inline int16_t mavlink_msg_airspeeds_get_aoa(const mavlink_message_t* msg)
{
return _MAV_RETURN_int16_t(msg, 12);
}
/**
* @brief Get field aoy from airspeeds message
*
* @return Yaw angle sensor, degrees * 10
*/
static inline int16_t mavlink_msg_airspeeds_get_aoy(const mavlink_message_t* msg)
{
return _MAV_RETURN_int16_t(msg, 14);
}
/**
* @brief Decode a airspeeds message into a struct
*
* @param msg The message to decode
* @param airspeeds C-struct to decode the message contents into
*/
static inline void mavlink_msg_airspeeds_decode(const mavlink_message_t* msg, mavlink_airspeeds_t* airspeeds)
{
#if MAVLINK_NEED_BYTE_SWAP
airspeeds->time_boot_ms = mavlink_msg_airspeeds_get_time_boot_ms(msg);
airspeeds->airspeed_imu = mavlink_msg_airspeeds_get_airspeed_imu(msg);
airspeeds->airspeed_pitot = mavlink_msg_airspeeds_get_airspeed_pitot(msg);
airspeeds->airspeed_hot_wire = mavlink_msg_airspeeds_get_airspeed_hot_wire(msg);
airspeeds->airspeed_ultrasonic = mavlink_msg_airspeeds_get_airspeed_ultrasonic(msg);
airspeeds->aoa = mavlink_msg_airspeeds_get_aoa(msg);
airspeeds->aoy = mavlink_msg_airspeeds_get_aoy(msg);
#else
memcpy(airspeeds, _MAV_PAYLOAD(msg), 16);
#endif
}
@@ -0,0 +1,276 @@
// MESSAGE ALTITUDES PACKING
#define MAVLINK_MSG_ID_ALTITUDES 181
typedef struct __mavlink_altitudes_t
{
uint32_t time_boot_ms; ///< Timestamp (milliseconds since system boot)
int32_t alt_gps; ///< GPS altitude in meters, expressed as * 1000 (millimeters), above MSL
int32_t alt_imu; ///< IMU altitude above ground in meters, expressed as * 1000 (millimeters)
int32_t alt_barometric; ///< barometeric altitude above ground in meters, expressed as * 1000 (millimeters)
int32_t alt_optical_flow; ///< Optical flow altitude above ground in meters, expressed as * 1000 (millimeters)
int32_t alt_range_finder; ///< Rangefinder Altitude above ground in meters, expressed as * 1000 (millimeters)
int32_t alt_extra; ///< Extra altitude above ground in meters, expressed as * 1000 (millimeters)
} mavlink_altitudes_t;
#define MAVLINK_MSG_ID_ALTITUDES_LEN 28
#define MAVLINK_MSG_ID_181_LEN 28
#define MAVLINK_MESSAGE_INFO_ALTITUDES { \
"ALTITUDES", \
7, \
{ { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_altitudes_t, time_boot_ms) }, \
{ "alt_gps", NULL, MAVLINK_TYPE_INT32_T, 0, 4, offsetof(mavlink_altitudes_t, alt_gps) }, \
{ "alt_imu", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_altitudes_t, alt_imu) }, \
{ "alt_barometric", NULL, MAVLINK_TYPE_INT32_T, 0, 12, offsetof(mavlink_altitudes_t, alt_barometric) }, \
{ "alt_optical_flow", NULL, MAVLINK_TYPE_INT32_T, 0, 16, offsetof(mavlink_altitudes_t, alt_optical_flow) }, \
{ "alt_range_finder", NULL, MAVLINK_TYPE_INT32_T, 0, 20, offsetof(mavlink_altitudes_t, alt_range_finder) }, \
{ "alt_extra", NULL, MAVLINK_TYPE_INT32_T, 0, 24, offsetof(mavlink_altitudes_t, alt_extra) }, \
} \
}
/**
* @brief Pack a altitudes 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 time_boot_ms Timestamp (milliseconds since system boot)
* @param alt_gps GPS altitude in meters, expressed as * 1000 (millimeters), above MSL
* @param alt_imu IMU altitude above ground in meters, expressed as * 1000 (millimeters)
* @param alt_barometric barometeric altitude above ground in meters, expressed as * 1000 (millimeters)
* @param alt_optical_flow Optical flow altitude above ground in meters, expressed as * 1000 (millimeters)
* @param alt_range_finder Rangefinder Altitude above ground in meters, expressed as * 1000 (millimeters)
* @param alt_extra Extra altitude above ground in meters, expressed as * 1000 (millimeters)
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_altitudes_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint32_t time_boot_ms, int32_t alt_gps, int32_t alt_imu, int32_t alt_barometric, int32_t alt_optical_flow, int32_t alt_range_finder, int32_t alt_extra)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[28];
_mav_put_uint32_t(buf, 0, time_boot_ms);
_mav_put_int32_t(buf, 4, alt_gps);
_mav_put_int32_t(buf, 8, alt_imu);
_mav_put_int32_t(buf, 12, alt_barometric);
_mav_put_int32_t(buf, 16, alt_optical_flow);
_mav_put_int32_t(buf, 20, alt_range_finder);
_mav_put_int32_t(buf, 24, alt_extra);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
#else
mavlink_altitudes_t packet;
packet.time_boot_ms = time_boot_ms;
packet.alt_gps = alt_gps;
packet.alt_imu = alt_imu;
packet.alt_barometric = alt_barometric;
packet.alt_optical_flow = alt_optical_flow;
packet.alt_range_finder = alt_range_finder;
packet.alt_extra = alt_extra;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
#endif
msg->msgid = MAVLINK_MSG_ID_ALTITUDES;
return mavlink_finalize_message(msg, system_id, component_id, 28, 55);
}
/**
* @brief Pack a altitudes 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param time_boot_ms Timestamp (milliseconds since system boot)
* @param alt_gps GPS altitude in meters, expressed as * 1000 (millimeters), above MSL
* @param alt_imu IMU altitude above ground in meters, expressed as * 1000 (millimeters)
* @param alt_barometric barometeric altitude above ground in meters, expressed as * 1000 (millimeters)
* @param alt_optical_flow Optical flow altitude above ground in meters, expressed as * 1000 (millimeters)
* @param alt_range_finder Rangefinder Altitude above ground in meters, expressed as * 1000 (millimeters)
* @param alt_extra Extra altitude above ground in meters, expressed as * 1000 (millimeters)
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_altitudes_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint32_t time_boot_ms,int32_t alt_gps,int32_t alt_imu,int32_t alt_barometric,int32_t alt_optical_flow,int32_t alt_range_finder,int32_t alt_extra)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[28];
_mav_put_uint32_t(buf, 0, time_boot_ms);
_mav_put_int32_t(buf, 4, alt_gps);
_mav_put_int32_t(buf, 8, alt_imu);
_mav_put_int32_t(buf, 12, alt_barometric);
_mav_put_int32_t(buf, 16, alt_optical_flow);
_mav_put_int32_t(buf, 20, alt_range_finder);
_mav_put_int32_t(buf, 24, alt_extra);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
#else
mavlink_altitudes_t packet;
packet.time_boot_ms = time_boot_ms;
packet.alt_gps = alt_gps;
packet.alt_imu = alt_imu;
packet.alt_barometric = alt_barometric;
packet.alt_optical_flow = alt_optical_flow;
packet.alt_range_finder = alt_range_finder;
packet.alt_extra = alt_extra;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
#endif
msg->msgid = MAVLINK_MSG_ID_ALTITUDES;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 28, 55);
}
/**
* @brief Encode a altitudes struct into a 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 altitudes C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_altitudes_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_altitudes_t* altitudes)
{
return mavlink_msg_altitudes_pack(system_id, component_id, msg, altitudes->time_boot_ms, altitudes->alt_gps, altitudes->alt_imu, altitudes->alt_barometric, altitudes->alt_optical_flow, altitudes->alt_range_finder, altitudes->alt_extra);
}
/**
* @brief Send a altitudes message
* @param chan MAVLink channel to send the message
*
* @param time_boot_ms Timestamp (milliseconds since system boot)
* @param alt_gps GPS altitude in meters, expressed as * 1000 (millimeters), above MSL
* @param alt_imu IMU altitude above ground in meters, expressed as * 1000 (millimeters)
* @param alt_barometric barometeric altitude above ground in meters, expressed as * 1000 (millimeters)
* @param alt_optical_flow Optical flow altitude above ground in meters, expressed as * 1000 (millimeters)
* @param alt_range_finder Rangefinder Altitude above ground in meters, expressed as * 1000 (millimeters)
* @param alt_extra Extra altitude above ground in meters, expressed as * 1000 (millimeters)
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_altitudes_send(mavlink_channel_t chan, uint32_t time_boot_ms, int32_t alt_gps, int32_t alt_imu, int32_t alt_barometric, int32_t alt_optical_flow, int32_t alt_range_finder, int32_t alt_extra)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[28];
_mav_put_uint32_t(buf, 0, time_boot_ms);
_mav_put_int32_t(buf, 4, alt_gps);
_mav_put_int32_t(buf, 8, alt_imu);
_mav_put_int32_t(buf, 12, alt_barometric);
_mav_put_int32_t(buf, 16, alt_optical_flow);
_mav_put_int32_t(buf, 20, alt_range_finder);
_mav_put_int32_t(buf, 24, alt_extra);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ALTITUDES, buf, 28, 55);
#else
mavlink_altitudes_t packet;
packet.time_boot_ms = time_boot_ms;
packet.alt_gps = alt_gps;
packet.alt_imu = alt_imu;
packet.alt_barometric = alt_barometric;
packet.alt_optical_flow = alt_optical_flow;
packet.alt_range_finder = alt_range_finder;
packet.alt_extra = alt_extra;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ALTITUDES, (const char *)&packet, 28, 55);
#endif
}
#endif
// MESSAGE ALTITUDES UNPACKING
/**
* @brief Get field time_boot_ms from altitudes message
*
* @return Timestamp (milliseconds since system boot)
*/
static inline uint32_t mavlink_msg_altitudes_get_time_boot_ms(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 0);
}
/**
* @brief Get field alt_gps from altitudes message
*
* @return GPS altitude in meters, expressed as * 1000 (millimeters), above MSL
*/
static inline int32_t mavlink_msg_altitudes_get_alt_gps(const mavlink_message_t* msg)
{
return _MAV_RETURN_int32_t(msg, 4);
}
/**
* @brief Get field alt_imu from altitudes message
*
* @return IMU altitude above ground in meters, expressed as * 1000 (millimeters)
*/
static inline int32_t mavlink_msg_altitudes_get_alt_imu(const mavlink_message_t* msg)
{
return _MAV_RETURN_int32_t(msg, 8);
}
/**
* @brief Get field alt_barometric from altitudes message
*
* @return barometeric altitude above ground in meters, expressed as * 1000 (millimeters)
*/
static inline int32_t mavlink_msg_altitudes_get_alt_barometric(const mavlink_message_t* msg)
{
return _MAV_RETURN_int32_t(msg, 12);
}
/**
* @brief Get field alt_optical_flow from altitudes message
*
* @return Optical flow altitude above ground in meters, expressed as * 1000 (millimeters)
*/
static inline int32_t mavlink_msg_altitudes_get_alt_optical_flow(const mavlink_message_t* msg)
{
return _MAV_RETURN_int32_t(msg, 16);
}
/**
* @brief Get field alt_range_finder from altitudes message
*
* @return Rangefinder Altitude above ground in meters, expressed as * 1000 (millimeters)
*/
static inline int32_t mavlink_msg_altitudes_get_alt_range_finder(const mavlink_message_t* msg)
{
return _MAV_RETURN_int32_t(msg, 20);
}
/**
* @brief Get field alt_extra from altitudes message
*
* @return Extra altitude above ground in meters, expressed as * 1000 (millimeters)
*/
static inline int32_t mavlink_msg_altitudes_get_alt_extra(const mavlink_message_t* msg)
{
return _MAV_RETURN_int32_t(msg, 24);
}
/**
* @brief Decode a altitudes message into a struct
*
* @param msg The message to decode
* @param altitudes C-struct to decode the message contents into
*/
static inline void mavlink_msg_altitudes_decode(const mavlink_message_t* msg, mavlink_altitudes_t* altitudes)
{
#if MAVLINK_NEED_BYTE_SWAP
altitudes->time_boot_ms = mavlink_msg_altitudes_get_time_boot_ms(msg);
altitudes->alt_gps = mavlink_msg_altitudes_get_alt_gps(msg);
altitudes->alt_imu = mavlink_msg_altitudes_get_alt_imu(msg);
altitudes->alt_barometric = mavlink_msg_altitudes_get_alt_barometric(msg);
altitudes->alt_optical_flow = mavlink_msg_altitudes_get_alt_optical_flow(msg);
altitudes->alt_range_finder = mavlink_msg_altitudes_get_alt_range_finder(msg);
altitudes->alt_extra = mavlink_msg_altitudes_get_alt_extra(msg);
#else
memcpy(altitudes, _MAV_PAYLOAD(msg), 28);
#endif
}
@@ -0,0 +1,270 @@
// MESSAGE FLEXIFUNCTION_BUFFER_FUNCTION PACKING
#define MAVLINK_MSG_ID_FLEXIFUNCTION_BUFFER_FUNCTION 152
typedef struct __mavlink_flexifunction_buffer_function_t
{
uint16_t func_index; ///< Function index
uint16_t func_count; ///< Total count of functions
uint16_t data_address; ///< Address in the flexifunction data, Set to 0xFFFF to use address in target memory
uint16_t data_size; ///< Size of the
uint8_t target_system; ///< System ID
uint8_t target_component; ///< Component ID
int8_t data[48]; ///< Settings data
} mavlink_flexifunction_buffer_function_t;
#define MAVLINK_MSG_ID_FLEXIFUNCTION_BUFFER_FUNCTION_LEN 58
#define MAVLINK_MSG_ID_152_LEN 58
#define MAVLINK_MSG_FLEXIFUNCTION_BUFFER_FUNCTION_FIELD_DATA_LEN 48
#define MAVLINK_MESSAGE_INFO_FLEXIFUNCTION_BUFFER_FUNCTION { \
"FLEXIFUNCTION_BUFFER_FUNCTION", \
7, \
{ { "func_index", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_flexifunction_buffer_function_t, func_index) }, \
{ "func_count", NULL, MAVLINK_TYPE_UINT16_T, 0, 2, offsetof(mavlink_flexifunction_buffer_function_t, func_count) }, \
{ "data_address", NULL, MAVLINK_TYPE_UINT16_T, 0, 4, offsetof(mavlink_flexifunction_buffer_function_t, data_address) }, \
{ "data_size", NULL, MAVLINK_TYPE_UINT16_T, 0, 6, offsetof(mavlink_flexifunction_buffer_function_t, data_size) }, \
{ "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_flexifunction_buffer_function_t, target_system) }, \
{ "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 9, offsetof(mavlink_flexifunction_buffer_function_t, target_component) }, \
{ "data", NULL, MAVLINK_TYPE_INT8_T, 48, 10, offsetof(mavlink_flexifunction_buffer_function_t, data) }, \
} \
}
/**
* @brief Pack a flexifunction_buffer_function 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 target_system System ID
* @param target_component Component ID
* @param func_index Function index
* @param func_count Total count of functions
* @param data_address Address in the flexifunction data, Set to 0xFFFF to use address in target memory
* @param data_size Size of the
* @param data Settings data
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_buffer_function_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint8_t target_system, uint8_t target_component, uint16_t func_index, uint16_t func_count, uint16_t data_address, uint16_t data_size, const int8_t *data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[58];
_mav_put_uint16_t(buf, 0, func_index);
_mav_put_uint16_t(buf, 2, func_count);
_mav_put_uint16_t(buf, 4, data_address);
_mav_put_uint16_t(buf, 6, data_size);
_mav_put_uint8_t(buf, 8, target_system);
_mav_put_uint8_t(buf, 9, target_component);
_mav_put_int8_t_array(buf, 10, data, 48);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 58);
#else
mavlink_flexifunction_buffer_function_t packet;
packet.func_index = func_index;
packet.func_count = func_count;
packet.data_address = data_address;
packet.data_size = data_size;
packet.target_system = target_system;
packet.target_component = target_component;
mav_array_memcpy(packet.data, data, sizeof(int8_t)*48);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 58);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_BUFFER_FUNCTION;
return mavlink_finalize_message(msg, system_id, component_id, 58, 101);
}
/**
* @brief Pack a flexifunction_buffer_function 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param target_system System ID
* @param target_component Component ID
* @param func_index Function index
* @param func_count Total count of functions
* @param data_address Address in the flexifunction data, Set to 0xFFFF to use address in target memory
* @param data_size Size of the
* @param data Settings data
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_buffer_function_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint8_t target_system,uint8_t target_component,uint16_t func_index,uint16_t func_count,uint16_t data_address,uint16_t data_size,const int8_t *data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[58];
_mav_put_uint16_t(buf, 0, func_index);
_mav_put_uint16_t(buf, 2, func_count);
_mav_put_uint16_t(buf, 4, data_address);
_mav_put_uint16_t(buf, 6, data_size);
_mav_put_uint8_t(buf, 8, target_system);
_mav_put_uint8_t(buf, 9, target_component);
_mav_put_int8_t_array(buf, 10, data, 48);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 58);
#else
mavlink_flexifunction_buffer_function_t packet;
packet.func_index = func_index;
packet.func_count = func_count;
packet.data_address = data_address;
packet.data_size = data_size;
packet.target_system = target_system;
packet.target_component = target_component;
mav_array_memcpy(packet.data, data, sizeof(int8_t)*48);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 58);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_BUFFER_FUNCTION;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 58, 101);
}
/**
* @brief Encode a flexifunction_buffer_function struct into a 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 flexifunction_buffer_function C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_flexifunction_buffer_function_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_flexifunction_buffer_function_t* flexifunction_buffer_function)
{
return mavlink_msg_flexifunction_buffer_function_pack(system_id, component_id, msg, flexifunction_buffer_function->target_system, flexifunction_buffer_function->target_component, flexifunction_buffer_function->func_index, flexifunction_buffer_function->func_count, flexifunction_buffer_function->data_address, flexifunction_buffer_function->data_size, flexifunction_buffer_function->data);
}
/**
* @brief Send a flexifunction_buffer_function message
* @param chan MAVLink channel to send the message
*
* @param target_system System ID
* @param target_component Component ID
* @param func_index Function index
* @param func_count Total count of functions
* @param data_address Address in the flexifunction data, Set to 0xFFFF to use address in target memory
* @param data_size Size of the
* @param data Settings data
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_flexifunction_buffer_function_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, uint16_t func_index, uint16_t func_count, uint16_t data_address, uint16_t data_size, const int8_t *data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[58];
_mav_put_uint16_t(buf, 0, func_index);
_mav_put_uint16_t(buf, 2, func_count);
_mav_put_uint16_t(buf, 4, data_address);
_mav_put_uint16_t(buf, 6, data_size);
_mav_put_uint8_t(buf, 8, target_system);
_mav_put_uint8_t(buf, 9, target_component);
_mav_put_int8_t_array(buf, 10, data, 48);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_BUFFER_FUNCTION, buf, 58, 101);
#else
mavlink_flexifunction_buffer_function_t packet;
packet.func_index = func_index;
packet.func_count = func_count;
packet.data_address = data_address;
packet.data_size = data_size;
packet.target_system = target_system;
packet.target_component = target_component;
mav_array_memcpy(packet.data, data, sizeof(int8_t)*48);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_BUFFER_FUNCTION, (const char *)&packet, 58, 101);
#endif
}
#endif
// MESSAGE FLEXIFUNCTION_BUFFER_FUNCTION UNPACKING
/**
* @brief Get field target_system from flexifunction_buffer_function message
*
* @return System ID
*/
static inline uint8_t mavlink_msg_flexifunction_buffer_function_get_target_system(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 8);
}
/**
* @brief Get field target_component from flexifunction_buffer_function message
*
* @return Component ID
*/
static inline uint8_t mavlink_msg_flexifunction_buffer_function_get_target_component(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 9);
}
/**
* @brief Get field func_index from flexifunction_buffer_function message
*
* @return Function index
*/
static inline uint16_t mavlink_msg_flexifunction_buffer_function_get_func_index(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 0);
}
/**
* @brief Get field func_count from flexifunction_buffer_function message
*
* @return Total count of functions
*/
static inline uint16_t mavlink_msg_flexifunction_buffer_function_get_func_count(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 2);
}
/**
* @brief Get field data_address from flexifunction_buffer_function message
*
* @return Address in the flexifunction data, Set to 0xFFFF to use address in target memory
*/
static inline uint16_t mavlink_msg_flexifunction_buffer_function_get_data_address(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 4);
}
/**
* @brief Get field data_size from flexifunction_buffer_function message
*
* @return Size of the
*/
static inline uint16_t mavlink_msg_flexifunction_buffer_function_get_data_size(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 6);
}
/**
* @brief Get field data from flexifunction_buffer_function message
*
* @return Settings data
*/
static inline uint16_t mavlink_msg_flexifunction_buffer_function_get_data(const mavlink_message_t* msg, int8_t *data)
{
return _MAV_RETURN_int8_t_array(msg, data, 48, 10);
}
/**
* @brief Decode a flexifunction_buffer_function message into a struct
*
* @param msg The message to decode
* @param flexifunction_buffer_function C-struct to decode the message contents into
*/
static inline void mavlink_msg_flexifunction_buffer_function_decode(const mavlink_message_t* msg, mavlink_flexifunction_buffer_function_t* flexifunction_buffer_function)
{
#if MAVLINK_NEED_BYTE_SWAP
flexifunction_buffer_function->func_index = mavlink_msg_flexifunction_buffer_function_get_func_index(msg);
flexifunction_buffer_function->func_count = mavlink_msg_flexifunction_buffer_function_get_func_count(msg);
flexifunction_buffer_function->data_address = mavlink_msg_flexifunction_buffer_function_get_data_address(msg);
flexifunction_buffer_function->data_size = mavlink_msg_flexifunction_buffer_function_get_data_size(msg);
flexifunction_buffer_function->target_system = mavlink_msg_flexifunction_buffer_function_get_target_system(msg);
flexifunction_buffer_function->target_component = mavlink_msg_flexifunction_buffer_function_get_target_component(msg);
mavlink_msg_flexifunction_buffer_function_get_data(msg, flexifunction_buffer_function->data);
#else
memcpy(flexifunction_buffer_function, _MAV_PAYLOAD(msg), 58);
#endif
}
@@ -0,0 +1,210 @@
// MESSAGE FLEXIFUNCTION_BUFFER_FUNCTION_ACK PACKING
#define MAVLINK_MSG_ID_FLEXIFUNCTION_BUFFER_FUNCTION_ACK 153
typedef struct __mavlink_flexifunction_buffer_function_ack_t
{
uint16_t func_index; ///< Function index
uint16_t result; ///< result of acknowledge, 0=fail, 1=good
uint8_t target_system; ///< System ID
uint8_t target_component; ///< Component ID
} mavlink_flexifunction_buffer_function_ack_t;
#define MAVLINK_MSG_ID_FLEXIFUNCTION_BUFFER_FUNCTION_ACK_LEN 6
#define MAVLINK_MSG_ID_153_LEN 6
#define MAVLINK_MESSAGE_INFO_FLEXIFUNCTION_BUFFER_FUNCTION_ACK { \
"FLEXIFUNCTION_BUFFER_FUNCTION_ACK", \
4, \
{ { "func_index", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_flexifunction_buffer_function_ack_t, func_index) }, \
{ "result", NULL, MAVLINK_TYPE_UINT16_T, 0, 2, offsetof(mavlink_flexifunction_buffer_function_ack_t, result) }, \
{ "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_flexifunction_buffer_function_ack_t, target_system) }, \
{ "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 5, offsetof(mavlink_flexifunction_buffer_function_ack_t, target_component) }, \
} \
}
/**
* @brief Pack a flexifunction_buffer_function_ack 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 target_system System ID
* @param target_component Component ID
* @param func_index Function index
* @param result result of acknowledge, 0=fail, 1=good
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_buffer_function_ack_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint8_t target_system, uint8_t target_component, uint16_t func_index, uint16_t result)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[6];
_mav_put_uint16_t(buf, 0, func_index);
_mav_put_uint16_t(buf, 2, result);
_mav_put_uint8_t(buf, 4, target_system);
_mav_put_uint8_t(buf, 5, target_component);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
#else
mavlink_flexifunction_buffer_function_ack_t packet;
packet.func_index = func_index;
packet.result = result;
packet.target_system = target_system;
packet.target_component = target_component;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_BUFFER_FUNCTION_ACK;
return mavlink_finalize_message(msg, system_id, component_id, 6, 109);
}
/**
* @brief Pack a flexifunction_buffer_function_ack 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param target_system System ID
* @param target_component Component ID
* @param func_index Function index
* @param result result of acknowledge, 0=fail, 1=good
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_buffer_function_ack_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint8_t target_system,uint8_t target_component,uint16_t func_index,uint16_t result)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[6];
_mav_put_uint16_t(buf, 0, func_index);
_mav_put_uint16_t(buf, 2, result);
_mav_put_uint8_t(buf, 4, target_system);
_mav_put_uint8_t(buf, 5, target_component);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
#else
mavlink_flexifunction_buffer_function_ack_t packet;
packet.func_index = func_index;
packet.result = result;
packet.target_system = target_system;
packet.target_component = target_component;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_BUFFER_FUNCTION_ACK;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 6, 109);
}
/**
* @brief Encode a flexifunction_buffer_function_ack struct into a 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 flexifunction_buffer_function_ack C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_flexifunction_buffer_function_ack_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_flexifunction_buffer_function_ack_t* flexifunction_buffer_function_ack)
{
return mavlink_msg_flexifunction_buffer_function_ack_pack(system_id, component_id, msg, flexifunction_buffer_function_ack->target_system, flexifunction_buffer_function_ack->target_component, flexifunction_buffer_function_ack->func_index, flexifunction_buffer_function_ack->result);
}
/**
* @brief Send a flexifunction_buffer_function_ack message
* @param chan MAVLink channel to send the message
*
* @param target_system System ID
* @param target_component Component ID
* @param func_index Function index
* @param result result of acknowledge, 0=fail, 1=good
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_flexifunction_buffer_function_ack_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, uint16_t func_index, uint16_t result)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[6];
_mav_put_uint16_t(buf, 0, func_index);
_mav_put_uint16_t(buf, 2, result);
_mav_put_uint8_t(buf, 4, target_system);
_mav_put_uint8_t(buf, 5, target_component);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_BUFFER_FUNCTION_ACK, buf, 6, 109);
#else
mavlink_flexifunction_buffer_function_ack_t packet;
packet.func_index = func_index;
packet.result = result;
packet.target_system = target_system;
packet.target_component = target_component;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_BUFFER_FUNCTION_ACK, (const char *)&packet, 6, 109);
#endif
}
#endif
// MESSAGE FLEXIFUNCTION_BUFFER_FUNCTION_ACK UNPACKING
/**
* @brief Get field target_system from flexifunction_buffer_function_ack message
*
* @return System ID
*/
static inline uint8_t mavlink_msg_flexifunction_buffer_function_ack_get_target_system(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 4);
}
/**
* @brief Get field target_component from flexifunction_buffer_function_ack message
*
* @return Component ID
*/
static inline uint8_t mavlink_msg_flexifunction_buffer_function_ack_get_target_component(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 5);
}
/**
* @brief Get field func_index from flexifunction_buffer_function_ack message
*
* @return Function index
*/
static inline uint16_t mavlink_msg_flexifunction_buffer_function_ack_get_func_index(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 0);
}
/**
* @brief Get field result from flexifunction_buffer_function_ack message
*
* @return result of acknowledge, 0=fail, 1=good
*/
static inline uint16_t mavlink_msg_flexifunction_buffer_function_ack_get_result(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 2);
}
/**
* @brief Decode a flexifunction_buffer_function_ack message into a struct
*
* @param msg The message to decode
* @param flexifunction_buffer_function_ack C-struct to decode the message contents into
*/
static inline void mavlink_msg_flexifunction_buffer_function_ack_decode(const mavlink_message_t* msg, mavlink_flexifunction_buffer_function_ack_t* flexifunction_buffer_function_ack)
{
#if MAVLINK_NEED_BYTE_SWAP
flexifunction_buffer_function_ack->func_index = mavlink_msg_flexifunction_buffer_function_ack_get_func_index(msg);
flexifunction_buffer_function_ack->result = mavlink_msg_flexifunction_buffer_function_ack_get_result(msg);
flexifunction_buffer_function_ack->target_system = mavlink_msg_flexifunction_buffer_function_ack_get_target_system(msg);
flexifunction_buffer_function_ack->target_component = mavlink_msg_flexifunction_buffer_function_ack_get_target_component(msg);
#else
memcpy(flexifunction_buffer_function_ack, _MAV_PAYLOAD(msg), 6);
#endif
}
@@ -0,0 +1,188 @@
// MESSAGE FLEXIFUNCTION_COMMAND PACKING
#define MAVLINK_MSG_ID_FLEXIFUNCTION_COMMAND 157
typedef struct __mavlink_flexifunction_command_t
{
uint8_t target_system; ///< System ID
uint8_t target_component; ///< Component ID
uint8_t command_type; ///< Flexifunction command type
} mavlink_flexifunction_command_t;
#define MAVLINK_MSG_ID_FLEXIFUNCTION_COMMAND_LEN 3
#define MAVLINK_MSG_ID_157_LEN 3
#define MAVLINK_MESSAGE_INFO_FLEXIFUNCTION_COMMAND { \
"FLEXIFUNCTION_COMMAND", \
3, \
{ { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_flexifunction_command_t, target_system) }, \
{ "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_flexifunction_command_t, target_component) }, \
{ "command_type", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_flexifunction_command_t, command_type) }, \
} \
}
/**
* @brief Pack a flexifunction_command 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 target_system System ID
* @param target_component Component ID
* @param command_type Flexifunction command type
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_command_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint8_t target_system, uint8_t target_component, uint8_t command_type)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[3];
_mav_put_uint8_t(buf, 0, target_system);
_mav_put_uint8_t(buf, 1, target_component);
_mav_put_uint8_t(buf, 2, command_type);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
#else
mavlink_flexifunction_command_t packet;
packet.target_system = target_system;
packet.target_component = target_component;
packet.command_type = command_type;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_COMMAND;
return mavlink_finalize_message(msg, system_id, component_id, 3, 133);
}
/**
* @brief Pack a flexifunction_command 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param target_system System ID
* @param target_component Component ID
* @param command_type Flexifunction command type
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_command_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint8_t target_system,uint8_t target_component,uint8_t command_type)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[3];
_mav_put_uint8_t(buf, 0, target_system);
_mav_put_uint8_t(buf, 1, target_component);
_mav_put_uint8_t(buf, 2, command_type);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
#else
mavlink_flexifunction_command_t packet;
packet.target_system = target_system;
packet.target_component = target_component;
packet.command_type = command_type;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_COMMAND;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 3, 133);
}
/**
* @brief Encode a flexifunction_command struct into a 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 flexifunction_command C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_flexifunction_command_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_flexifunction_command_t* flexifunction_command)
{
return mavlink_msg_flexifunction_command_pack(system_id, component_id, msg, flexifunction_command->target_system, flexifunction_command->target_component, flexifunction_command->command_type);
}
/**
* @brief Send a flexifunction_command message
* @param chan MAVLink channel to send the message
*
* @param target_system System ID
* @param target_component Component ID
* @param command_type Flexifunction command type
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_flexifunction_command_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, uint8_t command_type)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[3];
_mav_put_uint8_t(buf, 0, target_system);
_mav_put_uint8_t(buf, 1, target_component);
_mav_put_uint8_t(buf, 2, command_type);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_COMMAND, buf, 3, 133);
#else
mavlink_flexifunction_command_t packet;
packet.target_system = target_system;
packet.target_component = target_component;
packet.command_type = command_type;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_COMMAND, (const char *)&packet, 3, 133);
#endif
}
#endif
// MESSAGE FLEXIFUNCTION_COMMAND UNPACKING
/**
* @brief Get field target_system from flexifunction_command message
*
* @return System ID
*/
static inline uint8_t mavlink_msg_flexifunction_command_get_target_system(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 0);
}
/**
* @brief Get field target_component from flexifunction_command message
*
* @return Component ID
*/
static inline uint8_t mavlink_msg_flexifunction_command_get_target_component(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 1);
}
/**
* @brief Get field command_type from flexifunction_command message
*
* @return Flexifunction command type
*/
static inline uint8_t mavlink_msg_flexifunction_command_get_command_type(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 2);
}
/**
* @brief Decode a flexifunction_command message into a struct
*
* @param msg The message to decode
* @param flexifunction_command C-struct to decode the message contents into
*/
static inline void mavlink_msg_flexifunction_command_decode(const mavlink_message_t* msg, mavlink_flexifunction_command_t* flexifunction_command)
{
#if MAVLINK_NEED_BYTE_SWAP
flexifunction_command->target_system = mavlink_msg_flexifunction_command_get_target_system(msg);
flexifunction_command->target_component = mavlink_msg_flexifunction_command_get_target_component(msg);
flexifunction_command->command_type = mavlink_msg_flexifunction_command_get_command_type(msg);
#else
memcpy(flexifunction_command, _MAV_PAYLOAD(msg), 3);
#endif
}
@@ -0,0 +1,166 @@
// MESSAGE FLEXIFUNCTION_COMMAND_ACK PACKING
#define MAVLINK_MSG_ID_FLEXIFUNCTION_COMMAND_ACK 158
typedef struct __mavlink_flexifunction_command_ack_t
{
uint16_t command_type; ///< Command acknowledged
uint16_t result; ///< result of acknowledge
} mavlink_flexifunction_command_ack_t;
#define MAVLINK_MSG_ID_FLEXIFUNCTION_COMMAND_ACK_LEN 4
#define MAVLINK_MSG_ID_158_LEN 4
#define MAVLINK_MESSAGE_INFO_FLEXIFUNCTION_COMMAND_ACK { \
"FLEXIFUNCTION_COMMAND_ACK", \
2, \
{ { "command_type", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_flexifunction_command_ack_t, command_type) }, \
{ "result", NULL, MAVLINK_TYPE_UINT16_T, 0, 2, offsetof(mavlink_flexifunction_command_ack_t, result) }, \
} \
}
/**
* @brief Pack a flexifunction_command_ack 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 command_type Command acknowledged
* @param result result of acknowledge
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_command_ack_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint16_t command_type, uint16_t result)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[4];
_mav_put_uint16_t(buf, 0, command_type);
_mav_put_uint16_t(buf, 2, result);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
#else
mavlink_flexifunction_command_ack_t packet;
packet.command_type = command_type;
packet.result = result;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_COMMAND_ACK;
return mavlink_finalize_message(msg, system_id, component_id, 4, 208);
}
/**
* @brief Pack a flexifunction_command_ack 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param command_type Command acknowledged
* @param result result of acknowledge
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_command_ack_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint16_t command_type,uint16_t result)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[4];
_mav_put_uint16_t(buf, 0, command_type);
_mav_put_uint16_t(buf, 2, result);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
#else
mavlink_flexifunction_command_ack_t packet;
packet.command_type = command_type;
packet.result = result;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_COMMAND_ACK;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 4, 208);
}
/**
* @brief Encode a flexifunction_command_ack struct into a 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 flexifunction_command_ack C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_flexifunction_command_ack_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_flexifunction_command_ack_t* flexifunction_command_ack)
{
return mavlink_msg_flexifunction_command_ack_pack(system_id, component_id, msg, flexifunction_command_ack->command_type, flexifunction_command_ack->result);
}
/**
* @brief Send a flexifunction_command_ack message
* @param chan MAVLink channel to send the message
*
* @param command_type Command acknowledged
* @param result result of acknowledge
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_flexifunction_command_ack_send(mavlink_channel_t chan, uint16_t command_type, uint16_t result)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[4];
_mav_put_uint16_t(buf, 0, command_type);
_mav_put_uint16_t(buf, 2, result);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_COMMAND_ACK, buf, 4, 208);
#else
mavlink_flexifunction_command_ack_t packet;
packet.command_type = command_type;
packet.result = result;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_COMMAND_ACK, (const char *)&packet, 4, 208);
#endif
}
#endif
// MESSAGE FLEXIFUNCTION_COMMAND_ACK UNPACKING
/**
* @brief Get field command_type from flexifunction_command_ack message
*
* @return Command acknowledged
*/
static inline uint16_t mavlink_msg_flexifunction_command_ack_get_command_type(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 0);
}
/**
* @brief Get field result from flexifunction_command_ack message
*
* @return result of acknowledge
*/
static inline uint16_t mavlink_msg_flexifunction_command_ack_get_result(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 2);
}
/**
* @brief Decode a flexifunction_command_ack message into a struct
*
* @param msg The message to decode
* @param flexifunction_command_ack C-struct to decode the message contents into
*/
static inline void mavlink_msg_flexifunction_command_ack_decode(const mavlink_message_t* msg, mavlink_flexifunction_command_ack_t* flexifunction_command_ack)
{
#if MAVLINK_NEED_BYTE_SWAP
flexifunction_command_ack->command_type = mavlink_msg_flexifunction_command_ack_get_command_type(msg);
flexifunction_command_ack->result = mavlink_msg_flexifunction_command_ack_get_result(msg);
#else
memcpy(flexifunction_command_ack, _MAV_PAYLOAD(msg), 4);
#endif
}
@@ -0,0 +1,248 @@
// MESSAGE FLEXIFUNCTION_DIRECTORY PACKING
#define MAVLINK_MSG_ID_FLEXIFUNCTION_DIRECTORY 155
typedef struct __mavlink_flexifunction_directory_t
{
uint8_t target_system; ///< System ID
uint8_t target_component; ///< Component ID
uint8_t directory_type; ///< 0=inputs, 1=outputs
uint8_t start_index; ///< index of first directory entry to write
uint8_t count; ///< count of directory entries to write
int8_t directory_data[48]; ///< Settings data
} mavlink_flexifunction_directory_t;
#define MAVLINK_MSG_ID_FLEXIFUNCTION_DIRECTORY_LEN 53
#define MAVLINK_MSG_ID_155_LEN 53
#define MAVLINK_MSG_FLEXIFUNCTION_DIRECTORY_FIELD_DIRECTORY_DATA_LEN 48
#define MAVLINK_MESSAGE_INFO_FLEXIFUNCTION_DIRECTORY { \
"FLEXIFUNCTION_DIRECTORY", \
6, \
{ { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_flexifunction_directory_t, target_system) }, \
{ "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_flexifunction_directory_t, target_component) }, \
{ "directory_type", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_flexifunction_directory_t, directory_type) }, \
{ "start_index", NULL, MAVLINK_TYPE_UINT8_T, 0, 3, offsetof(mavlink_flexifunction_directory_t, start_index) }, \
{ "count", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_flexifunction_directory_t, count) }, \
{ "directory_data", NULL, MAVLINK_TYPE_INT8_T, 48, 5, offsetof(mavlink_flexifunction_directory_t, directory_data) }, \
} \
}
/**
* @brief Pack a flexifunction_directory 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 target_system System ID
* @param target_component Component ID
* @param directory_type 0=inputs, 1=outputs
* @param start_index index of first directory entry to write
* @param count count of directory entries to write
* @param directory_data Settings data
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_directory_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint8_t target_system, uint8_t target_component, uint8_t directory_type, uint8_t start_index, uint8_t count, const int8_t *directory_data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[53];
_mav_put_uint8_t(buf, 0, target_system);
_mav_put_uint8_t(buf, 1, target_component);
_mav_put_uint8_t(buf, 2, directory_type);
_mav_put_uint8_t(buf, 3, start_index);
_mav_put_uint8_t(buf, 4, count);
_mav_put_int8_t_array(buf, 5, directory_data, 48);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 53);
#else
mavlink_flexifunction_directory_t packet;
packet.target_system = target_system;
packet.target_component = target_component;
packet.directory_type = directory_type;
packet.start_index = start_index;
packet.count = count;
mav_array_memcpy(packet.directory_data, directory_data, sizeof(int8_t)*48);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 53);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_DIRECTORY;
return mavlink_finalize_message(msg, system_id, component_id, 53, 12);
}
/**
* @brief Pack a flexifunction_directory 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param target_system System ID
* @param target_component Component ID
* @param directory_type 0=inputs, 1=outputs
* @param start_index index of first directory entry to write
* @param count count of directory entries to write
* @param directory_data Settings data
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_directory_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint8_t target_system,uint8_t target_component,uint8_t directory_type,uint8_t start_index,uint8_t count,const int8_t *directory_data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[53];
_mav_put_uint8_t(buf, 0, target_system);
_mav_put_uint8_t(buf, 1, target_component);
_mav_put_uint8_t(buf, 2, directory_type);
_mav_put_uint8_t(buf, 3, start_index);
_mav_put_uint8_t(buf, 4, count);
_mav_put_int8_t_array(buf, 5, directory_data, 48);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 53);
#else
mavlink_flexifunction_directory_t packet;
packet.target_system = target_system;
packet.target_component = target_component;
packet.directory_type = directory_type;
packet.start_index = start_index;
packet.count = count;
mav_array_memcpy(packet.directory_data, directory_data, sizeof(int8_t)*48);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 53);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_DIRECTORY;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 53, 12);
}
/**
* @brief Encode a flexifunction_directory struct into a 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 flexifunction_directory C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_flexifunction_directory_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_flexifunction_directory_t* flexifunction_directory)
{
return mavlink_msg_flexifunction_directory_pack(system_id, component_id, msg, flexifunction_directory->target_system, flexifunction_directory->target_component, flexifunction_directory->directory_type, flexifunction_directory->start_index, flexifunction_directory->count, flexifunction_directory->directory_data);
}
/**
* @brief Send a flexifunction_directory message
* @param chan MAVLink channel to send the message
*
* @param target_system System ID
* @param target_component Component ID
* @param directory_type 0=inputs, 1=outputs
* @param start_index index of first directory entry to write
* @param count count of directory entries to write
* @param directory_data Settings data
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_flexifunction_directory_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, uint8_t directory_type, uint8_t start_index, uint8_t count, const int8_t *directory_data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[53];
_mav_put_uint8_t(buf, 0, target_system);
_mav_put_uint8_t(buf, 1, target_component);
_mav_put_uint8_t(buf, 2, directory_type);
_mav_put_uint8_t(buf, 3, start_index);
_mav_put_uint8_t(buf, 4, count);
_mav_put_int8_t_array(buf, 5, directory_data, 48);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_DIRECTORY, buf, 53, 12);
#else
mavlink_flexifunction_directory_t packet;
packet.target_system = target_system;
packet.target_component = target_component;
packet.directory_type = directory_type;
packet.start_index = start_index;
packet.count = count;
mav_array_memcpy(packet.directory_data, directory_data, sizeof(int8_t)*48);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_DIRECTORY, (const char *)&packet, 53, 12);
#endif
}
#endif
// MESSAGE FLEXIFUNCTION_DIRECTORY UNPACKING
/**
* @brief Get field target_system from flexifunction_directory message
*
* @return System ID
*/
static inline uint8_t mavlink_msg_flexifunction_directory_get_target_system(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 0);
}
/**
* @brief Get field target_component from flexifunction_directory message
*
* @return Component ID
*/
static inline uint8_t mavlink_msg_flexifunction_directory_get_target_component(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 1);
}
/**
* @brief Get field directory_type from flexifunction_directory message
*
* @return 0=inputs, 1=outputs
*/
static inline uint8_t mavlink_msg_flexifunction_directory_get_directory_type(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 2);
}
/**
* @brief Get field start_index from flexifunction_directory message
*
* @return index of first directory entry to write
*/
static inline uint8_t mavlink_msg_flexifunction_directory_get_start_index(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 3);
}
/**
* @brief Get field count from flexifunction_directory message
*
* @return count of directory entries to write
*/
static inline uint8_t mavlink_msg_flexifunction_directory_get_count(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 4);
}
/**
* @brief Get field directory_data from flexifunction_directory message
*
* @return Settings data
*/
static inline uint16_t mavlink_msg_flexifunction_directory_get_directory_data(const mavlink_message_t* msg, int8_t *directory_data)
{
return _MAV_RETURN_int8_t_array(msg, directory_data, 48, 5);
}
/**
* @brief Decode a flexifunction_directory message into a struct
*
* @param msg The message to decode
* @param flexifunction_directory C-struct to decode the message contents into
*/
static inline void mavlink_msg_flexifunction_directory_decode(const mavlink_message_t* msg, mavlink_flexifunction_directory_t* flexifunction_directory)
{
#if MAVLINK_NEED_BYTE_SWAP
flexifunction_directory->target_system = mavlink_msg_flexifunction_directory_get_target_system(msg);
flexifunction_directory->target_component = mavlink_msg_flexifunction_directory_get_target_component(msg);
flexifunction_directory->directory_type = mavlink_msg_flexifunction_directory_get_directory_type(msg);
flexifunction_directory->start_index = mavlink_msg_flexifunction_directory_get_start_index(msg);
flexifunction_directory->count = mavlink_msg_flexifunction_directory_get_count(msg);
mavlink_msg_flexifunction_directory_get_directory_data(msg, flexifunction_directory->directory_data);
#else
memcpy(flexifunction_directory, _MAV_PAYLOAD(msg), 53);
#endif
}
@@ -0,0 +1,254 @@
// MESSAGE FLEXIFUNCTION_DIRECTORY_ACK PACKING
#define MAVLINK_MSG_ID_FLEXIFUNCTION_DIRECTORY_ACK 156
typedef struct __mavlink_flexifunction_directory_ack_t
{
uint16_t result; ///< result of acknowledge, 0=fail, 1=good
uint8_t target_system; ///< System ID
uint8_t target_component; ///< Component ID
uint8_t directory_type; ///< 0=inputs, 1=outputs
uint8_t start_index; ///< index of first directory entry to write
uint8_t count; ///< count of directory entries to write
} mavlink_flexifunction_directory_ack_t;
#define MAVLINK_MSG_ID_FLEXIFUNCTION_DIRECTORY_ACK_LEN 7
#define MAVLINK_MSG_ID_156_LEN 7
#define MAVLINK_MESSAGE_INFO_FLEXIFUNCTION_DIRECTORY_ACK { \
"FLEXIFUNCTION_DIRECTORY_ACK", \
6, \
{ { "result", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_flexifunction_directory_ack_t, result) }, \
{ "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_flexifunction_directory_ack_t, target_system) }, \
{ "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 3, offsetof(mavlink_flexifunction_directory_ack_t, target_component) }, \
{ "directory_type", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_flexifunction_directory_ack_t, directory_type) }, \
{ "start_index", NULL, MAVLINK_TYPE_UINT8_T, 0, 5, offsetof(mavlink_flexifunction_directory_ack_t, start_index) }, \
{ "count", NULL, MAVLINK_TYPE_UINT8_T, 0, 6, offsetof(mavlink_flexifunction_directory_ack_t, count) }, \
} \
}
/**
* @brief Pack a flexifunction_directory_ack 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 target_system System ID
* @param target_component Component ID
* @param directory_type 0=inputs, 1=outputs
* @param start_index index of first directory entry to write
* @param count count of directory entries to write
* @param result result of acknowledge, 0=fail, 1=good
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_directory_ack_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint8_t target_system, uint8_t target_component, uint8_t directory_type, uint8_t start_index, uint8_t count, uint16_t result)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[7];
_mav_put_uint16_t(buf, 0, result);
_mav_put_uint8_t(buf, 2, target_system);
_mav_put_uint8_t(buf, 3, target_component);
_mav_put_uint8_t(buf, 4, directory_type);
_mav_put_uint8_t(buf, 5, start_index);
_mav_put_uint8_t(buf, 6, count);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 7);
#else
mavlink_flexifunction_directory_ack_t packet;
packet.result = result;
packet.target_system = target_system;
packet.target_component = target_component;
packet.directory_type = directory_type;
packet.start_index = start_index;
packet.count = count;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 7);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_DIRECTORY_ACK;
return mavlink_finalize_message(msg, system_id, component_id, 7, 218);
}
/**
* @brief Pack a flexifunction_directory_ack 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param target_system System ID
* @param target_component Component ID
* @param directory_type 0=inputs, 1=outputs
* @param start_index index of first directory entry to write
* @param count count of directory entries to write
* @param result result of acknowledge, 0=fail, 1=good
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_directory_ack_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint8_t target_system,uint8_t target_component,uint8_t directory_type,uint8_t start_index,uint8_t count,uint16_t result)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[7];
_mav_put_uint16_t(buf, 0, result);
_mav_put_uint8_t(buf, 2, target_system);
_mav_put_uint8_t(buf, 3, target_component);
_mav_put_uint8_t(buf, 4, directory_type);
_mav_put_uint8_t(buf, 5, start_index);
_mav_put_uint8_t(buf, 6, count);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 7);
#else
mavlink_flexifunction_directory_ack_t packet;
packet.result = result;
packet.target_system = target_system;
packet.target_component = target_component;
packet.directory_type = directory_type;
packet.start_index = start_index;
packet.count = count;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 7);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_DIRECTORY_ACK;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 7, 218);
}
/**
* @brief Encode a flexifunction_directory_ack struct into a 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 flexifunction_directory_ack C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_flexifunction_directory_ack_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_flexifunction_directory_ack_t* flexifunction_directory_ack)
{
return mavlink_msg_flexifunction_directory_ack_pack(system_id, component_id, msg, flexifunction_directory_ack->target_system, flexifunction_directory_ack->target_component, flexifunction_directory_ack->directory_type, flexifunction_directory_ack->start_index, flexifunction_directory_ack->count, flexifunction_directory_ack->result);
}
/**
* @brief Send a flexifunction_directory_ack message
* @param chan MAVLink channel to send the message
*
* @param target_system System ID
* @param target_component Component ID
* @param directory_type 0=inputs, 1=outputs
* @param start_index index of first directory entry to write
* @param count count of directory entries to write
* @param result result of acknowledge, 0=fail, 1=good
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_flexifunction_directory_ack_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, uint8_t directory_type, uint8_t start_index, uint8_t count, uint16_t result)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[7];
_mav_put_uint16_t(buf, 0, result);
_mav_put_uint8_t(buf, 2, target_system);
_mav_put_uint8_t(buf, 3, target_component);
_mav_put_uint8_t(buf, 4, directory_type);
_mav_put_uint8_t(buf, 5, start_index);
_mav_put_uint8_t(buf, 6, count);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_DIRECTORY_ACK, buf, 7, 218);
#else
mavlink_flexifunction_directory_ack_t packet;
packet.result = result;
packet.target_system = target_system;
packet.target_component = target_component;
packet.directory_type = directory_type;
packet.start_index = start_index;
packet.count = count;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_DIRECTORY_ACK, (const char *)&packet, 7, 218);
#endif
}
#endif
// MESSAGE FLEXIFUNCTION_DIRECTORY_ACK UNPACKING
/**
* @brief Get field target_system from flexifunction_directory_ack message
*
* @return System ID
*/
static inline uint8_t mavlink_msg_flexifunction_directory_ack_get_target_system(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 2);
}
/**
* @brief Get field target_component from flexifunction_directory_ack message
*
* @return Component ID
*/
static inline uint8_t mavlink_msg_flexifunction_directory_ack_get_target_component(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 3);
}
/**
* @brief Get field directory_type from flexifunction_directory_ack message
*
* @return 0=inputs, 1=outputs
*/
static inline uint8_t mavlink_msg_flexifunction_directory_ack_get_directory_type(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 4);
}
/**
* @brief Get field start_index from flexifunction_directory_ack message
*
* @return index of first directory entry to write
*/
static inline uint8_t mavlink_msg_flexifunction_directory_ack_get_start_index(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 5);
}
/**
* @brief Get field count from flexifunction_directory_ack message
*
* @return count of directory entries to write
*/
static inline uint8_t mavlink_msg_flexifunction_directory_ack_get_count(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 6);
}
/**
* @brief Get field result from flexifunction_directory_ack message
*
* @return result of acknowledge, 0=fail, 1=good
*/
static inline uint16_t mavlink_msg_flexifunction_directory_ack_get_result(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 0);
}
/**
* @brief Decode a flexifunction_directory_ack message into a struct
*
* @param msg The message to decode
* @param flexifunction_directory_ack C-struct to decode the message contents into
*/
static inline void mavlink_msg_flexifunction_directory_ack_decode(const mavlink_message_t* msg, mavlink_flexifunction_directory_ack_t* flexifunction_directory_ack)
{
#if MAVLINK_NEED_BYTE_SWAP
flexifunction_directory_ack->result = mavlink_msg_flexifunction_directory_ack_get_result(msg);
flexifunction_directory_ack->target_system = mavlink_msg_flexifunction_directory_ack_get_target_system(msg);
flexifunction_directory_ack->target_component = mavlink_msg_flexifunction_directory_ack_get_target_component(msg);
flexifunction_directory_ack->directory_type = mavlink_msg_flexifunction_directory_ack_get_directory_type(msg);
flexifunction_directory_ack->start_index = mavlink_msg_flexifunction_directory_ack_get_start_index(msg);
flexifunction_directory_ack->count = mavlink_msg_flexifunction_directory_ack_get_count(msg);
#else
memcpy(flexifunction_directory_ack, _MAV_PAYLOAD(msg), 7);
#endif
}
@@ -0,0 +1,210 @@
// MESSAGE FLEXIFUNCTION_READ_REQ PACKING
#define MAVLINK_MSG_ID_FLEXIFUNCTION_READ_REQ 151
typedef struct __mavlink_flexifunction_read_req_t
{
int16_t read_req_type; ///< Type of flexifunction data requested
int16_t data_index; ///< index into data where needed
uint8_t target_system; ///< System ID
uint8_t target_component; ///< Component ID
} mavlink_flexifunction_read_req_t;
#define MAVLINK_MSG_ID_FLEXIFUNCTION_READ_REQ_LEN 6
#define MAVLINK_MSG_ID_151_LEN 6
#define MAVLINK_MESSAGE_INFO_FLEXIFUNCTION_READ_REQ { \
"FLEXIFUNCTION_READ_REQ", \
4, \
{ { "read_req_type", NULL, MAVLINK_TYPE_INT16_T, 0, 0, offsetof(mavlink_flexifunction_read_req_t, read_req_type) }, \
{ "data_index", NULL, MAVLINK_TYPE_INT16_T, 0, 2, offsetof(mavlink_flexifunction_read_req_t, data_index) }, \
{ "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_flexifunction_read_req_t, target_system) }, \
{ "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 5, offsetof(mavlink_flexifunction_read_req_t, target_component) }, \
} \
}
/**
* @brief Pack a flexifunction_read_req 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 target_system System ID
* @param target_component Component ID
* @param read_req_type Type of flexifunction data requested
* @param data_index index into data where needed
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_read_req_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint8_t target_system, uint8_t target_component, int16_t read_req_type, int16_t data_index)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[6];
_mav_put_int16_t(buf, 0, read_req_type);
_mav_put_int16_t(buf, 2, data_index);
_mav_put_uint8_t(buf, 4, target_system);
_mav_put_uint8_t(buf, 5, target_component);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
#else
mavlink_flexifunction_read_req_t packet;
packet.read_req_type = read_req_type;
packet.data_index = data_index;
packet.target_system = target_system;
packet.target_component = target_component;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_READ_REQ;
return mavlink_finalize_message(msg, system_id, component_id, 6, 26);
}
/**
* @brief Pack a flexifunction_read_req 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param target_system System ID
* @param target_component Component ID
* @param read_req_type Type of flexifunction data requested
* @param data_index index into data where needed
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_read_req_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint8_t target_system,uint8_t target_component,int16_t read_req_type,int16_t data_index)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[6];
_mav_put_int16_t(buf, 0, read_req_type);
_mav_put_int16_t(buf, 2, data_index);
_mav_put_uint8_t(buf, 4, target_system);
_mav_put_uint8_t(buf, 5, target_component);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
#else
mavlink_flexifunction_read_req_t packet;
packet.read_req_type = read_req_type;
packet.data_index = data_index;
packet.target_system = target_system;
packet.target_component = target_component;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_READ_REQ;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 6, 26);
}
/**
* @brief Encode a flexifunction_read_req struct into a 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 flexifunction_read_req C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_flexifunction_read_req_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_flexifunction_read_req_t* flexifunction_read_req)
{
return mavlink_msg_flexifunction_read_req_pack(system_id, component_id, msg, flexifunction_read_req->target_system, flexifunction_read_req->target_component, flexifunction_read_req->read_req_type, flexifunction_read_req->data_index);
}
/**
* @brief Send a flexifunction_read_req message
* @param chan MAVLink channel to send the message
*
* @param target_system System ID
* @param target_component Component ID
* @param read_req_type Type of flexifunction data requested
* @param data_index index into data where needed
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_flexifunction_read_req_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, int16_t read_req_type, int16_t data_index)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[6];
_mav_put_int16_t(buf, 0, read_req_type);
_mav_put_int16_t(buf, 2, data_index);
_mav_put_uint8_t(buf, 4, target_system);
_mav_put_uint8_t(buf, 5, target_component);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_READ_REQ, buf, 6, 26);
#else
mavlink_flexifunction_read_req_t packet;
packet.read_req_type = read_req_type;
packet.data_index = data_index;
packet.target_system = target_system;
packet.target_component = target_component;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_READ_REQ, (const char *)&packet, 6, 26);
#endif
}
#endif
// MESSAGE FLEXIFUNCTION_READ_REQ UNPACKING
/**
* @brief Get field target_system from flexifunction_read_req message
*
* @return System ID
*/
static inline uint8_t mavlink_msg_flexifunction_read_req_get_target_system(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 4);
}
/**
* @brief Get field target_component from flexifunction_read_req message
*
* @return Component ID
*/
static inline uint8_t mavlink_msg_flexifunction_read_req_get_target_component(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 5);
}
/**
* @brief Get field read_req_type from flexifunction_read_req message
*
* @return Type of flexifunction data requested
*/
static inline int16_t mavlink_msg_flexifunction_read_req_get_read_req_type(const mavlink_message_t* msg)
{
return _MAV_RETURN_int16_t(msg, 0);
}
/**
* @brief Get field data_index from flexifunction_read_req message
*
* @return index into data where needed
*/
static inline int16_t mavlink_msg_flexifunction_read_req_get_data_index(const mavlink_message_t* msg)
{
return _MAV_RETURN_int16_t(msg, 2);
}
/**
* @brief Decode a flexifunction_read_req message into a struct
*
* @param msg The message to decode
* @param flexifunction_read_req C-struct to decode the message contents into
*/
static inline void mavlink_msg_flexifunction_read_req_decode(const mavlink_message_t* msg, mavlink_flexifunction_read_req_t* flexifunction_read_req)
{
#if MAVLINK_NEED_BYTE_SWAP
flexifunction_read_req->read_req_type = mavlink_msg_flexifunction_read_req_get_read_req_type(msg);
flexifunction_read_req->data_index = mavlink_msg_flexifunction_read_req_get_data_index(msg);
flexifunction_read_req->target_system = mavlink_msg_flexifunction_read_req_get_target_system(msg);
flexifunction_read_req->target_component = mavlink_msg_flexifunction_read_req_get_target_component(msg);
#else
memcpy(flexifunction_read_req, _MAV_PAYLOAD(msg), 6);
#endif
}
@@ -0,0 +1,166 @@
// MESSAGE FLEXIFUNCTION_SET PACKING
#define MAVLINK_MSG_ID_FLEXIFUNCTION_SET 150
typedef struct __mavlink_flexifunction_set_t
{
uint8_t target_system; ///< System ID
uint8_t target_component; ///< Component ID
} mavlink_flexifunction_set_t;
#define MAVLINK_MSG_ID_FLEXIFUNCTION_SET_LEN 2
#define MAVLINK_MSG_ID_150_LEN 2
#define MAVLINK_MESSAGE_INFO_FLEXIFUNCTION_SET { \
"FLEXIFUNCTION_SET", \
2, \
{ { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_flexifunction_set_t, target_system) }, \
{ "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_flexifunction_set_t, target_component) }, \
} \
}
/**
* @brief Pack a flexifunction_set 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 target_system System ID
* @param target_component Component ID
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_set_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint8_t target_system, uint8_t target_component)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[2];
_mav_put_uint8_t(buf, 0, target_system);
_mav_put_uint8_t(buf, 1, target_component);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
#else
mavlink_flexifunction_set_t packet;
packet.target_system = target_system;
packet.target_component = target_component;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_SET;
return mavlink_finalize_message(msg, system_id, component_id, 2, 181);
}
/**
* @brief Pack a flexifunction_set 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param target_system System ID
* @param target_component Component ID
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_flexifunction_set_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint8_t target_system,uint8_t target_component)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[2];
_mav_put_uint8_t(buf, 0, target_system);
_mav_put_uint8_t(buf, 1, target_component);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
#else
mavlink_flexifunction_set_t packet;
packet.target_system = target_system;
packet.target_component = target_component;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
#endif
msg->msgid = MAVLINK_MSG_ID_FLEXIFUNCTION_SET;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 2, 181);
}
/**
* @brief Encode a flexifunction_set struct into a 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 flexifunction_set C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_flexifunction_set_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_flexifunction_set_t* flexifunction_set)
{
return mavlink_msg_flexifunction_set_pack(system_id, component_id, msg, flexifunction_set->target_system, flexifunction_set->target_component);
}
/**
* @brief Send a flexifunction_set message
* @param chan MAVLink channel to send the message
*
* @param target_system System ID
* @param target_component Component ID
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_flexifunction_set_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[2];
_mav_put_uint8_t(buf, 0, target_system);
_mav_put_uint8_t(buf, 1, target_component);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_SET, buf, 2, 181);
#else
mavlink_flexifunction_set_t packet;
packet.target_system = target_system;
packet.target_component = target_component;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FLEXIFUNCTION_SET, (const char *)&packet, 2, 181);
#endif
}
#endif
// MESSAGE FLEXIFUNCTION_SET UNPACKING
/**
* @brief Get field target_system from flexifunction_set message
*
* @return System ID
*/
static inline uint8_t mavlink_msg_flexifunction_set_get_target_system(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 0);
}
/**
* @brief Get field target_component from flexifunction_set message
*
* @return Component ID
*/
static inline uint8_t mavlink_msg_flexifunction_set_get_target_component(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 1);
}
/**
* @brief Decode a flexifunction_set message into a struct
*
* @param msg The message to decode
* @param flexifunction_set C-struct to decode the message contents into
*/
static inline void mavlink_msg_flexifunction_set_decode(const mavlink_message_t* msg, mavlink_flexifunction_set_t* flexifunction_set)
{
#if MAVLINK_NEED_BYTE_SWAP
flexifunction_set->target_system = mavlink_msg_flexifunction_set_get_target_system(msg);
flexifunction_set->target_component = mavlink_msg_flexifunction_set_get_target_component(msg);
#else
memcpy(flexifunction_set, _MAV_PAYLOAD(msg), 2);
#endif
}
@@ -0,0 +1,210 @@
// MESSAGE SERIAL_UDB_EXTRA_F13 PACKING
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F13 177
typedef struct __mavlink_serial_udb_extra_f13_t
{
int32_t sue_lat_origin; ///< Serial UDB Extra MP Origin Latitude
int32_t sue_lon_origin; ///< Serial UDB Extra MP Origin Longitude
int32_t sue_alt_origin; ///< Serial UDB Extra MP Origin Altitude Above Sea Level
int16_t sue_week_no; ///< Serial UDB Extra GPS Week Number
} mavlink_serial_udb_extra_f13_t;
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F13_LEN 14
#define MAVLINK_MSG_ID_177_LEN 14
#define MAVLINK_MESSAGE_INFO_SERIAL_UDB_EXTRA_F13 { \
"SERIAL_UDB_EXTRA_F13", \
4, \
{ { "sue_lat_origin", NULL, MAVLINK_TYPE_INT32_T, 0, 0, offsetof(mavlink_serial_udb_extra_f13_t, sue_lat_origin) }, \
{ "sue_lon_origin", NULL, MAVLINK_TYPE_INT32_T, 0, 4, offsetof(mavlink_serial_udb_extra_f13_t, sue_lon_origin) }, \
{ "sue_alt_origin", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_serial_udb_extra_f13_t, sue_alt_origin) }, \
{ "sue_week_no", NULL, MAVLINK_TYPE_INT16_T, 0, 12, offsetof(mavlink_serial_udb_extra_f13_t, sue_week_no) }, \
} \
}
/**
* @brief Pack a serial_udb_extra_f13 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 sue_week_no Serial UDB Extra GPS Week Number
* @param sue_lat_origin Serial UDB Extra MP Origin Latitude
* @param sue_lon_origin Serial UDB Extra MP Origin Longitude
* @param sue_alt_origin Serial UDB Extra MP Origin Altitude Above Sea Level
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f13_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
int16_t sue_week_no, int32_t sue_lat_origin, int32_t sue_lon_origin, int32_t sue_alt_origin)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[14];
_mav_put_int32_t(buf, 0, sue_lat_origin);
_mav_put_int32_t(buf, 4, sue_lon_origin);
_mav_put_int32_t(buf, 8, sue_alt_origin);
_mav_put_int16_t(buf, 12, sue_week_no);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
#else
mavlink_serial_udb_extra_f13_t packet;
packet.sue_lat_origin = sue_lat_origin;
packet.sue_lon_origin = sue_lon_origin;
packet.sue_alt_origin = sue_alt_origin;
packet.sue_week_no = sue_week_no;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F13;
return mavlink_finalize_message(msg, system_id, component_id, 14, 249);
}
/**
* @brief Pack a serial_udb_extra_f13 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param sue_week_no Serial UDB Extra GPS Week Number
* @param sue_lat_origin Serial UDB Extra MP Origin Latitude
* @param sue_lon_origin Serial UDB Extra MP Origin Longitude
* @param sue_alt_origin Serial UDB Extra MP Origin Altitude Above Sea Level
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f13_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
int16_t sue_week_no,int32_t sue_lat_origin,int32_t sue_lon_origin,int32_t sue_alt_origin)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[14];
_mav_put_int32_t(buf, 0, sue_lat_origin);
_mav_put_int32_t(buf, 4, sue_lon_origin);
_mav_put_int32_t(buf, 8, sue_alt_origin);
_mav_put_int16_t(buf, 12, sue_week_no);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
#else
mavlink_serial_udb_extra_f13_t packet;
packet.sue_lat_origin = sue_lat_origin;
packet.sue_lon_origin = sue_lon_origin;
packet.sue_alt_origin = sue_alt_origin;
packet.sue_week_no = sue_week_no;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F13;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 14, 249);
}
/**
* @brief Encode a serial_udb_extra_f13 struct into a 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 serial_udb_extra_f13 C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f13_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_serial_udb_extra_f13_t* serial_udb_extra_f13)
{
return mavlink_msg_serial_udb_extra_f13_pack(system_id, component_id, msg, serial_udb_extra_f13->sue_week_no, serial_udb_extra_f13->sue_lat_origin, serial_udb_extra_f13->sue_lon_origin, serial_udb_extra_f13->sue_alt_origin);
}
/**
* @brief Send a serial_udb_extra_f13 message
* @param chan MAVLink channel to send the message
*
* @param sue_week_no Serial UDB Extra GPS Week Number
* @param sue_lat_origin Serial UDB Extra MP Origin Latitude
* @param sue_lon_origin Serial UDB Extra MP Origin Longitude
* @param sue_alt_origin Serial UDB Extra MP Origin Altitude Above Sea Level
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_serial_udb_extra_f13_send(mavlink_channel_t chan, int16_t sue_week_no, int32_t sue_lat_origin, int32_t sue_lon_origin, int32_t sue_alt_origin)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[14];
_mav_put_int32_t(buf, 0, sue_lat_origin);
_mav_put_int32_t(buf, 4, sue_lon_origin);
_mav_put_int32_t(buf, 8, sue_alt_origin);
_mav_put_int16_t(buf, 12, sue_week_no);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F13, buf, 14, 249);
#else
mavlink_serial_udb_extra_f13_t packet;
packet.sue_lat_origin = sue_lat_origin;
packet.sue_lon_origin = sue_lon_origin;
packet.sue_alt_origin = sue_alt_origin;
packet.sue_week_no = sue_week_no;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F13, (const char *)&packet, 14, 249);
#endif
}
#endif
// MESSAGE SERIAL_UDB_EXTRA_F13 UNPACKING
/**
* @brief Get field sue_week_no from serial_udb_extra_f13 message
*
* @return Serial UDB Extra GPS Week Number
*/
static inline int16_t mavlink_msg_serial_udb_extra_f13_get_sue_week_no(const mavlink_message_t* msg)
{
return _MAV_RETURN_int16_t(msg, 12);
}
/**
* @brief Get field sue_lat_origin from serial_udb_extra_f13 message
*
* @return Serial UDB Extra MP Origin Latitude
*/
static inline int32_t mavlink_msg_serial_udb_extra_f13_get_sue_lat_origin(const mavlink_message_t* msg)
{
return _MAV_RETURN_int32_t(msg, 0);
}
/**
* @brief Get field sue_lon_origin from serial_udb_extra_f13 message
*
* @return Serial UDB Extra MP Origin Longitude
*/
static inline int32_t mavlink_msg_serial_udb_extra_f13_get_sue_lon_origin(const mavlink_message_t* msg)
{
return _MAV_RETURN_int32_t(msg, 4);
}
/**
* @brief Get field sue_alt_origin from serial_udb_extra_f13 message
*
* @return Serial UDB Extra MP Origin Altitude Above Sea Level
*/
static inline int32_t mavlink_msg_serial_udb_extra_f13_get_sue_alt_origin(const mavlink_message_t* msg)
{
return _MAV_RETURN_int32_t(msg, 8);
}
/**
* @brief Decode a serial_udb_extra_f13 message into a struct
*
* @param msg The message to decode
* @param serial_udb_extra_f13 C-struct to decode the message contents into
*/
static inline void mavlink_msg_serial_udb_extra_f13_decode(const mavlink_message_t* msg, mavlink_serial_udb_extra_f13_t* serial_udb_extra_f13)
{
#if MAVLINK_NEED_BYTE_SWAP
serial_udb_extra_f13->sue_lat_origin = mavlink_msg_serial_udb_extra_f13_get_sue_lat_origin(msg);
serial_udb_extra_f13->sue_lon_origin = mavlink_msg_serial_udb_extra_f13_get_sue_lon_origin(msg);
serial_udb_extra_f13->sue_alt_origin = mavlink_msg_serial_udb_extra_f13_get_sue_alt_origin(msg);
serial_udb_extra_f13->sue_week_no = mavlink_msg_serial_udb_extra_f13_get_sue_week_no(msg);
#else
memcpy(serial_udb_extra_f13, _MAV_PAYLOAD(msg), 14);
#endif
}
@@ -0,0 +1,364 @@
// MESSAGE SERIAL_UDB_EXTRA_F14 PACKING
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F14 178
typedef struct __mavlink_serial_udb_extra_f14_t
{
uint32_t sue_TRAP_SOURCE; ///< Serial UDB Extra Type Program Address of Last Trap
int16_t sue_RCON; ///< Serial UDB Extra Reboot Regitster of DSPIC
int16_t sue_TRAP_FLAGS; ///< Serial UDB Extra Last dspic Trap Flags
int16_t sue_osc_fail_count; ///< Serial UDB Extra Number of Ocillator Failures
uint8_t sue_WIND_ESTIMATION; ///< Serial UDB Extra Wind Estimation Enabled
uint8_t sue_GPS_TYPE; ///< Serial UDB Extra Type of GPS Unit
uint8_t sue_DR; ///< Serial UDB Extra Dead Reckoning Enabled
uint8_t sue_BOARD_TYPE; ///< Serial UDB Extra Type of UDB Hardware
uint8_t sue_AIRFRAME; ///< Serial UDB Extra Type of Airframe
uint8_t sue_CLOCK_CONFIG; ///< Serial UDB Extra UDB Internal Clock Configuration
uint8_t sue_FLIGHT_PLAN_TYPE; ///< Serial UDB Extra Type of Flight Plan
} mavlink_serial_udb_extra_f14_t;
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F14_LEN 17
#define MAVLINK_MSG_ID_178_LEN 17
#define MAVLINK_MESSAGE_INFO_SERIAL_UDB_EXTRA_F14 { \
"SERIAL_UDB_EXTRA_F14", \
11, \
{ { "sue_TRAP_SOURCE", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_serial_udb_extra_f14_t, sue_TRAP_SOURCE) }, \
{ "sue_RCON", NULL, MAVLINK_TYPE_INT16_T, 0, 4, offsetof(mavlink_serial_udb_extra_f14_t, sue_RCON) }, \
{ "sue_TRAP_FLAGS", NULL, MAVLINK_TYPE_INT16_T, 0, 6, offsetof(mavlink_serial_udb_extra_f14_t, sue_TRAP_FLAGS) }, \
{ "sue_osc_fail_count", NULL, MAVLINK_TYPE_INT16_T, 0, 8, offsetof(mavlink_serial_udb_extra_f14_t, sue_osc_fail_count) }, \
{ "sue_WIND_ESTIMATION", NULL, MAVLINK_TYPE_UINT8_T, 0, 10, offsetof(mavlink_serial_udb_extra_f14_t, sue_WIND_ESTIMATION) }, \
{ "sue_GPS_TYPE", NULL, MAVLINK_TYPE_UINT8_T, 0, 11, offsetof(mavlink_serial_udb_extra_f14_t, sue_GPS_TYPE) }, \
{ "sue_DR", NULL, MAVLINK_TYPE_UINT8_T, 0, 12, offsetof(mavlink_serial_udb_extra_f14_t, sue_DR) }, \
{ "sue_BOARD_TYPE", NULL, MAVLINK_TYPE_UINT8_T, 0, 13, offsetof(mavlink_serial_udb_extra_f14_t, sue_BOARD_TYPE) }, \
{ "sue_AIRFRAME", NULL, MAVLINK_TYPE_UINT8_T, 0, 14, offsetof(mavlink_serial_udb_extra_f14_t, sue_AIRFRAME) }, \
{ "sue_CLOCK_CONFIG", NULL, MAVLINK_TYPE_UINT8_T, 0, 15, offsetof(mavlink_serial_udb_extra_f14_t, sue_CLOCK_CONFIG) }, \
{ "sue_FLIGHT_PLAN_TYPE", NULL, MAVLINK_TYPE_UINT8_T, 0, 16, offsetof(mavlink_serial_udb_extra_f14_t, sue_FLIGHT_PLAN_TYPE) }, \
} \
}
/**
* @brief Pack a serial_udb_extra_f14 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 sue_WIND_ESTIMATION Serial UDB Extra Wind Estimation Enabled
* @param sue_GPS_TYPE Serial UDB Extra Type of GPS Unit
* @param sue_DR Serial UDB Extra Dead Reckoning Enabled
* @param sue_BOARD_TYPE Serial UDB Extra Type of UDB Hardware
* @param sue_AIRFRAME Serial UDB Extra Type of Airframe
* @param sue_RCON Serial UDB Extra Reboot Regitster of DSPIC
* @param sue_TRAP_FLAGS Serial UDB Extra Last dspic Trap Flags
* @param sue_TRAP_SOURCE Serial UDB Extra Type Program Address of Last Trap
* @param sue_osc_fail_count Serial UDB Extra Number of Ocillator Failures
* @param sue_CLOCK_CONFIG Serial UDB Extra UDB Internal Clock Configuration
* @param sue_FLIGHT_PLAN_TYPE Serial UDB Extra Type of Flight Plan
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f14_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint8_t sue_WIND_ESTIMATION, uint8_t sue_GPS_TYPE, uint8_t sue_DR, uint8_t sue_BOARD_TYPE, uint8_t sue_AIRFRAME, int16_t sue_RCON, int16_t sue_TRAP_FLAGS, uint32_t sue_TRAP_SOURCE, int16_t sue_osc_fail_count, uint8_t sue_CLOCK_CONFIG, uint8_t sue_FLIGHT_PLAN_TYPE)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[17];
_mav_put_uint32_t(buf, 0, sue_TRAP_SOURCE);
_mav_put_int16_t(buf, 4, sue_RCON);
_mav_put_int16_t(buf, 6, sue_TRAP_FLAGS);
_mav_put_int16_t(buf, 8, sue_osc_fail_count);
_mav_put_uint8_t(buf, 10, sue_WIND_ESTIMATION);
_mav_put_uint8_t(buf, 11, sue_GPS_TYPE);
_mav_put_uint8_t(buf, 12, sue_DR);
_mav_put_uint8_t(buf, 13, sue_BOARD_TYPE);
_mav_put_uint8_t(buf, 14, sue_AIRFRAME);
_mav_put_uint8_t(buf, 15, sue_CLOCK_CONFIG);
_mav_put_uint8_t(buf, 16, sue_FLIGHT_PLAN_TYPE);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 17);
#else
mavlink_serial_udb_extra_f14_t packet;
packet.sue_TRAP_SOURCE = sue_TRAP_SOURCE;
packet.sue_RCON = sue_RCON;
packet.sue_TRAP_FLAGS = sue_TRAP_FLAGS;
packet.sue_osc_fail_count = sue_osc_fail_count;
packet.sue_WIND_ESTIMATION = sue_WIND_ESTIMATION;
packet.sue_GPS_TYPE = sue_GPS_TYPE;
packet.sue_DR = sue_DR;
packet.sue_BOARD_TYPE = sue_BOARD_TYPE;
packet.sue_AIRFRAME = sue_AIRFRAME;
packet.sue_CLOCK_CONFIG = sue_CLOCK_CONFIG;
packet.sue_FLIGHT_PLAN_TYPE = sue_FLIGHT_PLAN_TYPE;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 17);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F14;
return mavlink_finalize_message(msg, system_id, component_id, 17, 123);
}
/**
* @brief Pack a serial_udb_extra_f14 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param sue_WIND_ESTIMATION Serial UDB Extra Wind Estimation Enabled
* @param sue_GPS_TYPE Serial UDB Extra Type of GPS Unit
* @param sue_DR Serial UDB Extra Dead Reckoning Enabled
* @param sue_BOARD_TYPE Serial UDB Extra Type of UDB Hardware
* @param sue_AIRFRAME Serial UDB Extra Type of Airframe
* @param sue_RCON Serial UDB Extra Reboot Regitster of DSPIC
* @param sue_TRAP_FLAGS Serial UDB Extra Last dspic Trap Flags
* @param sue_TRAP_SOURCE Serial UDB Extra Type Program Address of Last Trap
* @param sue_osc_fail_count Serial UDB Extra Number of Ocillator Failures
* @param sue_CLOCK_CONFIG Serial UDB Extra UDB Internal Clock Configuration
* @param sue_FLIGHT_PLAN_TYPE Serial UDB Extra Type of Flight Plan
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f14_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint8_t sue_WIND_ESTIMATION,uint8_t sue_GPS_TYPE,uint8_t sue_DR,uint8_t sue_BOARD_TYPE,uint8_t sue_AIRFRAME,int16_t sue_RCON,int16_t sue_TRAP_FLAGS,uint32_t sue_TRAP_SOURCE,int16_t sue_osc_fail_count,uint8_t sue_CLOCK_CONFIG,uint8_t sue_FLIGHT_PLAN_TYPE)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[17];
_mav_put_uint32_t(buf, 0, sue_TRAP_SOURCE);
_mav_put_int16_t(buf, 4, sue_RCON);
_mav_put_int16_t(buf, 6, sue_TRAP_FLAGS);
_mav_put_int16_t(buf, 8, sue_osc_fail_count);
_mav_put_uint8_t(buf, 10, sue_WIND_ESTIMATION);
_mav_put_uint8_t(buf, 11, sue_GPS_TYPE);
_mav_put_uint8_t(buf, 12, sue_DR);
_mav_put_uint8_t(buf, 13, sue_BOARD_TYPE);
_mav_put_uint8_t(buf, 14, sue_AIRFRAME);
_mav_put_uint8_t(buf, 15, sue_CLOCK_CONFIG);
_mav_put_uint8_t(buf, 16, sue_FLIGHT_PLAN_TYPE);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 17);
#else
mavlink_serial_udb_extra_f14_t packet;
packet.sue_TRAP_SOURCE = sue_TRAP_SOURCE;
packet.sue_RCON = sue_RCON;
packet.sue_TRAP_FLAGS = sue_TRAP_FLAGS;
packet.sue_osc_fail_count = sue_osc_fail_count;
packet.sue_WIND_ESTIMATION = sue_WIND_ESTIMATION;
packet.sue_GPS_TYPE = sue_GPS_TYPE;
packet.sue_DR = sue_DR;
packet.sue_BOARD_TYPE = sue_BOARD_TYPE;
packet.sue_AIRFRAME = sue_AIRFRAME;
packet.sue_CLOCK_CONFIG = sue_CLOCK_CONFIG;
packet.sue_FLIGHT_PLAN_TYPE = sue_FLIGHT_PLAN_TYPE;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 17);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F14;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 17, 123);
}
/**
* @brief Encode a serial_udb_extra_f14 struct into a 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 serial_udb_extra_f14 C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f14_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_serial_udb_extra_f14_t* serial_udb_extra_f14)
{
return mavlink_msg_serial_udb_extra_f14_pack(system_id, component_id, msg, serial_udb_extra_f14->sue_WIND_ESTIMATION, serial_udb_extra_f14->sue_GPS_TYPE, serial_udb_extra_f14->sue_DR, serial_udb_extra_f14->sue_BOARD_TYPE, serial_udb_extra_f14->sue_AIRFRAME, serial_udb_extra_f14->sue_RCON, serial_udb_extra_f14->sue_TRAP_FLAGS, serial_udb_extra_f14->sue_TRAP_SOURCE, serial_udb_extra_f14->sue_osc_fail_count, serial_udb_extra_f14->sue_CLOCK_CONFIG, serial_udb_extra_f14->sue_FLIGHT_PLAN_TYPE);
}
/**
* @brief Send a serial_udb_extra_f14 message
* @param chan MAVLink channel to send the message
*
* @param sue_WIND_ESTIMATION Serial UDB Extra Wind Estimation Enabled
* @param sue_GPS_TYPE Serial UDB Extra Type of GPS Unit
* @param sue_DR Serial UDB Extra Dead Reckoning Enabled
* @param sue_BOARD_TYPE Serial UDB Extra Type of UDB Hardware
* @param sue_AIRFRAME Serial UDB Extra Type of Airframe
* @param sue_RCON Serial UDB Extra Reboot Regitster of DSPIC
* @param sue_TRAP_FLAGS Serial UDB Extra Last dspic Trap Flags
* @param sue_TRAP_SOURCE Serial UDB Extra Type Program Address of Last Trap
* @param sue_osc_fail_count Serial UDB Extra Number of Ocillator Failures
* @param sue_CLOCK_CONFIG Serial UDB Extra UDB Internal Clock Configuration
* @param sue_FLIGHT_PLAN_TYPE Serial UDB Extra Type of Flight Plan
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_serial_udb_extra_f14_send(mavlink_channel_t chan, uint8_t sue_WIND_ESTIMATION, uint8_t sue_GPS_TYPE, uint8_t sue_DR, uint8_t sue_BOARD_TYPE, uint8_t sue_AIRFRAME, int16_t sue_RCON, int16_t sue_TRAP_FLAGS, uint32_t sue_TRAP_SOURCE, int16_t sue_osc_fail_count, uint8_t sue_CLOCK_CONFIG, uint8_t sue_FLIGHT_PLAN_TYPE)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[17];
_mav_put_uint32_t(buf, 0, sue_TRAP_SOURCE);
_mav_put_int16_t(buf, 4, sue_RCON);
_mav_put_int16_t(buf, 6, sue_TRAP_FLAGS);
_mav_put_int16_t(buf, 8, sue_osc_fail_count);
_mav_put_uint8_t(buf, 10, sue_WIND_ESTIMATION);
_mav_put_uint8_t(buf, 11, sue_GPS_TYPE);
_mav_put_uint8_t(buf, 12, sue_DR);
_mav_put_uint8_t(buf, 13, sue_BOARD_TYPE);
_mav_put_uint8_t(buf, 14, sue_AIRFRAME);
_mav_put_uint8_t(buf, 15, sue_CLOCK_CONFIG);
_mav_put_uint8_t(buf, 16, sue_FLIGHT_PLAN_TYPE);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F14, buf, 17, 123);
#else
mavlink_serial_udb_extra_f14_t packet;
packet.sue_TRAP_SOURCE = sue_TRAP_SOURCE;
packet.sue_RCON = sue_RCON;
packet.sue_TRAP_FLAGS = sue_TRAP_FLAGS;
packet.sue_osc_fail_count = sue_osc_fail_count;
packet.sue_WIND_ESTIMATION = sue_WIND_ESTIMATION;
packet.sue_GPS_TYPE = sue_GPS_TYPE;
packet.sue_DR = sue_DR;
packet.sue_BOARD_TYPE = sue_BOARD_TYPE;
packet.sue_AIRFRAME = sue_AIRFRAME;
packet.sue_CLOCK_CONFIG = sue_CLOCK_CONFIG;
packet.sue_FLIGHT_PLAN_TYPE = sue_FLIGHT_PLAN_TYPE;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F14, (const char *)&packet, 17, 123);
#endif
}
#endif
// MESSAGE SERIAL_UDB_EXTRA_F14 UNPACKING
/**
* @brief Get field sue_WIND_ESTIMATION from serial_udb_extra_f14 message
*
* @return Serial UDB Extra Wind Estimation Enabled
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f14_get_sue_WIND_ESTIMATION(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 10);
}
/**
* @brief Get field sue_GPS_TYPE from serial_udb_extra_f14 message
*
* @return Serial UDB Extra Type of GPS Unit
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f14_get_sue_GPS_TYPE(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 11);
}
/**
* @brief Get field sue_DR from serial_udb_extra_f14 message
*
* @return Serial UDB Extra Dead Reckoning Enabled
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f14_get_sue_DR(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 12);
}
/**
* @brief Get field sue_BOARD_TYPE from serial_udb_extra_f14 message
*
* @return Serial UDB Extra Type of UDB Hardware
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f14_get_sue_BOARD_TYPE(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 13);
}
/**
* @brief Get field sue_AIRFRAME from serial_udb_extra_f14 message
*
* @return Serial UDB Extra Type of Airframe
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f14_get_sue_AIRFRAME(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 14);
}
/**
* @brief Get field sue_RCON from serial_udb_extra_f14 message
*
* @return Serial UDB Extra Reboot Regitster of DSPIC
*/
static inline int16_t mavlink_msg_serial_udb_extra_f14_get_sue_RCON(const mavlink_message_t* msg)
{
return _MAV_RETURN_int16_t(msg, 4);
}
/**
* @brief Get field sue_TRAP_FLAGS from serial_udb_extra_f14 message
*
* @return Serial UDB Extra Last dspic Trap Flags
*/
static inline int16_t mavlink_msg_serial_udb_extra_f14_get_sue_TRAP_FLAGS(const mavlink_message_t* msg)
{
return _MAV_RETURN_int16_t(msg, 6);
}
/**
* @brief Get field sue_TRAP_SOURCE from serial_udb_extra_f14 message
*
* @return Serial UDB Extra Type Program Address of Last Trap
*/
static inline uint32_t mavlink_msg_serial_udb_extra_f14_get_sue_TRAP_SOURCE(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 0);
}
/**
* @brief Get field sue_osc_fail_count from serial_udb_extra_f14 message
*
* @return Serial UDB Extra Number of Ocillator Failures
*/
static inline int16_t mavlink_msg_serial_udb_extra_f14_get_sue_osc_fail_count(const mavlink_message_t* msg)
{
return _MAV_RETURN_int16_t(msg, 8);
}
/**
* @brief Get field sue_CLOCK_CONFIG from serial_udb_extra_f14 message
*
* @return Serial UDB Extra UDB Internal Clock Configuration
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f14_get_sue_CLOCK_CONFIG(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 15);
}
/**
* @brief Get field sue_FLIGHT_PLAN_TYPE from serial_udb_extra_f14 message
*
* @return Serial UDB Extra Type of Flight Plan
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f14_get_sue_FLIGHT_PLAN_TYPE(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 16);
}
/**
* @brief Decode a serial_udb_extra_f14 message into a struct
*
* @param msg The message to decode
* @param serial_udb_extra_f14 C-struct to decode the message contents into
*/
static inline void mavlink_msg_serial_udb_extra_f14_decode(const mavlink_message_t* msg, mavlink_serial_udb_extra_f14_t* serial_udb_extra_f14)
{
#if MAVLINK_NEED_BYTE_SWAP
serial_udb_extra_f14->sue_TRAP_SOURCE = mavlink_msg_serial_udb_extra_f14_get_sue_TRAP_SOURCE(msg);
serial_udb_extra_f14->sue_RCON = mavlink_msg_serial_udb_extra_f14_get_sue_RCON(msg);
serial_udb_extra_f14->sue_TRAP_FLAGS = mavlink_msg_serial_udb_extra_f14_get_sue_TRAP_FLAGS(msg);
serial_udb_extra_f14->sue_osc_fail_count = mavlink_msg_serial_udb_extra_f14_get_sue_osc_fail_count(msg);
serial_udb_extra_f14->sue_WIND_ESTIMATION = mavlink_msg_serial_udb_extra_f14_get_sue_WIND_ESTIMATION(msg);
serial_udb_extra_f14->sue_GPS_TYPE = mavlink_msg_serial_udb_extra_f14_get_sue_GPS_TYPE(msg);
serial_udb_extra_f14->sue_DR = mavlink_msg_serial_udb_extra_f14_get_sue_DR(msg);
serial_udb_extra_f14->sue_BOARD_TYPE = mavlink_msg_serial_udb_extra_f14_get_sue_BOARD_TYPE(msg);
serial_udb_extra_f14->sue_AIRFRAME = mavlink_msg_serial_udb_extra_f14_get_sue_AIRFRAME(msg);
serial_udb_extra_f14->sue_CLOCK_CONFIG = mavlink_msg_serial_udb_extra_f14_get_sue_CLOCK_CONFIG(msg);
serial_udb_extra_f14->sue_FLIGHT_PLAN_TYPE = mavlink_msg_serial_udb_extra_f14_get_sue_FLIGHT_PLAN_TYPE(msg);
#else
memcpy(serial_udb_extra_f14, _MAV_PAYLOAD(msg), 17);
#endif
}
@@ -0,0 +1,167 @@
// MESSAGE SERIAL_UDB_EXTRA_F15 PACKING
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F15 179
typedef struct __mavlink_serial_udb_extra_f15_t
{
uint8_t sue_ID_VEHICLE_MODEL_NAME[40]; ///< Serial UDB Extra Model Name Of Vehicle
uint8_t sue_ID_VEHICLE_REGISTRATION[20]; ///< Serial UDB Extra Registraton Number of Vehicle
} mavlink_serial_udb_extra_f15_t;
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F15_LEN 60
#define MAVLINK_MSG_ID_179_LEN 60
#define MAVLINK_MSG_SERIAL_UDB_EXTRA_F15_FIELD_SUE_ID_VEHICLE_MODEL_NAME_LEN 40
#define MAVLINK_MSG_SERIAL_UDB_EXTRA_F15_FIELD_SUE_ID_VEHICLE_REGISTRATION_LEN 20
#define MAVLINK_MESSAGE_INFO_SERIAL_UDB_EXTRA_F15 { \
"SERIAL_UDB_EXTRA_F15", \
2, \
{ { "sue_ID_VEHICLE_MODEL_NAME", NULL, MAVLINK_TYPE_UINT8_T, 40, 0, offsetof(mavlink_serial_udb_extra_f15_t, sue_ID_VEHICLE_MODEL_NAME) }, \
{ "sue_ID_VEHICLE_REGISTRATION", NULL, MAVLINK_TYPE_UINT8_T, 20, 40, offsetof(mavlink_serial_udb_extra_f15_t, sue_ID_VEHICLE_REGISTRATION) }, \
} \
}
/**
* @brief Pack a serial_udb_extra_f15 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 sue_ID_VEHICLE_MODEL_NAME Serial UDB Extra Model Name Of Vehicle
* @param sue_ID_VEHICLE_REGISTRATION Serial UDB Extra Registraton Number of Vehicle
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f15_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
const uint8_t *sue_ID_VEHICLE_MODEL_NAME, const uint8_t *sue_ID_VEHICLE_REGISTRATION)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[60];
_mav_put_uint8_t_array(buf, 0, sue_ID_VEHICLE_MODEL_NAME, 40);
_mav_put_uint8_t_array(buf, 40, sue_ID_VEHICLE_REGISTRATION, 20);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 60);
#else
mavlink_serial_udb_extra_f15_t packet;
mav_array_memcpy(packet.sue_ID_VEHICLE_MODEL_NAME, sue_ID_VEHICLE_MODEL_NAME, sizeof(uint8_t)*40);
mav_array_memcpy(packet.sue_ID_VEHICLE_REGISTRATION, sue_ID_VEHICLE_REGISTRATION, sizeof(uint8_t)*20);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 60);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F15;
return mavlink_finalize_message(msg, system_id, component_id, 60, 7);
}
/**
* @brief Pack a serial_udb_extra_f15 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param sue_ID_VEHICLE_MODEL_NAME Serial UDB Extra Model Name Of Vehicle
* @param sue_ID_VEHICLE_REGISTRATION Serial UDB Extra Registraton Number of Vehicle
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f15_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
const uint8_t *sue_ID_VEHICLE_MODEL_NAME,const uint8_t *sue_ID_VEHICLE_REGISTRATION)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[60];
_mav_put_uint8_t_array(buf, 0, sue_ID_VEHICLE_MODEL_NAME, 40);
_mav_put_uint8_t_array(buf, 40, sue_ID_VEHICLE_REGISTRATION, 20);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 60);
#else
mavlink_serial_udb_extra_f15_t packet;
mav_array_memcpy(packet.sue_ID_VEHICLE_MODEL_NAME, sue_ID_VEHICLE_MODEL_NAME, sizeof(uint8_t)*40);
mav_array_memcpy(packet.sue_ID_VEHICLE_REGISTRATION, sue_ID_VEHICLE_REGISTRATION, sizeof(uint8_t)*20);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 60);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F15;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 60, 7);
}
/**
* @brief Encode a serial_udb_extra_f15 struct into a 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 serial_udb_extra_f15 C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f15_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_serial_udb_extra_f15_t* serial_udb_extra_f15)
{
return mavlink_msg_serial_udb_extra_f15_pack(system_id, component_id, msg, serial_udb_extra_f15->sue_ID_VEHICLE_MODEL_NAME, serial_udb_extra_f15->sue_ID_VEHICLE_REGISTRATION);
}
/**
* @brief Send a serial_udb_extra_f15 message
* @param chan MAVLink channel to send the message
*
* @param sue_ID_VEHICLE_MODEL_NAME Serial UDB Extra Model Name Of Vehicle
* @param sue_ID_VEHICLE_REGISTRATION Serial UDB Extra Registraton Number of Vehicle
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_serial_udb_extra_f15_send(mavlink_channel_t chan, const uint8_t *sue_ID_VEHICLE_MODEL_NAME, const uint8_t *sue_ID_VEHICLE_REGISTRATION)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[60];
_mav_put_uint8_t_array(buf, 0, sue_ID_VEHICLE_MODEL_NAME, 40);
_mav_put_uint8_t_array(buf, 40, sue_ID_VEHICLE_REGISTRATION, 20);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F15, buf, 60, 7);
#else
mavlink_serial_udb_extra_f15_t packet;
mav_array_memcpy(packet.sue_ID_VEHICLE_MODEL_NAME, sue_ID_VEHICLE_MODEL_NAME, sizeof(uint8_t)*40);
mav_array_memcpy(packet.sue_ID_VEHICLE_REGISTRATION, sue_ID_VEHICLE_REGISTRATION, sizeof(uint8_t)*20);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F15, (const char *)&packet, 60, 7);
#endif
}
#endif
// MESSAGE SERIAL_UDB_EXTRA_F15 UNPACKING
/**
* @brief Get field sue_ID_VEHICLE_MODEL_NAME from serial_udb_extra_f15 message
*
* @return Serial UDB Extra Model Name Of Vehicle
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f15_get_sue_ID_VEHICLE_MODEL_NAME(const mavlink_message_t* msg, uint8_t *sue_ID_VEHICLE_MODEL_NAME)
{
return _MAV_RETURN_uint8_t_array(msg, sue_ID_VEHICLE_MODEL_NAME, 40, 0);
}
/**
* @brief Get field sue_ID_VEHICLE_REGISTRATION from serial_udb_extra_f15 message
*
* @return Serial UDB Extra Registraton Number of Vehicle
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f15_get_sue_ID_VEHICLE_REGISTRATION(const mavlink_message_t* msg, uint8_t *sue_ID_VEHICLE_REGISTRATION)
{
return _MAV_RETURN_uint8_t_array(msg, sue_ID_VEHICLE_REGISTRATION, 20, 40);
}
/**
* @brief Decode a serial_udb_extra_f15 message into a struct
*
* @param msg The message to decode
* @param serial_udb_extra_f15 C-struct to decode the message contents into
*/
static inline void mavlink_msg_serial_udb_extra_f15_decode(const mavlink_message_t* msg, mavlink_serial_udb_extra_f15_t* serial_udb_extra_f15)
{
#if MAVLINK_NEED_BYTE_SWAP
mavlink_msg_serial_udb_extra_f15_get_sue_ID_VEHICLE_MODEL_NAME(msg, serial_udb_extra_f15->sue_ID_VEHICLE_MODEL_NAME);
mavlink_msg_serial_udb_extra_f15_get_sue_ID_VEHICLE_REGISTRATION(msg, serial_udb_extra_f15->sue_ID_VEHICLE_REGISTRATION);
#else
memcpy(serial_udb_extra_f15, _MAV_PAYLOAD(msg), 60);
#endif
}
@@ -0,0 +1,167 @@
// MESSAGE SERIAL_UDB_EXTRA_F16 PACKING
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F16 180
typedef struct __mavlink_serial_udb_extra_f16_t
{
uint8_t sue_ID_LEAD_PILOT[40]; ///< Serial UDB Extra Name of Expected Lead Pilot
uint8_t sue_ID_DIY_DRONES_URL[70]; ///< Serial UDB Extra URL of Lead Pilot or Team
} mavlink_serial_udb_extra_f16_t;
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F16_LEN 110
#define MAVLINK_MSG_ID_180_LEN 110
#define MAVLINK_MSG_SERIAL_UDB_EXTRA_F16_FIELD_SUE_ID_LEAD_PILOT_LEN 40
#define MAVLINK_MSG_SERIAL_UDB_EXTRA_F16_FIELD_SUE_ID_DIY_DRONES_URL_LEN 70
#define MAVLINK_MESSAGE_INFO_SERIAL_UDB_EXTRA_F16 { \
"SERIAL_UDB_EXTRA_F16", \
2, \
{ { "sue_ID_LEAD_PILOT", NULL, MAVLINK_TYPE_UINT8_T, 40, 0, offsetof(mavlink_serial_udb_extra_f16_t, sue_ID_LEAD_PILOT) }, \
{ "sue_ID_DIY_DRONES_URL", NULL, MAVLINK_TYPE_UINT8_T, 70, 40, offsetof(mavlink_serial_udb_extra_f16_t, sue_ID_DIY_DRONES_URL) }, \
} \
}
/**
* @brief Pack a serial_udb_extra_f16 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 sue_ID_LEAD_PILOT Serial UDB Extra Name of Expected Lead Pilot
* @param sue_ID_DIY_DRONES_URL Serial UDB Extra URL of Lead Pilot or Team
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f16_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
const uint8_t *sue_ID_LEAD_PILOT, const uint8_t *sue_ID_DIY_DRONES_URL)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[110];
_mav_put_uint8_t_array(buf, 0, sue_ID_LEAD_PILOT, 40);
_mav_put_uint8_t_array(buf, 40, sue_ID_DIY_DRONES_URL, 70);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 110);
#else
mavlink_serial_udb_extra_f16_t packet;
mav_array_memcpy(packet.sue_ID_LEAD_PILOT, sue_ID_LEAD_PILOT, sizeof(uint8_t)*40);
mav_array_memcpy(packet.sue_ID_DIY_DRONES_URL, sue_ID_DIY_DRONES_URL, sizeof(uint8_t)*70);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 110);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F16;
return mavlink_finalize_message(msg, system_id, component_id, 110, 222);
}
/**
* @brief Pack a serial_udb_extra_f16 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param sue_ID_LEAD_PILOT Serial UDB Extra Name of Expected Lead Pilot
* @param sue_ID_DIY_DRONES_URL Serial UDB Extra URL of Lead Pilot or Team
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f16_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
const uint8_t *sue_ID_LEAD_PILOT,const uint8_t *sue_ID_DIY_DRONES_URL)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[110];
_mav_put_uint8_t_array(buf, 0, sue_ID_LEAD_PILOT, 40);
_mav_put_uint8_t_array(buf, 40, sue_ID_DIY_DRONES_URL, 70);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 110);
#else
mavlink_serial_udb_extra_f16_t packet;
mav_array_memcpy(packet.sue_ID_LEAD_PILOT, sue_ID_LEAD_PILOT, sizeof(uint8_t)*40);
mav_array_memcpy(packet.sue_ID_DIY_DRONES_URL, sue_ID_DIY_DRONES_URL, sizeof(uint8_t)*70);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 110);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F16;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 110, 222);
}
/**
* @brief Encode a serial_udb_extra_f16 struct into a 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 serial_udb_extra_f16 C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f16_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_serial_udb_extra_f16_t* serial_udb_extra_f16)
{
return mavlink_msg_serial_udb_extra_f16_pack(system_id, component_id, msg, serial_udb_extra_f16->sue_ID_LEAD_PILOT, serial_udb_extra_f16->sue_ID_DIY_DRONES_URL);
}
/**
* @brief Send a serial_udb_extra_f16 message
* @param chan MAVLink channel to send the message
*
* @param sue_ID_LEAD_PILOT Serial UDB Extra Name of Expected Lead Pilot
* @param sue_ID_DIY_DRONES_URL Serial UDB Extra URL of Lead Pilot or Team
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_serial_udb_extra_f16_send(mavlink_channel_t chan, const uint8_t *sue_ID_LEAD_PILOT, const uint8_t *sue_ID_DIY_DRONES_URL)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[110];
_mav_put_uint8_t_array(buf, 0, sue_ID_LEAD_PILOT, 40);
_mav_put_uint8_t_array(buf, 40, sue_ID_DIY_DRONES_URL, 70);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F16, buf, 110, 222);
#else
mavlink_serial_udb_extra_f16_t packet;
mav_array_memcpy(packet.sue_ID_LEAD_PILOT, sue_ID_LEAD_PILOT, sizeof(uint8_t)*40);
mav_array_memcpy(packet.sue_ID_DIY_DRONES_URL, sue_ID_DIY_DRONES_URL, sizeof(uint8_t)*70);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F16, (const char *)&packet, 110, 222);
#endif
}
#endif
// MESSAGE SERIAL_UDB_EXTRA_F16 UNPACKING
/**
* @brief Get field sue_ID_LEAD_PILOT from serial_udb_extra_f16 message
*
* @return Serial UDB Extra Name of Expected Lead Pilot
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f16_get_sue_ID_LEAD_PILOT(const mavlink_message_t* msg, uint8_t *sue_ID_LEAD_PILOT)
{
return _MAV_RETURN_uint8_t_array(msg, sue_ID_LEAD_PILOT, 40, 0);
}
/**
* @brief Get field sue_ID_DIY_DRONES_URL from serial_udb_extra_f16 message
*
* @return Serial UDB Extra URL of Lead Pilot or Team
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f16_get_sue_ID_DIY_DRONES_URL(const mavlink_message_t* msg, uint8_t *sue_ID_DIY_DRONES_URL)
{
return _MAV_RETURN_uint8_t_array(msg, sue_ID_DIY_DRONES_URL, 70, 40);
}
/**
* @brief Decode a serial_udb_extra_f16 message into a struct
*
* @param msg The message to decode
* @param serial_udb_extra_f16 C-struct to decode the message contents into
*/
static inline void mavlink_msg_serial_udb_extra_f16_decode(const mavlink_message_t* msg, mavlink_serial_udb_extra_f16_t* serial_udb_extra_f16)
{
#if MAVLINK_NEED_BYTE_SWAP
mavlink_msg_serial_udb_extra_f16_get_sue_ID_LEAD_PILOT(msg, serial_udb_extra_f16->sue_ID_LEAD_PILOT);
mavlink_msg_serial_udb_extra_f16_get_sue_ID_DIY_DRONES_URL(msg, serial_udb_extra_f16->sue_ID_DIY_DRONES_URL);
#else
memcpy(serial_udb_extra_f16, _MAV_PAYLOAD(msg), 110);
#endif
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,342 @@
// MESSAGE SERIAL_UDB_EXTRA_F4 PACKING
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F4 172
typedef struct __mavlink_serial_udb_extra_f4_t
{
uint8_t sue_ROLL_STABILIZATION_AILERONS; ///< Serial UDB Extra Roll Stabilization with Ailerons Enabled
uint8_t sue_ROLL_STABILIZATION_RUDDER; ///< Serial UDB Extra Roll Stabilization with Rudder Enabled
uint8_t sue_PITCH_STABILIZATION; ///< Serial UDB Extra Pitch Stabilization Enabled
uint8_t sue_YAW_STABILIZATION_RUDDER; ///< Serial UDB Extra Yaw Stabilization using Rudder Enabled
uint8_t sue_YAW_STABILIZATION_AILERON; ///< Serial UDB Extra Yaw Stabilization using Ailerons Enabled
uint8_t sue_AILERON_NAVIGATION; ///< Serial UDB Extra Navigation with Ailerons Enabled
uint8_t sue_RUDDER_NAVIGATION; ///< Serial UDB Extra Navigation with Rudder Enabled
uint8_t sue_ALTITUDEHOLD_STABILIZED; ///< Serial UDB Extra Type of Alitude Hold when in Stabilized Mode
uint8_t sue_ALTITUDEHOLD_WAYPOINT; ///< Serial UDB Extra Type of Alitude Hold when in Waypoint Mode
uint8_t sue_RACING_MODE; ///< Serial UDB Extra Firmware racing mode enabled
} mavlink_serial_udb_extra_f4_t;
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F4_LEN 10
#define MAVLINK_MSG_ID_172_LEN 10
#define MAVLINK_MESSAGE_INFO_SERIAL_UDB_EXTRA_F4 { \
"SERIAL_UDB_EXTRA_F4", \
10, \
{ { "sue_ROLL_STABILIZATION_AILERONS", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_serial_udb_extra_f4_t, sue_ROLL_STABILIZATION_AILERONS) }, \
{ "sue_ROLL_STABILIZATION_RUDDER", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_serial_udb_extra_f4_t, sue_ROLL_STABILIZATION_RUDDER) }, \
{ "sue_PITCH_STABILIZATION", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_serial_udb_extra_f4_t, sue_PITCH_STABILIZATION) }, \
{ "sue_YAW_STABILIZATION_RUDDER", NULL, MAVLINK_TYPE_UINT8_T, 0, 3, offsetof(mavlink_serial_udb_extra_f4_t, sue_YAW_STABILIZATION_RUDDER) }, \
{ "sue_YAW_STABILIZATION_AILERON", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_serial_udb_extra_f4_t, sue_YAW_STABILIZATION_AILERON) }, \
{ "sue_AILERON_NAVIGATION", NULL, MAVLINK_TYPE_UINT8_T, 0, 5, offsetof(mavlink_serial_udb_extra_f4_t, sue_AILERON_NAVIGATION) }, \
{ "sue_RUDDER_NAVIGATION", NULL, MAVLINK_TYPE_UINT8_T, 0, 6, offsetof(mavlink_serial_udb_extra_f4_t, sue_RUDDER_NAVIGATION) }, \
{ "sue_ALTITUDEHOLD_STABILIZED", NULL, MAVLINK_TYPE_UINT8_T, 0, 7, offsetof(mavlink_serial_udb_extra_f4_t, sue_ALTITUDEHOLD_STABILIZED) }, \
{ "sue_ALTITUDEHOLD_WAYPOINT", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_serial_udb_extra_f4_t, sue_ALTITUDEHOLD_WAYPOINT) }, \
{ "sue_RACING_MODE", NULL, MAVLINK_TYPE_UINT8_T, 0, 9, offsetof(mavlink_serial_udb_extra_f4_t, sue_RACING_MODE) }, \
} \
}
/**
* @brief Pack a serial_udb_extra_f4 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 sue_ROLL_STABILIZATION_AILERONS Serial UDB Extra Roll Stabilization with Ailerons Enabled
* @param sue_ROLL_STABILIZATION_RUDDER Serial UDB Extra Roll Stabilization with Rudder Enabled
* @param sue_PITCH_STABILIZATION Serial UDB Extra Pitch Stabilization Enabled
* @param sue_YAW_STABILIZATION_RUDDER Serial UDB Extra Yaw Stabilization using Rudder Enabled
* @param sue_YAW_STABILIZATION_AILERON Serial UDB Extra Yaw Stabilization using Ailerons Enabled
* @param sue_AILERON_NAVIGATION Serial UDB Extra Navigation with Ailerons Enabled
* @param sue_RUDDER_NAVIGATION Serial UDB Extra Navigation with Rudder Enabled
* @param sue_ALTITUDEHOLD_STABILIZED Serial UDB Extra Type of Alitude Hold when in Stabilized Mode
* @param sue_ALTITUDEHOLD_WAYPOINT Serial UDB Extra Type of Alitude Hold when in Waypoint Mode
* @param sue_RACING_MODE Serial UDB Extra Firmware racing mode enabled
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f4_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint8_t sue_ROLL_STABILIZATION_AILERONS, uint8_t sue_ROLL_STABILIZATION_RUDDER, uint8_t sue_PITCH_STABILIZATION, uint8_t sue_YAW_STABILIZATION_RUDDER, uint8_t sue_YAW_STABILIZATION_AILERON, uint8_t sue_AILERON_NAVIGATION, uint8_t sue_RUDDER_NAVIGATION, uint8_t sue_ALTITUDEHOLD_STABILIZED, uint8_t sue_ALTITUDEHOLD_WAYPOINT, uint8_t sue_RACING_MODE)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[10];
_mav_put_uint8_t(buf, 0, sue_ROLL_STABILIZATION_AILERONS);
_mav_put_uint8_t(buf, 1, sue_ROLL_STABILIZATION_RUDDER);
_mav_put_uint8_t(buf, 2, sue_PITCH_STABILIZATION);
_mav_put_uint8_t(buf, 3, sue_YAW_STABILIZATION_RUDDER);
_mav_put_uint8_t(buf, 4, sue_YAW_STABILIZATION_AILERON);
_mav_put_uint8_t(buf, 5, sue_AILERON_NAVIGATION);
_mav_put_uint8_t(buf, 6, sue_RUDDER_NAVIGATION);
_mav_put_uint8_t(buf, 7, sue_ALTITUDEHOLD_STABILIZED);
_mav_put_uint8_t(buf, 8, sue_ALTITUDEHOLD_WAYPOINT);
_mav_put_uint8_t(buf, 9, sue_RACING_MODE);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 10);
#else
mavlink_serial_udb_extra_f4_t packet;
packet.sue_ROLL_STABILIZATION_AILERONS = sue_ROLL_STABILIZATION_AILERONS;
packet.sue_ROLL_STABILIZATION_RUDDER = sue_ROLL_STABILIZATION_RUDDER;
packet.sue_PITCH_STABILIZATION = sue_PITCH_STABILIZATION;
packet.sue_YAW_STABILIZATION_RUDDER = sue_YAW_STABILIZATION_RUDDER;
packet.sue_YAW_STABILIZATION_AILERON = sue_YAW_STABILIZATION_AILERON;
packet.sue_AILERON_NAVIGATION = sue_AILERON_NAVIGATION;
packet.sue_RUDDER_NAVIGATION = sue_RUDDER_NAVIGATION;
packet.sue_ALTITUDEHOLD_STABILIZED = sue_ALTITUDEHOLD_STABILIZED;
packet.sue_ALTITUDEHOLD_WAYPOINT = sue_ALTITUDEHOLD_WAYPOINT;
packet.sue_RACING_MODE = sue_RACING_MODE;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 10);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F4;
return mavlink_finalize_message(msg, system_id, component_id, 10, 191);
}
/**
* @brief Pack a serial_udb_extra_f4 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param sue_ROLL_STABILIZATION_AILERONS Serial UDB Extra Roll Stabilization with Ailerons Enabled
* @param sue_ROLL_STABILIZATION_RUDDER Serial UDB Extra Roll Stabilization with Rudder Enabled
* @param sue_PITCH_STABILIZATION Serial UDB Extra Pitch Stabilization Enabled
* @param sue_YAW_STABILIZATION_RUDDER Serial UDB Extra Yaw Stabilization using Rudder Enabled
* @param sue_YAW_STABILIZATION_AILERON Serial UDB Extra Yaw Stabilization using Ailerons Enabled
* @param sue_AILERON_NAVIGATION Serial UDB Extra Navigation with Ailerons Enabled
* @param sue_RUDDER_NAVIGATION Serial UDB Extra Navigation with Rudder Enabled
* @param sue_ALTITUDEHOLD_STABILIZED Serial UDB Extra Type of Alitude Hold when in Stabilized Mode
* @param sue_ALTITUDEHOLD_WAYPOINT Serial UDB Extra Type of Alitude Hold when in Waypoint Mode
* @param sue_RACING_MODE Serial UDB Extra Firmware racing mode enabled
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f4_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint8_t sue_ROLL_STABILIZATION_AILERONS,uint8_t sue_ROLL_STABILIZATION_RUDDER,uint8_t sue_PITCH_STABILIZATION,uint8_t sue_YAW_STABILIZATION_RUDDER,uint8_t sue_YAW_STABILIZATION_AILERON,uint8_t sue_AILERON_NAVIGATION,uint8_t sue_RUDDER_NAVIGATION,uint8_t sue_ALTITUDEHOLD_STABILIZED,uint8_t sue_ALTITUDEHOLD_WAYPOINT,uint8_t sue_RACING_MODE)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[10];
_mav_put_uint8_t(buf, 0, sue_ROLL_STABILIZATION_AILERONS);
_mav_put_uint8_t(buf, 1, sue_ROLL_STABILIZATION_RUDDER);
_mav_put_uint8_t(buf, 2, sue_PITCH_STABILIZATION);
_mav_put_uint8_t(buf, 3, sue_YAW_STABILIZATION_RUDDER);
_mav_put_uint8_t(buf, 4, sue_YAW_STABILIZATION_AILERON);
_mav_put_uint8_t(buf, 5, sue_AILERON_NAVIGATION);
_mav_put_uint8_t(buf, 6, sue_RUDDER_NAVIGATION);
_mav_put_uint8_t(buf, 7, sue_ALTITUDEHOLD_STABILIZED);
_mav_put_uint8_t(buf, 8, sue_ALTITUDEHOLD_WAYPOINT);
_mav_put_uint8_t(buf, 9, sue_RACING_MODE);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 10);
#else
mavlink_serial_udb_extra_f4_t packet;
packet.sue_ROLL_STABILIZATION_AILERONS = sue_ROLL_STABILIZATION_AILERONS;
packet.sue_ROLL_STABILIZATION_RUDDER = sue_ROLL_STABILIZATION_RUDDER;
packet.sue_PITCH_STABILIZATION = sue_PITCH_STABILIZATION;
packet.sue_YAW_STABILIZATION_RUDDER = sue_YAW_STABILIZATION_RUDDER;
packet.sue_YAW_STABILIZATION_AILERON = sue_YAW_STABILIZATION_AILERON;
packet.sue_AILERON_NAVIGATION = sue_AILERON_NAVIGATION;
packet.sue_RUDDER_NAVIGATION = sue_RUDDER_NAVIGATION;
packet.sue_ALTITUDEHOLD_STABILIZED = sue_ALTITUDEHOLD_STABILIZED;
packet.sue_ALTITUDEHOLD_WAYPOINT = sue_ALTITUDEHOLD_WAYPOINT;
packet.sue_RACING_MODE = sue_RACING_MODE;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 10);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F4;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 10, 191);
}
/**
* @brief Encode a serial_udb_extra_f4 struct into a 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 serial_udb_extra_f4 C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f4_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_serial_udb_extra_f4_t* serial_udb_extra_f4)
{
return mavlink_msg_serial_udb_extra_f4_pack(system_id, component_id, msg, serial_udb_extra_f4->sue_ROLL_STABILIZATION_AILERONS, serial_udb_extra_f4->sue_ROLL_STABILIZATION_RUDDER, serial_udb_extra_f4->sue_PITCH_STABILIZATION, serial_udb_extra_f4->sue_YAW_STABILIZATION_RUDDER, serial_udb_extra_f4->sue_YAW_STABILIZATION_AILERON, serial_udb_extra_f4->sue_AILERON_NAVIGATION, serial_udb_extra_f4->sue_RUDDER_NAVIGATION, serial_udb_extra_f4->sue_ALTITUDEHOLD_STABILIZED, serial_udb_extra_f4->sue_ALTITUDEHOLD_WAYPOINT, serial_udb_extra_f4->sue_RACING_MODE);
}
/**
* @brief Send a serial_udb_extra_f4 message
* @param chan MAVLink channel to send the message
*
* @param sue_ROLL_STABILIZATION_AILERONS Serial UDB Extra Roll Stabilization with Ailerons Enabled
* @param sue_ROLL_STABILIZATION_RUDDER Serial UDB Extra Roll Stabilization with Rudder Enabled
* @param sue_PITCH_STABILIZATION Serial UDB Extra Pitch Stabilization Enabled
* @param sue_YAW_STABILIZATION_RUDDER Serial UDB Extra Yaw Stabilization using Rudder Enabled
* @param sue_YAW_STABILIZATION_AILERON Serial UDB Extra Yaw Stabilization using Ailerons Enabled
* @param sue_AILERON_NAVIGATION Serial UDB Extra Navigation with Ailerons Enabled
* @param sue_RUDDER_NAVIGATION Serial UDB Extra Navigation with Rudder Enabled
* @param sue_ALTITUDEHOLD_STABILIZED Serial UDB Extra Type of Alitude Hold when in Stabilized Mode
* @param sue_ALTITUDEHOLD_WAYPOINT Serial UDB Extra Type of Alitude Hold when in Waypoint Mode
* @param sue_RACING_MODE Serial UDB Extra Firmware racing mode enabled
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_serial_udb_extra_f4_send(mavlink_channel_t chan, uint8_t sue_ROLL_STABILIZATION_AILERONS, uint8_t sue_ROLL_STABILIZATION_RUDDER, uint8_t sue_PITCH_STABILIZATION, uint8_t sue_YAW_STABILIZATION_RUDDER, uint8_t sue_YAW_STABILIZATION_AILERON, uint8_t sue_AILERON_NAVIGATION, uint8_t sue_RUDDER_NAVIGATION, uint8_t sue_ALTITUDEHOLD_STABILIZED, uint8_t sue_ALTITUDEHOLD_WAYPOINT, uint8_t sue_RACING_MODE)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[10];
_mav_put_uint8_t(buf, 0, sue_ROLL_STABILIZATION_AILERONS);
_mav_put_uint8_t(buf, 1, sue_ROLL_STABILIZATION_RUDDER);
_mav_put_uint8_t(buf, 2, sue_PITCH_STABILIZATION);
_mav_put_uint8_t(buf, 3, sue_YAW_STABILIZATION_RUDDER);
_mav_put_uint8_t(buf, 4, sue_YAW_STABILIZATION_AILERON);
_mav_put_uint8_t(buf, 5, sue_AILERON_NAVIGATION);
_mav_put_uint8_t(buf, 6, sue_RUDDER_NAVIGATION);
_mav_put_uint8_t(buf, 7, sue_ALTITUDEHOLD_STABILIZED);
_mav_put_uint8_t(buf, 8, sue_ALTITUDEHOLD_WAYPOINT);
_mav_put_uint8_t(buf, 9, sue_RACING_MODE);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F4, buf, 10, 191);
#else
mavlink_serial_udb_extra_f4_t packet;
packet.sue_ROLL_STABILIZATION_AILERONS = sue_ROLL_STABILIZATION_AILERONS;
packet.sue_ROLL_STABILIZATION_RUDDER = sue_ROLL_STABILIZATION_RUDDER;
packet.sue_PITCH_STABILIZATION = sue_PITCH_STABILIZATION;
packet.sue_YAW_STABILIZATION_RUDDER = sue_YAW_STABILIZATION_RUDDER;
packet.sue_YAW_STABILIZATION_AILERON = sue_YAW_STABILIZATION_AILERON;
packet.sue_AILERON_NAVIGATION = sue_AILERON_NAVIGATION;
packet.sue_RUDDER_NAVIGATION = sue_RUDDER_NAVIGATION;
packet.sue_ALTITUDEHOLD_STABILIZED = sue_ALTITUDEHOLD_STABILIZED;
packet.sue_ALTITUDEHOLD_WAYPOINT = sue_ALTITUDEHOLD_WAYPOINT;
packet.sue_RACING_MODE = sue_RACING_MODE;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F4, (const char *)&packet, 10, 191);
#endif
}
#endif
// MESSAGE SERIAL_UDB_EXTRA_F4 UNPACKING
/**
* @brief Get field sue_ROLL_STABILIZATION_AILERONS from serial_udb_extra_f4 message
*
* @return Serial UDB Extra Roll Stabilization with Ailerons Enabled
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f4_get_sue_ROLL_STABILIZATION_AILERONS(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 0);
}
/**
* @brief Get field sue_ROLL_STABILIZATION_RUDDER from serial_udb_extra_f4 message
*
* @return Serial UDB Extra Roll Stabilization with Rudder Enabled
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f4_get_sue_ROLL_STABILIZATION_RUDDER(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 1);
}
/**
* @brief Get field sue_PITCH_STABILIZATION from serial_udb_extra_f4 message
*
* @return Serial UDB Extra Pitch Stabilization Enabled
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f4_get_sue_PITCH_STABILIZATION(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 2);
}
/**
* @brief Get field sue_YAW_STABILIZATION_RUDDER from serial_udb_extra_f4 message
*
* @return Serial UDB Extra Yaw Stabilization using Rudder Enabled
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f4_get_sue_YAW_STABILIZATION_RUDDER(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 3);
}
/**
* @brief Get field sue_YAW_STABILIZATION_AILERON from serial_udb_extra_f4 message
*
* @return Serial UDB Extra Yaw Stabilization using Ailerons Enabled
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f4_get_sue_YAW_STABILIZATION_AILERON(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 4);
}
/**
* @brief Get field sue_AILERON_NAVIGATION from serial_udb_extra_f4 message
*
* @return Serial UDB Extra Navigation with Ailerons Enabled
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f4_get_sue_AILERON_NAVIGATION(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 5);
}
/**
* @brief Get field sue_RUDDER_NAVIGATION from serial_udb_extra_f4 message
*
* @return Serial UDB Extra Navigation with Rudder Enabled
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f4_get_sue_RUDDER_NAVIGATION(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 6);
}
/**
* @brief Get field sue_ALTITUDEHOLD_STABILIZED from serial_udb_extra_f4 message
*
* @return Serial UDB Extra Type of Alitude Hold when in Stabilized Mode
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f4_get_sue_ALTITUDEHOLD_STABILIZED(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 7);
}
/**
* @brief Get field sue_ALTITUDEHOLD_WAYPOINT from serial_udb_extra_f4 message
*
* @return Serial UDB Extra Type of Alitude Hold when in Waypoint Mode
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f4_get_sue_ALTITUDEHOLD_WAYPOINT(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 8);
}
/**
* @brief Get field sue_RACING_MODE from serial_udb_extra_f4 message
*
* @return Serial UDB Extra Firmware racing mode enabled
*/
static inline uint8_t mavlink_msg_serial_udb_extra_f4_get_sue_RACING_MODE(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 9);
}
/**
* @brief Decode a serial_udb_extra_f4 message into a struct
*
* @param msg The message to decode
* @param serial_udb_extra_f4 C-struct to decode the message contents into
*/
static inline void mavlink_msg_serial_udb_extra_f4_decode(const mavlink_message_t* msg, mavlink_serial_udb_extra_f4_t* serial_udb_extra_f4)
{
#if MAVLINK_NEED_BYTE_SWAP
serial_udb_extra_f4->sue_ROLL_STABILIZATION_AILERONS = mavlink_msg_serial_udb_extra_f4_get_sue_ROLL_STABILIZATION_AILERONS(msg);
serial_udb_extra_f4->sue_ROLL_STABILIZATION_RUDDER = mavlink_msg_serial_udb_extra_f4_get_sue_ROLL_STABILIZATION_RUDDER(msg);
serial_udb_extra_f4->sue_PITCH_STABILIZATION = mavlink_msg_serial_udb_extra_f4_get_sue_PITCH_STABILIZATION(msg);
serial_udb_extra_f4->sue_YAW_STABILIZATION_RUDDER = mavlink_msg_serial_udb_extra_f4_get_sue_YAW_STABILIZATION_RUDDER(msg);
serial_udb_extra_f4->sue_YAW_STABILIZATION_AILERON = mavlink_msg_serial_udb_extra_f4_get_sue_YAW_STABILIZATION_AILERON(msg);
serial_udb_extra_f4->sue_AILERON_NAVIGATION = mavlink_msg_serial_udb_extra_f4_get_sue_AILERON_NAVIGATION(msg);
serial_udb_extra_f4->sue_RUDDER_NAVIGATION = mavlink_msg_serial_udb_extra_f4_get_sue_RUDDER_NAVIGATION(msg);
serial_udb_extra_f4->sue_ALTITUDEHOLD_STABILIZED = mavlink_msg_serial_udb_extra_f4_get_sue_ALTITUDEHOLD_STABILIZED(msg);
serial_udb_extra_f4->sue_ALTITUDEHOLD_WAYPOINT = mavlink_msg_serial_udb_extra_f4_get_sue_ALTITUDEHOLD_WAYPOINT(msg);
serial_udb_extra_f4->sue_RACING_MODE = mavlink_msg_serial_udb_extra_f4_get_sue_RACING_MODE(msg);
#else
memcpy(serial_udb_extra_f4, _MAV_PAYLOAD(msg), 10);
#endif
}
@@ -0,0 +1,254 @@
// MESSAGE SERIAL_UDB_EXTRA_F5 PACKING
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F5 173
typedef struct __mavlink_serial_udb_extra_f5_t
{
float sue_YAWKP_AILERON; ///< Serial UDB YAWKP_AILERON Gain for Proporional control of navigation
float sue_YAWKD_AILERON; ///< Serial UDB YAWKD_AILERON Gain for Rate control of navigation
float sue_ROLLKP; ///< Serial UDB Extra ROLLKP Gain for Proportional control of roll stabilization
float sue_ROLLKD; ///< Serial UDB Extra ROLLKD Gain for Rate control of roll stabilization
float sue_YAW_STABILIZATION_AILERON; ///< YAW_STABILIZATION_AILERON Proportional control
float sue_AILERON_BOOST; ///< Gain For Boosting Manual Aileron control When Plane Stabilized
} mavlink_serial_udb_extra_f5_t;
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F5_LEN 24
#define MAVLINK_MSG_ID_173_LEN 24
#define MAVLINK_MESSAGE_INFO_SERIAL_UDB_EXTRA_F5 { \
"SERIAL_UDB_EXTRA_F5", \
6, \
{ { "sue_YAWKP_AILERON", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_serial_udb_extra_f5_t, sue_YAWKP_AILERON) }, \
{ "sue_YAWKD_AILERON", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_serial_udb_extra_f5_t, sue_YAWKD_AILERON) }, \
{ "sue_ROLLKP", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_serial_udb_extra_f5_t, sue_ROLLKP) }, \
{ "sue_ROLLKD", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_serial_udb_extra_f5_t, sue_ROLLKD) }, \
{ "sue_YAW_STABILIZATION_AILERON", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_serial_udb_extra_f5_t, sue_YAW_STABILIZATION_AILERON) }, \
{ "sue_AILERON_BOOST", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_serial_udb_extra_f5_t, sue_AILERON_BOOST) }, \
} \
}
/**
* @brief Pack a serial_udb_extra_f5 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 sue_YAWKP_AILERON Serial UDB YAWKP_AILERON Gain for Proporional control of navigation
* @param sue_YAWKD_AILERON Serial UDB YAWKD_AILERON Gain for Rate control of navigation
* @param sue_ROLLKP Serial UDB Extra ROLLKP Gain for Proportional control of roll stabilization
* @param sue_ROLLKD Serial UDB Extra ROLLKD Gain for Rate control of roll stabilization
* @param sue_YAW_STABILIZATION_AILERON YAW_STABILIZATION_AILERON Proportional control
* @param sue_AILERON_BOOST Gain For Boosting Manual Aileron control When Plane Stabilized
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f5_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
float sue_YAWKP_AILERON, float sue_YAWKD_AILERON, float sue_ROLLKP, float sue_ROLLKD, float sue_YAW_STABILIZATION_AILERON, float sue_AILERON_BOOST)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[24];
_mav_put_float(buf, 0, sue_YAWKP_AILERON);
_mav_put_float(buf, 4, sue_YAWKD_AILERON);
_mav_put_float(buf, 8, sue_ROLLKP);
_mav_put_float(buf, 12, sue_ROLLKD);
_mav_put_float(buf, 16, sue_YAW_STABILIZATION_AILERON);
_mav_put_float(buf, 20, sue_AILERON_BOOST);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 24);
#else
mavlink_serial_udb_extra_f5_t packet;
packet.sue_YAWKP_AILERON = sue_YAWKP_AILERON;
packet.sue_YAWKD_AILERON = sue_YAWKD_AILERON;
packet.sue_ROLLKP = sue_ROLLKP;
packet.sue_ROLLKD = sue_ROLLKD;
packet.sue_YAW_STABILIZATION_AILERON = sue_YAW_STABILIZATION_AILERON;
packet.sue_AILERON_BOOST = sue_AILERON_BOOST;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 24);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F5;
return mavlink_finalize_message(msg, system_id, component_id, 24, 121);
}
/**
* @brief Pack a serial_udb_extra_f5 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param sue_YAWKP_AILERON Serial UDB YAWKP_AILERON Gain for Proporional control of navigation
* @param sue_YAWKD_AILERON Serial UDB YAWKD_AILERON Gain for Rate control of navigation
* @param sue_ROLLKP Serial UDB Extra ROLLKP Gain for Proportional control of roll stabilization
* @param sue_ROLLKD Serial UDB Extra ROLLKD Gain for Rate control of roll stabilization
* @param sue_YAW_STABILIZATION_AILERON YAW_STABILIZATION_AILERON Proportional control
* @param sue_AILERON_BOOST Gain For Boosting Manual Aileron control When Plane Stabilized
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f5_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
float sue_YAWKP_AILERON,float sue_YAWKD_AILERON,float sue_ROLLKP,float sue_ROLLKD,float sue_YAW_STABILIZATION_AILERON,float sue_AILERON_BOOST)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[24];
_mav_put_float(buf, 0, sue_YAWKP_AILERON);
_mav_put_float(buf, 4, sue_YAWKD_AILERON);
_mav_put_float(buf, 8, sue_ROLLKP);
_mav_put_float(buf, 12, sue_ROLLKD);
_mav_put_float(buf, 16, sue_YAW_STABILIZATION_AILERON);
_mav_put_float(buf, 20, sue_AILERON_BOOST);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 24);
#else
mavlink_serial_udb_extra_f5_t packet;
packet.sue_YAWKP_AILERON = sue_YAWKP_AILERON;
packet.sue_YAWKD_AILERON = sue_YAWKD_AILERON;
packet.sue_ROLLKP = sue_ROLLKP;
packet.sue_ROLLKD = sue_ROLLKD;
packet.sue_YAW_STABILIZATION_AILERON = sue_YAW_STABILIZATION_AILERON;
packet.sue_AILERON_BOOST = sue_AILERON_BOOST;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 24);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F5;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 24, 121);
}
/**
* @brief Encode a serial_udb_extra_f5 struct into a 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 serial_udb_extra_f5 C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f5_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_serial_udb_extra_f5_t* serial_udb_extra_f5)
{
return mavlink_msg_serial_udb_extra_f5_pack(system_id, component_id, msg, serial_udb_extra_f5->sue_YAWKP_AILERON, serial_udb_extra_f5->sue_YAWKD_AILERON, serial_udb_extra_f5->sue_ROLLKP, serial_udb_extra_f5->sue_ROLLKD, serial_udb_extra_f5->sue_YAW_STABILIZATION_AILERON, serial_udb_extra_f5->sue_AILERON_BOOST);
}
/**
* @brief Send a serial_udb_extra_f5 message
* @param chan MAVLink channel to send the message
*
* @param sue_YAWKP_AILERON Serial UDB YAWKP_AILERON Gain for Proporional control of navigation
* @param sue_YAWKD_AILERON Serial UDB YAWKD_AILERON Gain for Rate control of navigation
* @param sue_ROLLKP Serial UDB Extra ROLLKP Gain for Proportional control of roll stabilization
* @param sue_ROLLKD Serial UDB Extra ROLLKD Gain for Rate control of roll stabilization
* @param sue_YAW_STABILIZATION_AILERON YAW_STABILIZATION_AILERON Proportional control
* @param sue_AILERON_BOOST Gain For Boosting Manual Aileron control When Plane Stabilized
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_serial_udb_extra_f5_send(mavlink_channel_t chan, float sue_YAWKP_AILERON, float sue_YAWKD_AILERON, float sue_ROLLKP, float sue_ROLLKD, float sue_YAW_STABILIZATION_AILERON, float sue_AILERON_BOOST)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[24];
_mav_put_float(buf, 0, sue_YAWKP_AILERON);
_mav_put_float(buf, 4, sue_YAWKD_AILERON);
_mav_put_float(buf, 8, sue_ROLLKP);
_mav_put_float(buf, 12, sue_ROLLKD);
_mav_put_float(buf, 16, sue_YAW_STABILIZATION_AILERON);
_mav_put_float(buf, 20, sue_AILERON_BOOST);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F5, buf, 24, 121);
#else
mavlink_serial_udb_extra_f5_t packet;
packet.sue_YAWKP_AILERON = sue_YAWKP_AILERON;
packet.sue_YAWKD_AILERON = sue_YAWKD_AILERON;
packet.sue_ROLLKP = sue_ROLLKP;
packet.sue_ROLLKD = sue_ROLLKD;
packet.sue_YAW_STABILIZATION_AILERON = sue_YAW_STABILIZATION_AILERON;
packet.sue_AILERON_BOOST = sue_AILERON_BOOST;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F5, (const char *)&packet, 24, 121);
#endif
}
#endif
// MESSAGE SERIAL_UDB_EXTRA_F5 UNPACKING
/**
* @brief Get field sue_YAWKP_AILERON from serial_udb_extra_f5 message
*
* @return Serial UDB YAWKP_AILERON Gain for Proporional control of navigation
*/
static inline float mavlink_msg_serial_udb_extra_f5_get_sue_YAWKP_AILERON(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 0);
}
/**
* @brief Get field sue_YAWKD_AILERON from serial_udb_extra_f5 message
*
* @return Serial UDB YAWKD_AILERON Gain for Rate control of navigation
*/
static inline float mavlink_msg_serial_udb_extra_f5_get_sue_YAWKD_AILERON(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 4);
}
/**
* @brief Get field sue_ROLLKP from serial_udb_extra_f5 message
*
* @return Serial UDB Extra ROLLKP Gain for Proportional control of roll stabilization
*/
static inline float mavlink_msg_serial_udb_extra_f5_get_sue_ROLLKP(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field sue_ROLLKD from serial_udb_extra_f5 message
*
* @return Serial UDB Extra ROLLKD Gain for Rate control of roll stabilization
*/
static inline float mavlink_msg_serial_udb_extra_f5_get_sue_ROLLKD(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Get field sue_YAW_STABILIZATION_AILERON from serial_udb_extra_f5 message
*
* @return YAW_STABILIZATION_AILERON Proportional control
*/
static inline float mavlink_msg_serial_udb_extra_f5_get_sue_YAW_STABILIZATION_AILERON(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Get field sue_AILERON_BOOST from serial_udb_extra_f5 message
*
* @return Gain For Boosting Manual Aileron control When Plane Stabilized
*/
static inline float mavlink_msg_serial_udb_extra_f5_get_sue_AILERON_BOOST(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 20);
}
/**
* @brief Decode a serial_udb_extra_f5 message into a struct
*
* @param msg The message to decode
* @param serial_udb_extra_f5 C-struct to decode the message contents into
*/
static inline void mavlink_msg_serial_udb_extra_f5_decode(const mavlink_message_t* msg, mavlink_serial_udb_extra_f5_t* serial_udb_extra_f5)
{
#if MAVLINK_NEED_BYTE_SWAP
serial_udb_extra_f5->sue_YAWKP_AILERON = mavlink_msg_serial_udb_extra_f5_get_sue_YAWKP_AILERON(msg);
serial_udb_extra_f5->sue_YAWKD_AILERON = mavlink_msg_serial_udb_extra_f5_get_sue_YAWKD_AILERON(msg);
serial_udb_extra_f5->sue_ROLLKP = mavlink_msg_serial_udb_extra_f5_get_sue_ROLLKP(msg);
serial_udb_extra_f5->sue_ROLLKD = mavlink_msg_serial_udb_extra_f5_get_sue_ROLLKD(msg);
serial_udb_extra_f5->sue_YAW_STABILIZATION_AILERON = mavlink_msg_serial_udb_extra_f5_get_sue_YAW_STABILIZATION_AILERON(msg);
serial_udb_extra_f5->sue_AILERON_BOOST = mavlink_msg_serial_udb_extra_f5_get_sue_AILERON_BOOST(msg);
#else
memcpy(serial_udb_extra_f5, _MAV_PAYLOAD(msg), 24);
#endif
}
@@ -0,0 +1,232 @@
// MESSAGE SERIAL_UDB_EXTRA_F6 PACKING
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F6 174
typedef struct __mavlink_serial_udb_extra_f6_t
{
float sue_PITCHGAIN; ///< Serial UDB Extra PITCHGAIN Proportional Control
float sue_PITCHKD; ///< Serial UDB Extra Pitch Rate Control
float sue_RUDDER_ELEV_MIX; ///< Serial UDB Extra Rudder to Elevator Mix
float sue_ROLL_ELEV_MIX; ///< Serial UDB Extra Roll to Elevator Mix
float sue_ELEVATOR_BOOST; ///< Gain For Boosting Manual Elevator control When Plane Stabilized
} mavlink_serial_udb_extra_f6_t;
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F6_LEN 20
#define MAVLINK_MSG_ID_174_LEN 20
#define MAVLINK_MESSAGE_INFO_SERIAL_UDB_EXTRA_F6 { \
"SERIAL_UDB_EXTRA_F6", \
5, \
{ { "sue_PITCHGAIN", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_serial_udb_extra_f6_t, sue_PITCHGAIN) }, \
{ "sue_PITCHKD", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_serial_udb_extra_f6_t, sue_PITCHKD) }, \
{ "sue_RUDDER_ELEV_MIX", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_serial_udb_extra_f6_t, sue_RUDDER_ELEV_MIX) }, \
{ "sue_ROLL_ELEV_MIX", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_serial_udb_extra_f6_t, sue_ROLL_ELEV_MIX) }, \
{ "sue_ELEVATOR_BOOST", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_serial_udb_extra_f6_t, sue_ELEVATOR_BOOST) }, \
} \
}
/**
* @brief Pack a serial_udb_extra_f6 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 sue_PITCHGAIN Serial UDB Extra PITCHGAIN Proportional Control
* @param sue_PITCHKD Serial UDB Extra Pitch Rate Control
* @param sue_RUDDER_ELEV_MIX Serial UDB Extra Rudder to Elevator Mix
* @param sue_ROLL_ELEV_MIX Serial UDB Extra Roll to Elevator Mix
* @param sue_ELEVATOR_BOOST Gain For Boosting Manual Elevator control When Plane Stabilized
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f6_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
float sue_PITCHGAIN, float sue_PITCHKD, float sue_RUDDER_ELEV_MIX, float sue_ROLL_ELEV_MIX, float sue_ELEVATOR_BOOST)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[20];
_mav_put_float(buf, 0, sue_PITCHGAIN);
_mav_put_float(buf, 4, sue_PITCHKD);
_mav_put_float(buf, 8, sue_RUDDER_ELEV_MIX);
_mav_put_float(buf, 12, sue_ROLL_ELEV_MIX);
_mav_put_float(buf, 16, sue_ELEVATOR_BOOST);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
#else
mavlink_serial_udb_extra_f6_t packet;
packet.sue_PITCHGAIN = sue_PITCHGAIN;
packet.sue_PITCHKD = sue_PITCHKD;
packet.sue_RUDDER_ELEV_MIX = sue_RUDDER_ELEV_MIX;
packet.sue_ROLL_ELEV_MIX = sue_ROLL_ELEV_MIX;
packet.sue_ELEVATOR_BOOST = sue_ELEVATOR_BOOST;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F6;
return mavlink_finalize_message(msg, system_id, component_id, 20, 54);
}
/**
* @brief Pack a serial_udb_extra_f6 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param sue_PITCHGAIN Serial UDB Extra PITCHGAIN Proportional Control
* @param sue_PITCHKD Serial UDB Extra Pitch Rate Control
* @param sue_RUDDER_ELEV_MIX Serial UDB Extra Rudder to Elevator Mix
* @param sue_ROLL_ELEV_MIX Serial UDB Extra Roll to Elevator Mix
* @param sue_ELEVATOR_BOOST Gain For Boosting Manual Elevator control When Plane Stabilized
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f6_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
float sue_PITCHGAIN,float sue_PITCHKD,float sue_RUDDER_ELEV_MIX,float sue_ROLL_ELEV_MIX,float sue_ELEVATOR_BOOST)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[20];
_mav_put_float(buf, 0, sue_PITCHGAIN);
_mav_put_float(buf, 4, sue_PITCHKD);
_mav_put_float(buf, 8, sue_RUDDER_ELEV_MIX);
_mav_put_float(buf, 12, sue_ROLL_ELEV_MIX);
_mav_put_float(buf, 16, sue_ELEVATOR_BOOST);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
#else
mavlink_serial_udb_extra_f6_t packet;
packet.sue_PITCHGAIN = sue_PITCHGAIN;
packet.sue_PITCHKD = sue_PITCHKD;
packet.sue_RUDDER_ELEV_MIX = sue_RUDDER_ELEV_MIX;
packet.sue_ROLL_ELEV_MIX = sue_ROLL_ELEV_MIX;
packet.sue_ELEVATOR_BOOST = sue_ELEVATOR_BOOST;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F6;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 20, 54);
}
/**
* @brief Encode a serial_udb_extra_f6 struct into a 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 serial_udb_extra_f6 C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f6_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_serial_udb_extra_f6_t* serial_udb_extra_f6)
{
return mavlink_msg_serial_udb_extra_f6_pack(system_id, component_id, msg, serial_udb_extra_f6->sue_PITCHGAIN, serial_udb_extra_f6->sue_PITCHKD, serial_udb_extra_f6->sue_RUDDER_ELEV_MIX, serial_udb_extra_f6->sue_ROLL_ELEV_MIX, serial_udb_extra_f6->sue_ELEVATOR_BOOST);
}
/**
* @brief Send a serial_udb_extra_f6 message
* @param chan MAVLink channel to send the message
*
* @param sue_PITCHGAIN Serial UDB Extra PITCHGAIN Proportional Control
* @param sue_PITCHKD Serial UDB Extra Pitch Rate Control
* @param sue_RUDDER_ELEV_MIX Serial UDB Extra Rudder to Elevator Mix
* @param sue_ROLL_ELEV_MIX Serial UDB Extra Roll to Elevator Mix
* @param sue_ELEVATOR_BOOST Gain For Boosting Manual Elevator control When Plane Stabilized
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_serial_udb_extra_f6_send(mavlink_channel_t chan, float sue_PITCHGAIN, float sue_PITCHKD, float sue_RUDDER_ELEV_MIX, float sue_ROLL_ELEV_MIX, float sue_ELEVATOR_BOOST)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[20];
_mav_put_float(buf, 0, sue_PITCHGAIN);
_mav_put_float(buf, 4, sue_PITCHKD);
_mav_put_float(buf, 8, sue_RUDDER_ELEV_MIX);
_mav_put_float(buf, 12, sue_ROLL_ELEV_MIX);
_mav_put_float(buf, 16, sue_ELEVATOR_BOOST);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F6, buf, 20, 54);
#else
mavlink_serial_udb_extra_f6_t packet;
packet.sue_PITCHGAIN = sue_PITCHGAIN;
packet.sue_PITCHKD = sue_PITCHKD;
packet.sue_RUDDER_ELEV_MIX = sue_RUDDER_ELEV_MIX;
packet.sue_ROLL_ELEV_MIX = sue_ROLL_ELEV_MIX;
packet.sue_ELEVATOR_BOOST = sue_ELEVATOR_BOOST;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F6, (const char *)&packet, 20, 54);
#endif
}
#endif
// MESSAGE SERIAL_UDB_EXTRA_F6 UNPACKING
/**
* @brief Get field sue_PITCHGAIN from serial_udb_extra_f6 message
*
* @return Serial UDB Extra PITCHGAIN Proportional Control
*/
static inline float mavlink_msg_serial_udb_extra_f6_get_sue_PITCHGAIN(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 0);
}
/**
* @brief Get field sue_PITCHKD from serial_udb_extra_f6 message
*
* @return Serial UDB Extra Pitch Rate Control
*/
static inline float mavlink_msg_serial_udb_extra_f6_get_sue_PITCHKD(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 4);
}
/**
* @brief Get field sue_RUDDER_ELEV_MIX from serial_udb_extra_f6 message
*
* @return Serial UDB Extra Rudder to Elevator Mix
*/
static inline float mavlink_msg_serial_udb_extra_f6_get_sue_RUDDER_ELEV_MIX(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field sue_ROLL_ELEV_MIX from serial_udb_extra_f6 message
*
* @return Serial UDB Extra Roll to Elevator Mix
*/
static inline float mavlink_msg_serial_udb_extra_f6_get_sue_ROLL_ELEV_MIX(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Get field sue_ELEVATOR_BOOST from serial_udb_extra_f6 message
*
* @return Gain For Boosting Manual Elevator control When Plane Stabilized
*/
static inline float mavlink_msg_serial_udb_extra_f6_get_sue_ELEVATOR_BOOST(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Decode a serial_udb_extra_f6 message into a struct
*
* @param msg The message to decode
* @param serial_udb_extra_f6 C-struct to decode the message contents into
*/
static inline void mavlink_msg_serial_udb_extra_f6_decode(const mavlink_message_t* msg, mavlink_serial_udb_extra_f6_t* serial_udb_extra_f6)
{
#if MAVLINK_NEED_BYTE_SWAP
serial_udb_extra_f6->sue_PITCHGAIN = mavlink_msg_serial_udb_extra_f6_get_sue_PITCHGAIN(msg);
serial_udb_extra_f6->sue_PITCHKD = mavlink_msg_serial_udb_extra_f6_get_sue_PITCHKD(msg);
serial_udb_extra_f6->sue_RUDDER_ELEV_MIX = mavlink_msg_serial_udb_extra_f6_get_sue_RUDDER_ELEV_MIX(msg);
serial_udb_extra_f6->sue_ROLL_ELEV_MIX = mavlink_msg_serial_udb_extra_f6_get_sue_ROLL_ELEV_MIX(msg);
serial_udb_extra_f6->sue_ELEVATOR_BOOST = mavlink_msg_serial_udb_extra_f6_get_sue_ELEVATOR_BOOST(msg);
#else
memcpy(serial_udb_extra_f6, _MAV_PAYLOAD(msg), 20);
#endif
}
@@ -0,0 +1,254 @@
// MESSAGE SERIAL_UDB_EXTRA_F7 PACKING
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F7 175
typedef struct __mavlink_serial_udb_extra_f7_t
{
float sue_YAWKP_RUDDER; ///< Serial UDB YAWKP_RUDDER Gain for Proporional control of navigation
float sue_YAWKD_RUDDER; ///< Serial UDB YAWKD_RUDDER Gain for Rate control of navigation
float sue_ROLLKP_RUDDER; ///< Serial UDB Extra ROLLKP_RUDDER Gain for Proportional control of roll stabilization
float sue_ROLLKD_RUDDER; ///< Serial UDB Extra ROLLKD_RUDDER Gain for Rate control of roll stabilization
float sue_RUDDER_BOOST; ///< SERIAL UDB EXTRA Rudder Boost Gain to Manual Control when stabilized
float sue_RTL_PITCH_DOWN; ///< Serial UDB Extra Return To Landing - Angle to Pitch Plane Down
} mavlink_serial_udb_extra_f7_t;
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F7_LEN 24
#define MAVLINK_MSG_ID_175_LEN 24
#define MAVLINK_MESSAGE_INFO_SERIAL_UDB_EXTRA_F7 { \
"SERIAL_UDB_EXTRA_F7", \
6, \
{ { "sue_YAWKP_RUDDER", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_serial_udb_extra_f7_t, sue_YAWKP_RUDDER) }, \
{ "sue_YAWKD_RUDDER", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_serial_udb_extra_f7_t, sue_YAWKD_RUDDER) }, \
{ "sue_ROLLKP_RUDDER", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_serial_udb_extra_f7_t, sue_ROLLKP_RUDDER) }, \
{ "sue_ROLLKD_RUDDER", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_serial_udb_extra_f7_t, sue_ROLLKD_RUDDER) }, \
{ "sue_RUDDER_BOOST", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_serial_udb_extra_f7_t, sue_RUDDER_BOOST) }, \
{ "sue_RTL_PITCH_DOWN", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_serial_udb_extra_f7_t, sue_RTL_PITCH_DOWN) }, \
} \
}
/**
* @brief Pack a serial_udb_extra_f7 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 sue_YAWKP_RUDDER Serial UDB YAWKP_RUDDER Gain for Proporional control of navigation
* @param sue_YAWKD_RUDDER Serial UDB YAWKD_RUDDER Gain for Rate control of navigation
* @param sue_ROLLKP_RUDDER Serial UDB Extra ROLLKP_RUDDER Gain for Proportional control of roll stabilization
* @param sue_ROLLKD_RUDDER Serial UDB Extra ROLLKD_RUDDER Gain for Rate control of roll stabilization
* @param sue_RUDDER_BOOST SERIAL UDB EXTRA Rudder Boost Gain to Manual Control when stabilized
* @param sue_RTL_PITCH_DOWN Serial UDB Extra Return To Landing - Angle to Pitch Plane Down
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f7_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
float sue_YAWKP_RUDDER, float sue_YAWKD_RUDDER, float sue_ROLLKP_RUDDER, float sue_ROLLKD_RUDDER, float sue_RUDDER_BOOST, float sue_RTL_PITCH_DOWN)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[24];
_mav_put_float(buf, 0, sue_YAWKP_RUDDER);
_mav_put_float(buf, 4, sue_YAWKD_RUDDER);
_mav_put_float(buf, 8, sue_ROLLKP_RUDDER);
_mav_put_float(buf, 12, sue_ROLLKD_RUDDER);
_mav_put_float(buf, 16, sue_RUDDER_BOOST);
_mav_put_float(buf, 20, sue_RTL_PITCH_DOWN);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 24);
#else
mavlink_serial_udb_extra_f7_t packet;
packet.sue_YAWKP_RUDDER = sue_YAWKP_RUDDER;
packet.sue_YAWKD_RUDDER = sue_YAWKD_RUDDER;
packet.sue_ROLLKP_RUDDER = sue_ROLLKP_RUDDER;
packet.sue_ROLLKD_RUDDER = sue_ROLLKD_RUDDER;
packet.sue_RUDDER_BOOST = sue_RUDDER_BOOST;
packet.sue_RTL_PITCH_DOWN = sue_RTL_PITCH_DOWN;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 24);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F7;
return mavlink_finalize_message(msg, system_id, component_id, 24, 171);
}
/**
* @brief Pack a serial_udb_extra_f7 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param sue_YAWKP_RUDDER Serial UDB YAWKP_RUDDER Gain for Proporional control of navigation
* @param sue_YAWKD_RUDDER Serial UDB YAWKD_RUDDER Gain for Rate control of navigation
* @param sue_ROLLKP_RUDDER Serial UDB Extra ROLLKP_RUDDER Gain for Proportional control of roll stabilization
* @param sue_ROLLKD_RUDDER Serial UDB Extra ROLLKD_RUDDER Gain for Rate control of roll stabilization
* @param sue_RUDDER_BOOST SERIAL UDB EXTRA Rudder Boost Gain to Manual Control when stabilized
* @param sue_RTL_PITCH_DOWN Serial UDB Extra Return To Landing - Angle to Pitch Plane Down
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f7_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
float sue_YAWKP_RUDDER,float sue_YAWKD_RUDDER,float sue_ROLLKP_RUDDER,float sue_ROLLKD_RUDDER,float sue_RUDDER_BOOST,float sue_RTL_PITCH_DOWN)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[24];
_mav_put_float(buf, 0, sue_YAWKP_RUDDER);
_mav_put_float(buf, 4, sue_YAWKD_RUDDER);
_mav_put_float(buf, 8, sue_ROLLKP_RUDDER);
_mav_put_float(buf, 12, sue_ROLLKD_RUDDER);
_mav_put_float(buf, 16, sue_RUDDER_BOOST);
_mav_put_float(buf, 20, sue_RTL_PITCH_DOWN);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 24);
#else
mavlink_serial_udb_extra_f7_t packet;
packet.sue_YAWKP_RUDDER = sue_YAWKP_RUDDER;
packet.sue_YAWKD_RUDDER = sue_YAWKD_RUDDER;
packet.sue_ROLLKP_RUDDER = sue_ROLLKP_RUDDER;
packet.sue_ROLLKD_RUDDER = sue_ROLLKD_RUDDER;
packet.sue_RUDDER_BOOST = sue_RUDDER_BOOST;
packet.sue_RTL_PITCH_DOWN = sue_RTL_PITCH_DOWN;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 24);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F7;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 24, 171);
}
/**
* @brief Encode a serial_udb_extra_f7 struct into a 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 serial_udb_extra_f7 C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f7_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_serial_udb_extra_f7_t* serial_udb_extra_f7)
{
return mavlink_msg_serial_udb_extra_f7_pack(system_id, component_id, msg, serial_udb_extra_f7->sue_YAWKP_RUDDER, serial_udb_extra_f7->sue_YAWKD_RUDDER, serial_udb_extra_f7->sue_ROLLKP_RUDDER, serial_udb_extra_f7->sue_ROLLKD_RUDDER, serial_udb_extra_f7->sue_RUDDER_BOOST, serial_udb_extra_f7->sue_RTL_PITCH_DOWN);
}
/**
* @brief Send a serial_udb_extra_f7 message
* @param chan MAVLink channel to send the message
*
* @param sue_YAWKP_RUDDER Serial UDB YAWKP_RUDDER Gain for Proporional control of navigation
* @param sue_YAWKD_RUDDER Serial UDB YAWKD_RUDDER Gain for Rate control of navigation
* @param sue_ROLLKP_RUDDER Serial UDB Extra ROLLKP_RUDDER Gain for Proportional control of roll stabilization
* @param sue_ROLLKD_RUDDER Serial UDB Extra ROLLKD_RUDDER Gain for Rate control of roll stabilization
* @param sue_RUDDER_BOOST SERIAL UDB EXTRA Rudder Boost Gain to Manual Control when stabilized
* @param sue_RTL_PITCH_DOWN Serial UDB Extra Return To Landing - Angle to Pitch Plane Down
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_serial_udb_extra_f7_send(mavlink_channel_t chan, float sue_YAWKP_RUDDER, float sue_YAWKD_RUDDER, float sue_ROLLKP_RUDDER, float sue_ROLLKD_RUDDER, float sue_RUDDER_BOOST, float sue_RTL_PITCH_DOWN)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[24];
_mav_put_float(buf, 0, sue_YAWKP_RUDDER);
_mav_put_float(buf, 4, sue_YAWKD_RUDDER);
_mav_put_float(buf, 8, sue_ROLLKP_RUDDER);
_mav_put_float(buf, 12, sue_ROLLKD_RUDDER);
_mav_put_float(buf, 16, sue_RUDDER_BOOST);
_mav_put_float(buf, 20, sue_RTL_PITCH_DOWN);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F7, buf, 24, 171);
#else
mavlink_serial_udb_extra_f7_t packet;
packet.sue_YAWKP_RUDDER = sue_YAWKP_RUDDER;
packet.sue_YAWKD_RUDDER = sue_YAWKD_RUDDER;
packet.sue_ROLLKP_RUDDER = sue_ROLLKP_RUDDER;
packet.sue_ROLLKD_RUDDER = sue_ROLLKD_RUDDER;
packet.sue_RUDDER_BOOST = sue_RUDDER_BOOST;
packet.sue_RTL_PITCH_DOWN = sue_RTL_PITCH_DOWN;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F7, (const char *)&packet, 24, 171);
#endif
}
#endif
// MESSAGE SERIAL_UDB_EXTRA_F7 UNPACKING
/**
* @brief Get field sue_YAWKP_RUDDER from serial_udb_extra_f7 message
*
* @return Serial UDB YAWKP_RUDDER Gain for Proporional control of navigation
*/
static inline float mavlink_msg_serial_udb_extra_f7_get_sue_YAWKP_RUDDER(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 0);
}
/**
* @brief Get field sue_YAWKD_RUDDER from serial_udb_extra_f7 message
*
* @return Serial UDB YAWKD_RUDDER Gain for Rate control of navigation
*/
static inline float mavlink_msg_serial_udb_extra_f7_get_sue_YAWKD_RUDDER(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 4);
}
/**
* @brief Get field sue_ROLLKP_RUDDER from serial_udb_extra_f7 message
*
* @return Serial UDB Extra ROLLKP_RUDDER Gain for Proportional control of roll stabilization
*/
static inline float mavlink_msg_serial_udb_extra_f7_get_sue_ROLLKP_RUDDER(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field sue_ROLLKD_RUDDER from serial_udb_extra_f7 message
*
* @return Serial UDB Extra ROLLKD_RUDDER Gain for Rate control of roll stabilization
*/
static inline float mavlink_msg_serial_udb_extra_f7_get_sue_ROLLKD_RUDDER(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Get field sue_RUDDER_BOOST from serial_udb_extra_f7 message
*
* @return SERIAL UDB EXTRA Rudder Boost Gain to Manual Control when stabilized
*/
static inline float mavlink_msg_serial_udb_extra_f7_get_sue_RUDDER_BOOST(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Get field sue_RTL_PITCH_DOWN from serial_udb_extra_f7 message
*
* @return Serial UDB Extra Return To Landing - Angle to Pitch Plane Down
*/
static inline float mavlink_msg_serial_udb_extra_f7_get_sue_RTL_PITCH_DOWN(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 20);
}
/**
* @brief Decode a serial_udb_extra_f7 message into a struct
*
* @param msg The message to decode
* @param serial_udb_extra_f7 C-struct to decode the message contents into
*/
static inline void mavlink_msg_serial_udb_extra_f7_decode(const mavlink_message_t* msg, mavlink_serial_udb_extra_f7_t* serial_udb_extra_f7)
{
#if MAVLINK_NEED_BYTE_SWAP
serial_udb_extra_f7->sue_YAWKP_RUDDER = mavlink_msg_serial_udb_extra_f7_get_sue_YAWKP_RUDDER(msg);
serial_udb_extra_f7->sue_YAWKD_RUDDER = mavlink_msg_serial_udb_extra_f7_get_sue_YAWKD_RUDDER(msg);
serial_udb_extra_f7->sue_ROLLKP_RUDDER = mavlink_msg_serial_udb_extra_f7_get_sue_ROLLKP_RUDDER(msg);
serial_udb_extra_f7->sue_ROLLKD_RUDDER = mavlink_msg_serial_udb_extra_f7_get_sue_ROLLKD_RUDDER(msg);
serial_udb_extra_f7->sue_RUDDER_BOOST = mavlink_msg_serial_udb_extra_f7_get_sue_RUDDER_BOOST(msg);
serial_udb_extra_f7->sue_RTL_PITCH_DOWN = mavlink_msg_serial_udb_extra_f7_get_sue_RTL_PITCH_DOWN(msg);
#else
memcpy(serial_udb_extra_f7, _MAV_PAYLOAD(msg), 24);
#endif
}
@@ -0,0 +1,276 @@
// MESSAGE SERIAL_UDB_EXTRA_F8 PACKING
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F8 176
typedef struct __mavlink_serial_udb_extra_f8_t
{
float sue_HEIGHT_TARGET_MAX; ///< Serial UDB Extra HEIGHT_TARGET_MAX
float sue_HEIGHT_TARGET_MIN; ///< Serial UDB Extra HEIGHT_TARGET_MIN
float sue_ALT_HOLD_THROTTLE_MIN; ///< Serial UDB Extra ALT_HOLD_THROTTLE_MIN
float sue_ALT_HOLD_THROTTLE_MAX; ///< Serial UDB Extra ALT_HOLD_THROTTLE_MAX
float sue_ALT_HOLD_PITCH_MIN; ///< Serial UDB Extra ALT_HOLD_PITCH_MIN
float sue_ALT_HOLD_PITCH_MAX; ///< Serial UDB Extra ALT_HOLD_PITCH_MAX
float sue_ALT_HOLD_PITCH_HIGH; ///< Serial UDB Extra ALT_HOLD_PITCH_HIGH
} mavlink_serial_udb_extra_f8_t;
#define MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F8_LEN 28
#define MAVLINK_MSG_ID_176_LEN 28
#define MAVLINK_MESSAGE_INFO_SERIAL_UDB_EXTRA_F8 { \
"SERIAL_UDB_EXTRA_F8", \
7, \
{ { "sue_HEIGHT_TARGET_MAX", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_serial_udb_extra_f8_t, sue_HEIGHT_TARGET_MAX) }, \
{ "sue_HEIGHT_TARGET_MIN", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_serial_udb_extra_f8_t, sue_HEIGHT_TARGET_MIN) }, \
{ "sue_ALT_HOLD_THROTTLE_MIN", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_serial_udb_extra_f8_t, sue_ALT_HOLD_THROTTLE_MIN) }, \
{ "sue_ALT_HOLD_THROTTLE_MAX", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_serial_udb_extra_f8_t, sue_ALT_HOLD_THROTTLE_MAX) }, \
{ "sue_ALT_HOLD_PITCH_MIN", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_serial_udb_extra_f8_t, sue_ALT_HOLD_PITCH_MIN) }, \
{ "sue_ALT_HOLD_PITCH_MAX", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_serial_udb_extra_f8_t, sue_ALT_HOLD_PITCH_MAX) }, \
{ "sue_ALT_HOLD_PITCH_HIGH", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_serial_udb_extra_f8_t, sue_ALT_HOLD_PITCH_HIGH) }, \
} \
}
/**
* @brief Pack a serial_udb_extra_f8 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 sue_HEIGHT_TARGET_MAX Serial UDB Extra HEIGHT_TARGET_MAX
* @param sue_HEIGHT_TARGET_MIN Serial UDB Extra HEIGHT_TARGET_MIN
* @param sue_ALT_HOLD_THROTTLE_MIN Serial UDB Extra ALT_HOLD_THROTTLE_MIN
* @param sue_ALT_HOLD_THROTTLE_MAX Serial UDB Extra ALT_HOLD_THROTTLE_MAX
* @param sue_ALT_HOLD_PITCH_MIN Serial UDB Extra ALT_HOLD_PITCH_MIN
* @param sue_ALT_HOLD_PITCH_MAX Serial UDB Extra ALT_HOLD_PITCH_MAX
* @param sue_ALT_HOLD_PITCH_HIGH Serial UDB Extra ALT_HOLD_PITCH_HIGH
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f8_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
float sue_HEIGHT_TARGET_MAX, float sue_HEIGHT_TARGET_MIN, float sue_ALT_HOLD_THROTTLE_MIN, float sue_ALT_HOLD_THROTTLE_MAX, float sue_ALT_HOLD_PITCH_MIN, float sue_ALT_HOLD_PITCH_MAX, float sue_ALT_HOLD_PITCH_HIGH)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[28];
_mav_put_float(buf, 0, sue_HEIGHT_TARGET_MAX);
_mav_put_float(buf, 4, sue_HEIGHT_TARGET_MIN);
_mav_put_float(buf, 8, sue_ALT_HOLD_THROTTLE_MIN);
_mav_put_float(buf, 12, sue_ALT_HOLD_THROTTLE_MAX);
_mav_put_float(buf, 16, sue_ALT_HOLD_PITCH_MIN);
_mav_put_float(buf, 20, sue_ALT_HOLD_PITCH_MAX);
_mav_put_float(buf, 24, sue_ALT_HOLD_PITCH_HIGH);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
#else
mavlink_serial_udb_extra_f8_t packet;
packet.sue_HEIGHT_TARGET_MAX = sue_HEIGHT_TARGET_MAX;
packet.sue_HEIGHT_TARGET_MIN = sue_HEIGHT_TARGET_MIN;
packet.sue_ALT_HOLD_THROTTLE_MIN = sue_ALT_HOLD_THROTTLE_MIN;
packet.sue_ALT_HOLD_THROTTLE_MAX = sue_ALT_HOLD_THROTTLE_MAX;
packet.sue_ALT_HOLD_PITCH_MIN = sue_ALT_HOLD_PITCH_MIN;
packet.sue_ALT_HOLD_PITCH_MAX = sue_ALT_HOLD_PITCH_MAX;
packet.sue_ALT_HOLD_PITCH_HIGH = sue_ALT_HOLD_PITCH_HIGH;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F8;
return mavlink_finalize_message(msg, system_id, component_id, 28, 142);
}
/**
* @brief Pack a serial_udb_extra_f8 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 was sent over
* @param msg The MAVLink message to compress the data into
* @param sue_HEIGHT_TARGET_MAX Serial UDB Extra HEIGHT_TARGET_MAX
* @param sue_HEIGHT_TARGET_MIN Serial UDB Extra HEIGHT_TARGET_MIN
* @param sue_ALT_HOLD_THROTTLE_MIN Serial UDB Extra ALT_HOLD_THROTTLE_MIN
* @param sue_ALT_HOLD_THROTTLE_MAX Serial UDB Extra ALT_HOLD_THROTTLE_MAX
* @param sue_ALT_HOLD_PITCH_MIN Serial UDB Extra ALT_HOLD_PITCH_MIN
* @param sue_ALT_HOLD_PITCH_MAX Serial UDB Extra ALT_HOLD_PITCH_MAX
* @param sue_ALT_HOLD_PITCH_HIGH Serial UDB Extra ALT_HOLD_PITCH_HIGH
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f8_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
float sue_HEIGHT_TARGET_MAX,float sue_HEIGHT_TARGET_MIN,float sue_ALT_HOLD_THROTTLE_MIN,float sue_ALT_HOLD_THROTTLE_MAX,float sue_ALT_HOLD_PITCH_MIN,float sue_ALT_HOLD_PITCH_MAX,float sue_ALT_HOLD_PITCH_HIGH)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[28];
_mav_put_float(buf, 0, sue_HEIGHT_TARGET_MAX);
_mav_put_float(buf, 4, sue_HEIGHT_TARGET_MIN);
_mav_put_float(buf, 8, sue_ALT_HOLD_THROTTLE_MIN);
_mav_put_float(buf, 12, sue_ALT_HOLD_THROTTLE_MAX);
_mav_put_float(buf, 16, sue_ALT_HOLD_PITCH_MIN);
_mav_put_float(buf, 20, sue_ALT_HOLD_PITCH_MAX);
_mav_put_float(buf, 24, sue_ALT_HOLD_PITCH_HIGH);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
#else
mavlink_serial_udb_extra_f8_t packet;
packet.sue_HEIGHT_TARGET_MAX = sue_HEIGHT_TARGET_MAX;
packet.sue_HEIGHT_TARGET_MIN = sue_HEIGHT_TARGET_MIN;
packet.sue_ALT_HOLD_THROTTLE_MIN = sue_ALT_HOLD_THROTTLE_MIN;
packet.sue_ALT_HOLD_THROTTLE_MAX = sue_ALT_HOLD_THROTTLE_MAX;
packet.sue_ALT_HOLD_PITCH_MIN = sue_ALT_HOLD_PITCH_MIN;
packet.sue_ALT_HOLD_PITCH_MAX = sue_ALT_HOLD_PITCH_MAX;
packet.sue_ALT_HOLD_PITCH_HIGH = sue_ALT_HOLD_PITCH_HIGH;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
#endif
msg->msgid = MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F8;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 28, 142);
}
/**
* @brief Encode a serial_udb_extra_f8 struct into a 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 serial_udb_extra_f8 C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_serial_udb_extra_f8_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_serial_udb_extra_f8_t* serial_udb_extra_f8)
{
return mavlink_msg_serial_udb_extra_f8_pack(system_id, component_id, msg, serial_udb_extra_f8->sue_HEIGHT_TARGET_MAX, serial_udb_extra_f8->sue_HEIGHT_TARGET_MIN, serial_udb_extra_f8->sue_ALT_HOLD_THROTTLE_MIN, serial_udb_extra_f8->sue_ALT_HOLD_THROTTLE_MAX, serial_udb_extra_f8->sue_ALT_HOLD_PITCH_MIN, serial_udb_extra_f8->sue_ALT_HOLD_PITCH_MAX, serial_udb_extra_f8->sue_ALT_HOLD_PITCH_HIGH);
}
/**
* @brief Send a serial_udb_extra_f8 message
* @param chan MAVLink channel to send the message
*
* @param sue_HEIGHT_TARGET_MAX Serial UDB Extra HEIGHT_TARGET_MAX
* @param sue_HEIGHT_TARGET_MIN Serial UDB Extra HEIGHT_TARGET_MIN
* @param sue_ALT_HOLD_THROTTLE_MIN Serial UDB Extra ALT_HOLD_THROTTLE_MIN
* @param sue_ALT_HOLD_THROTTLE_MAX Serial UDB Extra ALT_HOLD_THROTTLE_MAX
* @param sue_ALT_HOLD_PITCH_MIN Serial UDB Extra ALT_HOLD_PITCH_MIN
* @param sue_ALT_HOLD_PITCH_MAX Serial UDB Extra ALT_HOLD_PITCH_MAX
* @param sue_ALT_HOLD_PITCH_HIGH Serial UDB Extra ALT_HOLD_PITCH_HIGH
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_serial_udb_extra_f8_send(mavlink_channel_t chan, float sue_HEIGHT_TARGET_MAX, float sue_HEIGHT_TARGET_MIN, float sue_ALT_HOLD_THROTTLE_MIN, float sue_ALT_HOLD_THROTTLE_MAX, float sue_ALT_HOLD_PITCH_MIN, float sue_ALT_HOLD_PITCH_MAX, float sue_ALT_HOLD_PITCH_HIGH)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[28];
_mav_put_float(buf, 0, sue_HEIGHT_TARGET_MAX);
_mav_put_float(buf, 4, sue_HEIGHT_TARGET_MIN);
_mav_put_float(buf, 8, sue_ALT_HOLD_THROTTLE_MIN);
_mav_put_float(buf, 12, sue_ALT_HOLD_THROTTLE_MAX);
_mav_put_float(buf, 16, sue_ALT_HOLD_PITCH_MIN);
_mav_put_float(buf, 20, sue_ALT_HOLD_PITCH_MAX);
_mav_put_float(buf, 24, sue_ALT_HOLD_PITCH_HIGH);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F8, buf, 28, 142);
#else
mavlink_serial_udb_extra_f8_t packet;
packet.sue_HEIGHT_TARGET_MAX = sue_HEIGHT_TARGET_MAX;
packet.sue_HEIGHT_TARGET_MIN = sue_HEIGHT_TARGET_MIN;
packet.sue_ALT_HOLD_THROTTLE_MIN = sue_ALT_HOLD_THROTTLE_MIN;
packet.sue_ALT_HOLD_THROTTLE_MAX = sue_ALT_HOLD_THROTTLE_MAX;
packet.sue_ALT_HOLD_PITCH_MIN = sue_ALT_HOLD_PITCH_MIN;
packet.sue_ALT_HOLD_PITCH_MAX = sue_ALT_HOLD_PITCH_MAX;
packet.sue_ALT_HOLD_PITCH_HIGH = sue_ALT_HOLD_PITCH_HIGH;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERIAL_UDB_EXTRA_F8, (const char *)&packet, 28, 142);
#endif
}
#endif
// MESSAGE SERIAL_UDB_EXTRA_F8 UNPACKING
/**
* @brief Get field sue_HEIGHT_TARGET_MAX from serial_udb_extra_f8 message
*
* @return Serial UDB Extra HEIGHT_TARGET_MAX
*/
static inline float mavlink_msg_serial_udb_extra_f8_get_sue_HEIGHT_TARGET_MAX(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 0);
}
/**
* @brief Get field sue_HEIGHT_TARGET_MIN from serial_udb_extra_f8 message
*
* @return Serial UDB Extra HEIGHT_TARGET_MIN
*/
static inline float mavlink_msg_serial_udb_extra_f8_get_sue_HEIGHT_TARGET_MIN(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 4);
}
/**
* @brief Get field sue_ALT_HOLD_THROTTLE_MIN from serial_udb_extra_f8 message
*
* @return Serial UDB Extra ALT_HOLD_THROTTLE_MIN
*/
static inline float mavlink_msg_serial_udb_extra_f8_get_sue_ALT_HOLD_THROTTLE_MIN(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field sue_ALT_HOLD_THROTTLE_MAX from serial_udb_extra_f8 message
*
* @return Serial UDB Extra ALT_HOLD_THROTTLE_MAX
*/
static inline float mavlink_msg_serial_udb_extra_f8_get_sue_ALT_HOLD_THROTTLE_MAX(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Get field sue_ALT_HOLD_PITCH_MIN from serial_udb_extra_f8 message
*
* @return Serial UDB Extra ALT_HOLD_PITCH_MIN
*/
static inline float mavlink_msg_serial_udb_extra_f8_get_sue_ALT_HOLD_PITCH_MIN(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Get field sue_ALT_HOLD_PITCH_MAX from serial_udb_extra_f8 message
*
* @return Serial UDB Extra ALT_HOLD_PITCH_MAX
*/
static inline float mavlink_msg_serial_udb_extra_f8_get_sue_ALT_HOLD_PITCH_MAX(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 20);
}
/**
* @brief Get field sue_ALT_HOLD_PITCH_HIGH from serial_udb_extra_f8 message
*
* @return Serial UDB Extra ALT_HOLD_PITCH_HIGH
*/
static inline float mavlink_msg_serial_udb_extra_f8_get_sue_ALT_HOLD_PITCH_HIGH(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 24);
}
/**
* @brief Decode a serial_udb_extra_f8 message into a struct
*
* @param msg The message to decode
* @param serial_udb_extra_f8 C-struct to decode the message contents into
*/
static inline void mavlink_msg_serial_udb_extra_f8_decode(const mavlink_message_t* msg, mavlink_serial_udb_extra_f8_t* serial_udb_extra_f8)
{
#if MAVLINK_NEED_BYTE_SWAP
serial_udb_extra_f8->sue_HEIGHT_TARGET_MAX = mavlink_msg_serial_udb_extra_f8_get_sue_HEIGHT_TARGET_MAX(msg);
serial_udb_extra_f8->sue_HEIGHT_TARGET_MIN = mavlink_msg_serial_udb_extra_f8_get_sue_HEIGHT_TARGET_MIN(msg);
serial_udb_extra_f8->sue_ALT_HOLD_THROTTLE_MIN = mavlink_msg_serial_udb_extra_f8_get_sue_ALT_HOLD_THROTTLE_MIN(msg);
serial_udb_extra_f8->sue_ALT_HOLD_THROTTLE_MAX = mavlink_msg_serial_udb_extra_f8_get_sue_ALT_HOLD_THROTTLE_MAX(msg);
serial_udb_extra_f8->sue_ALT_HOLD_PITCH_MIN = mavlink_msg_serial_udb_extra_f8_get_sue_ALT_HOLD_PITCH_MIN(msg);
serial_udb_extra_f8->sue_ALT_HOLD_PITCH_MAX = mavlink_msg_serial_udb_extra_f8_get_sue_ALT_HOLD_PITCH_MAX(msg);
serial_udb_extra_f8->sue_ALT_HOLD_PITCH_HIGH = mavlink_msg_serial_udb_extra_f8_get_sue_ALT_HOLD_PITCH_HIGH(msg);
#else
memcpy(serial_udb_extra_f8, _MAV_PAYLOAD(msg), 28);
#endif
}
File diff suppressed because it is too large Load Diff
@@ -5,7 +5,7 @@
#ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Sat Dec 1 02:06:23 2012"
#define MAVLINK_BUILD_DATE "Wed Jan 9 16:18:08 2013"
#define MAVLINK_WIRE_PROTOCOL_VERSION "1.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 254
@@ -550,7 +550,7 @@ MAVLINK_HELPER void _mavlink_send_uart(mavlink_channel_t chan, const char *buf,
#ifdef MAVLINK_SEND_UART_BYTES
/* this is the more efficient approach, if the platform
defines it */
MAVLINK_SEND_UART_BYTES(chan, (uint8_t *)buf, len);
MAVLINK_SEND_UART_BYTES(chan, (const uint8_t *)buf, len);
#else
/* fallback to one byte at a time */
uint16_t i;
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More