QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
WireFields.h File Reference
#include <array>
#include <concepts>
#include <cstddef>
#include <cstdint>
#include <span>
#include <tuple>
#include <type_traits>
#include "LittleEndian.h"
+ Include dependency graph for WireFields.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Wire::detail::MemberPointer< Value Class::* >
 
struct  Wire::Field< Member, Offset >
 

Namespaces

namespace  Wire
 
namespace  Wire::detail
 

Concepts

concept  Wire::Record
 

Functions

template<typename T >
constexpr std::size_t Wire::detail::wireSize ()
 
template<typename Value >
constexpr void Wire::detail::read (Value &value, std::span< const uint8_t > bytes, std::size_t offset)
 
template<typename Value >
constexpr void Wire::detail::write (std::span< uint8_t > bytes, std::size_t offset, const Value &value)
 
template<Record T>
constexpr T Wire::decode (std::span< const uint8_t > bytes, std::size_t offset=0)
 Decodes the record at offset. Fields whose bytes are unavailable decode as zero.
 
template<Record T>
constexpr std::array< uint8_t, SIZE< T > > Wire::encode (const T &value)
 

Variables

template<Record T>
constexpr std::size_t Wire::SIZE = Layout<T>::SIZE
 
template<Record T>
constexpr bool Wire::VALID_LAYOUT
 Every field belongs to T, fits within SIZE<T> and overlaps no other field.