memmove -> memcpy
This commit is contained in:
parent
6a9697124e
commit
9e5ecdf1b9
@ -13,19 +13,19 @@ using namespace radio::protocol;
|
|||||||
|
|
||||||
[[nodiscard]] std::uint8_t* serializeAddress(std::uint8_t* data, const Address& address)
|
[[nodiscard]] std::uint8_t* serializeAddress(std::uint8_t* data, const Address& address)
|
||||||
{
|
{
|
||||||
std::memmove(data, &address.pan_id, sizeof(address.pan_id));
|
std::memcpy(data, &address.pan_id, sizeof(address.pan_id));
|
||||||
data += sizeof(address.pan_id);
|
data += sizeof(address.pan_id);
|
||||||
|
|
||||||
if (address.getAddressingMode() == FrameControlField::ADDRESSING_MODE_SHORT)
|
if (address.getAddressingMode() == FrameControlField::ADDRESSING_MODE_SHORT)
|
||||||
{
|
{
|
||||||
const std::uint16_t mac = address.getShortAddress();
|
const std::uint16_t mac = address.getShortAddress();
|
||||||
std::memmove(data, &mac, sizeof(mac));
|
std::memcpy(data, &mac, sizeof(mac));
|
||||||
data += sizeof(mac);
|
data += sizeof(mac);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const std::uint64_t mac = address.getLongAddress();
|
const std::uint64_t mac = address.getLongAddress();
|
||||||
std::memmove(data, &mac, sizeof(mac));
|
std::memcpy(data, &mac, sizeof(mac));
|
||||||
data += sizeof(mac);
|
data += sizeof(mac);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ using namespace radio::protocol;
|
|||||||
[[nodiscard]] std::uint8_t* serializePhyHeader(std::uint8_t* data, const PhyHeader& header)
|
[[nodiscard]] std::uint8_t* serializePhyHeader(std::uint8_t* data, const PhyHeader& header)
|
||||||
{
|
{
|
||||||
static_assert(sizeof(PhyHeader) == 1, "PHY Header must be 1 byte/octet.");
|
static_assert(sizeof(PhyHeader) == 1, "PHY Header must be 1 byte/octet.");
|
||||||
std::memmove(data, &header, sizeof(PhyHeader));
|
std::memcpy(data, &header, sizeof(PhyHeader));
|
||||||
data += sizeof(PhyHeader);
|
data += sizeof(PhyHeader);
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
@ -44,16 +44,16 @@ using namespace radio::protocol;
|
|||||||
[[nodiscard]] std::uint8_t* serializeMacProtocolDataUnit(std::uint8_t* data, const FrameStructure& frame)
|
[[nodiscard]] std::uint8_t* serializeMacProtocolDataUnit(std::uint8_t* data, const FrameStructure& frame)
|
||||||
{
|
{
|
||||||
static_assert(sizeof(frame.frame_control_field) == 2, "FCF must be 2 bytes/octets.");
|
static_assert(sizeof(frame.frame_control_field) == 2, "FCF must be 2 bytes/octets.");
|
||||||
std::memmove(data, &frame.frame_control_field, sizeof(frame.frame_control_field));
|
std::memcpy(data, &frame.frame_control_field, sizeof(frame.frame_control_field));
|
||||||
data += sizeof(FrameControlField);
|
data += sizeof(FrameControlField);
|
||||||
|
|
||||||
std::memmove(data, &frame.sequence_number, sizeof(frame.sequence_number));
|
std::memcpy(data, &frame.sequence_number, sizeof(frame.sequence_number));
|
||||||
data += sizeof(frame.sequence_number);
|
data += sizeof(frame.sequence_number);
|
||||||
|
|
||||||
data = serializeAddress(data, frame.destination_address);
|
data = serializeAddress(data, frame.destination_address);
|
||||||
data = serializeAddress(data, frame.source_address);
|
data = serializeAddress(data, frame.source_address);
|
||||||
|
|
||||||
std::memmove(data, frame.payload.data(), frame.payload_length);
|
std::memcpy(data, frame.payload.data(), frame.payload_length);
|
||||||
data += frame.payload_length;
|
data += frame.payload_length;
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
@ -61,13 +61,13 @@ using namespace radio::protocol;
|
|||||||
|
|
||||||
[[nodiscard]] const std::uint8_t* deserializeAddress(const std::uint8_t* data, const FrameControlField::AddressingMode& addressing_mode, Address& address)
|
[[nodiscard]] const std::uint8_t* deserializeAddress(const std::uint8_t* data, const FrameControlField::AddressingMode& addressing_mode, Address& address)
|
||||||
{
|
{
|
||||||
std::memmove(&address.pan_id, data, sizeof(address.pan_id));
|
std::memcpy(&address.pan_id, data, sizeof(address.pan_id));
|
||||||
data += sizeof(address.pan_id);
|
data += sizeof(address.pan_id);
|
||||||
|
|
||||||
if (addressing_mode == FrameControlField::ADDRESSING_MODE_SHORT)
|
if (addressing_mode == FrameControlField::ADDRESSING_MODE_SHORT)
|
||||||
{
|
{
|
||||||
std::uint16_t mac = 0;
|
std::uint16_t mac = 0;
|
||||||
std::memmove(&mac, data, sizeof(mac));
|
std::memcpy(&mac, data, sizeof(mac));
|
||||||
data += sizeof(mac);
|
data += sizeof(mac);
|
||||||
|
|
||||||
address.setShortAddress(mac);
|
address.setShortAddress(mac);
|
||||||
@ -75,7 +75,7 @@ using namespace radio::protocol;
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::uint64_t mac = 0;
|
std::uint64_t mac = 0;
|
||||||
std::memmove(&mac, data, sizeof(mac));
|
std::memcpy(&mac, data, sizeof(mac));
|
||||||
data += sizeof(mac);
|
data += sizeof(mac);
|
||||||
|
|
||||||
address.setLongAddress(mac);
|
address.setLongAddress(mac);
|
||||||
@ -86,7 +86,7 @@ using namespace radio::protocol;
|
|||||||
|
|
||||||
[[nodiscard]] const std::uint8_t* deserializePhyHeader(const std::uint8_t* data, PhyHeader& header)
|
[[nodiscard]] const std::uint8_t* deserializePhyHeader(const std::uint8_t* data, PhyHeader& header)
|
||||||
{
|
{
|
||||||
std::memmove(&header, data, sizeof(PhyHeader));
|
std::memcpy(&header, data, sizeof(PhyHeader));
|
||||||
data += sizeof(PhyHeader);
|
data += sizeof(PhyHeader);
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
@ -95,20 +95,20 @@ using namespace radio::protocol;
|
|||||||
[[nodiscard]] FrameStructure deserializeMacProtocolDataUnit(const std::uint8_t* data, const std::uint8_t total_frame_length)
|
[[nodiscard]] FrameStructure deserializeMacProtocolDataUnit(const std::uint8_t* data, const std::uint8_t total_frame_length)
|
||||||
{
|
{
|
||||||
FrameStructure frame;
|
FrameStructure frame;
|
||||||
std::memmove(&frame.frame_control_field, data, sizeof(frame.frame_control_field));
|
std::memcpy(&frame.frame_control_field, data, sizeof(frame.frame_control_field));
|
||||||
data += sizeof(frame.frame_control_field);
|
data += sizeof(frame.frame_control_field);
|
||||||
|
|
||||||
std::memmove(&frame.sequence_number, data, sizeof(frame.sequence_number));
|
std::memcpy(&frame.sequence_number, data, sizeof(frame.sequence_number));
|
||||||
data += sizeof(frame.sequence_number);
|
data += sizeof(frame.sequence_number);
|
||||||
|
|
||||||
data = deserializeAddress(data, frame.frame_control_field.destination_addressing_mode, frame.destination_address);
|
data = deserializeAddress(data, frame.frame_control_field.destination_addressing_mode, frame.destination_address);
|
||||||
data = deserializeAddress(data, frame.frame_control_field.source_addressing_mode, frame.source_address);
|
data = deserializeAddress(data, frame.frame_control_field.source_addressing_mode, frame.source_address);
|
||||||
|
|
||||||
frame.payload_length = frame.calculatePayloadLength(total_frame_length);
|
frame.payload_length = frame.calculatePayloadLength(total_frame_length);
|
||||||
std::memmove(frame.payload.data(), data, frame.payload_length);
|
std::memcpy(frame.payload.data(), data, frame.payload_length);
|
||||||
data += frame.payload_length;
|
data += frame.payload_length;
|
||||||
|
|
||||||
std::memmove(&frame.frame_checksum, data, sizeof(frame.frame_checksum));
|
std::memcpy(&frame.frame_checksum, data, sizeof(frame.frame_checksum));
|
||||||
|
|
||||||
return frame;
|
return frame;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user