14 constexpr std::uint8_t kStx = 0x02u;
26 ByteBuffer::const_iterator
end)
const
28 std::uint8_t checksum = 0;
29 for (
auto it =
begin; it !=
end; ++it)
44 constexpr std::size_t numExpectedStx = 4u;
45 std::size_t stxRecvLeft = numExpectedStx;
47 while (stxRecvLeft > 0u)
61 ByteBuffer::iterator it{buffer.begin()};
62 while (it != buffer.end())
71 buffer.erase(buffer.begin(), it);
72 stxRecvLeft = numExpectedStx;
87 const std::uint32_t
length = readUnalignBigEndian<std::uint32_t>(buffer.data());
113 std::size_t extraReserve)
116 header.reserve(4u + 4u + extraReserve);
123 const std::uint32_t v =
static_cast<std::uint32_t
>(payloadSize);
125 writeUnalignBigEndian<std::uint32_t>(b,
sizeof(b), v);
134 std::size_t extraReserve)
148 buffer.insert(buffer.end(), cmdBuffer.begin(), cmdBuffer.end());
151 constexpr std::size_t checksum_offset = 4u + 4u;
152 buffer.insert(buffer.end(),
calculateChecksum(buffer.cbegin() + checksum_offset, buffer.cend()));