8 #ifndef _UGCS_VSM_MAVLINK_ENCODER_H_
9 #define _UGCS_VSM_MAVLINK_ENCODER_H_
30 uint8_t system_id, uint8_t component_id)
33 std::vector<uint8_t>
data(mavlink::MAVLINK_1_HEADER_LEN + payload.
Get_size_v1() +
41 data[4] = component_id;
43 data[5] =
static_cast<uint8_t
>(payload.
Get_id());
48 memcpy(&data[mavlink::MAVLINK_1_HEADER_LEN], payload.
Get_buffer()->Get_data(),
68 uint8_t system_id, uint8_t component_id)
71 std::vector<uint8_t>
data(mavlink::MAVLINK_2_HEADER_LEN + payload.
Get_size_v2() +
80 data[6] = component_id;
81 data[7] =
static_cast<uint8_t
>(payload.
Get_id() >> 0);
82 data[8] =
static_cast<uint8_t
>(payload.
Get_id() >> 8);
83 data[9] =
static_cast<uint8_t
>(payload.
Get_id() >> 16);
85 memcpy(&data[mavlink::MAVLINK_2_HEADER_LEN], payload.
Get_buffer()->Get_data(), payload.
Get_size_v2());
90 for (; packet_len > 1 && data[mavlink::MAVLINK_2_HEADER_LEN + packet_len - 1] == 0; packet_len--) {
100 reinterpret_cast<mavlink::Uint16*
>(&data[mavlink::MAVLINK_2_HEADER_LEN + packet_len]);
103 data.resize(mavlink::MAVLINK_2_HEADER_LEN + packet_len + 2);
TValue data[size]
Values array itself.
Definition: mavlink.h:192
Starting byte of Mavlink packet.
Definition: mavlink.h:32
MAVLink protocol messages.
virtual MESSAGE_ID_TYPE Get_id() const =0
Get message id.
Starting byte of Mavlink v2 packet.
Definition: mavlink.h:34
virtual uint8_t Get_extra_byte() const =0
Get extra byte for CRC calculation.
static Ptr Create(Args &&...args)
Create an instance.
Definition: io_buffer.h:34
Io_buffer::Ptr Encode_v1(const mavlink::Payload_base &payload, uint8_t system_id, uint8_t component_id)
Encode Mavlink version 1 message.
Definition: mavlink_encoder.h:29
Mavlink compatible checksum (ITU X.25/SAE AS-4 hash) calculation class.
Definition: mavlink.h:669
#define ASSERT(x)
No action in release.
Definition: debug.h:68
virtual size_t Get_size_v1() const =0
Get size of the message payload without extensions in bytes.
Io_buffer::Ptr Get_buffer() const
Get Io_buffer instance which contains current content of the message.
Base class for MAVLink message payloads.
Definition: mavlink.h:397
Io_buffer::Ptr Encode_v2(const mavlink::Payload_base &payload, uint8_t system_id, uint8_t component_id)
Encode Mavlink version 2 message.
Definition: mavlink_encoder.h:67
Encoder capable of creating byte buffers based on Mavlink payload and identifiers.
Definition: mavlink_encoder.h:20
uint16_t Accumulate(const void *buffer, size_t len)
Incrementally calculate the checksum of a new buffer and accumulate it to the current value...
std::shared_ptr< Io_buffer > Ptr
Pointer type.
Definition: io_buffer.h:34
Field value in MAVLink message.
Definition: mavlink.h:111
virtual size_t Get_size_v2() const =0
Get size of the message payload in bytes including all extensions.
Io_buffer class implementation.