6 #ifndef UMRT_ARM_FIRMWARE_LIB_UTILS_HPP
7 #define UMRT_ARM_FIRMWARE_LIB_UTILS_HPP
28 static_cast<uint8_t
>(integer & 0xFF),
29 static_cast<uint8_t
>(integer >> 8 & 0xFF),
30 static_cast<uint8_t
>(integer >> 16 & 0xFF),
31 static_cast<uint8_t
>(integer >> 24 & 0xFF)
50 static_cast<uint8_t
>(integer >> 24 & 0xFF),
51 static_cast<uint8_t
>(integer >> 16 & 0xFF),
52 static_cast<uint8_t
>(integer >> 8 & 0xFF),
53 static_cast<uint8_t
>(integer & 0xFF)
72 static_cast<uint8_t
>(integer >> 16 & 0xFF),
73 static_cast<uint8_t
>(integer >> 8 & 0xFF),
74 static_cast<uint8_t
>(integer & 0xFF)
93 static_cast<uint8_t
>(integer & 0xFF),
94 static_cast<uint8_t
>(integer >> 8 & 0xFF)
113 static_cast<uint8_t
>(integer >> 8 & 0xFF),
114 static_cast<uint8_t
>(integer & 0xFF)
134 static_cast<uint8_t
>(pack[0] & 0x7F),
135 static_cast<uint8_t
>((pack[0] & 0x80) >> 7),
136 static_cast<uint8_t
>(pack[1] & 0x7F),
137 static_cast<uint8_t
>((pack[1] & 0x80) >> 7),
138 static_cast<uint8_t
>(pack[2] & 0x7F),
139 static_cast<uint8_t
>((pack[2] & 0x80) >> 7),
140 static_cast<uint8_t
>(pack[3] & 0x7F),
141 static_cast<uint8_t
>((pack[3] & 0x80) >> 7),
169 static_cast<uint8_t
>(pack[0] & 0x7F),
170 static_cast<uint8_t
>((pack[0] & 0x80) >> 7),
171 static_cast<uint8_t
>(pack[1] & 0x7F),
172 static_cast<uint8_t
>((pack[1] & 0x80) >> 7),
173 static_cast<uint8_t
>(pack[2] & 0x7F),
174 static_cast<uint8_t
>((pack[2] & 0x80) >> 7),
175 static_cast<uint8_t
>(pack[3] & 0x7F),
176 static_cast<uint8_t
>((pack[3] & 0x80) >> 7),
200 return {
static_cast<uint8_t
>(val & 0x7F),
static_cast<uint8_t
>((val & 0x80) >> 7) };
210 return data[0] | data[1] << 8 | data[2] << 16 | data[3] << 24;
228 return data[3] | data[2] << 8 | data[1] << 16 | data[0] << 24;
246 return static_cast<uint16_t
>(data[0]) |
static_cast<uint16_t
>(data[1] << 8);
264 return static_cast<uint16_t
>(data[1]) |
static_cast<uint16_t
>(data[0] << 8);
std::vector< uint8_t > pack_16_big(const uint16_t integer)
Packs a 16-bit integer into a vector of 8-bit integers, in big-endian format.
Definition: utils.hpp:111
std::vector< uint8_t > pack_32(const uint32_t integer)
Packs a 32-bit integer into a vector of 8-bit integers, in little-endian format.
Definition: utils.hpp:26
std::vector< uint8_t > firmatify_32(const std::vector< uint8_t >::const_iterator &pack)
Converts a packed byte vector to the 7-bit packets Firmata receives.
Definition: utils.hpp:132
std::vector< uint8_t > pack_16(const uint16_t integer)
Packs a 16-bit integer into a vector of 8-bit integers, in little-endian format.
Definition: utils.hpp:91
std::vector< uint8_t > firmatify_8(const uint8_t val)
Converts an 8-bit integer to the two 7-bit packets Firmata uses.
Definition: utils.hpp:199
uint32_t decode_32_big(const std::vector< uint8_t >::const_iterator &data)
Reconstructs a big-endian byte vector into a 32-bit integer.
Definition: utils.hpp:227
std::vector< uint8_t > encode_string(const std::string &str)
Packs an std::string into a vector of 8-bit integers, in little-endian format.
Definition: utils.hpp:281
uint16_t decode_16(const std::vector< uint8_t >::const_iterator &data)
Reconstructs a little-endian byte vector into a 16-bit integer.
Definition: utils.hpp:245
uint16_t decode_16_big(const std::vector< uint8_t >::const_iterator &data)
Reconstructs a big-endian byte vector into a 16-bit integer.
Definition: utils.hpp:263
uint32_t decode_32(const std::vector< uint8_t >::const_iterator &data)
Reconstructs a little-endian byte vector into a 32-bit integer.
Definition: utils.hpp:209
std::vector< uint8_t > pack_24_big(const uint32_t integer)
Packs a 24-bit integer into a vector of 8-bit integers, in big-endian format.
Definition: utils.hpp:70
std::string decode_string(const std::vector< uint8_t > &data)
Decodes a little-endian byte vector into an std::string.
Definition: utils.hpp:291
std::vector< uint8_t > pack_32_big(const uint32_t integer)
Packs a 32-bit integer into a vector of 8-bit integers, in big-endian format.
Definition: utils.hpp:48
std::vector< uint8_t > firmatify_16(const std::vector< uint8_t >::const_iterator &pack)
Converts a packed byte vector to the 7-bit packets Firmata receives.
Definition: utils.hpp:167