62 void PushUint16(std::vector<uint8_t>* data, uint16_t value,
bool littleEndian =
true)
64 data->push_back(
reinterpret_cast<uint8_t *
>(&value)[littleEndian ? 0 : 1]);
65 data->push_back(
reinterpret_cast<uint8_t *
>(&value)[littleEndian ? 1 : 0]);
77 uint16_t
ReadUint16(
const std::vector<uint8_t>& data, uint8_t index,
bool littleEndian =
true)
79 if(data.size() <= ((
size_t)(index+1)))
81 return (
static_cast<uint16_t
>(data[littleEndian ? index : (index+1)]) + (
static_cast<uint16_t
>(data[littleEndian ? (index+1) : index]) << 8));
92 uint8_t
ReadUint8(
const std::vector<uint8_t>& data, uint8_t index)
94 if(data.size() <= ((
size_t)(index)))
99 uint16_t CalculateCRC(
const uint8_t *buff,
size_t len);
Helper class for binary driver: provides methods for handling binary data.
Definition: BinaryDriver.h:46
uint16_t ReadUint16(const std::vector< uint8_t > &data, uint8_t index, bool littleEndian=true)
Bounds-checked read of a 16-bit value from a byte vector.
Definition: BinaryDriver.h:77
uint8_t ReadUint8(const std::vector< uint8_t > &data, uint8_t index)
Bounds-checked read of an 8-bit value from a byte vector.
Definition: BinaryDriver.h:92
void PushUint16(std::vector< uint8_t > *data, uint16_t value, bool littleEndian=true)
Helper function to push a uint16 to a std::vector of bytes, as two consecutive bytes (either little-e...
Definition: BinaryDriver.h:62