Add support for various header values

This commit is contained in:
2024-02-18 22:47:44 +11:00
parent 90e101c47e
commit 07f46ecfe7
4 changed files with 103 additions and 39 deletions

View File

@@ -19,11 +19,11 @@ private:
void setPacketSize(uint8_t *buffer, uint8_t);
void setConstants(uint8_t *buffer);
void setSourceAddress(uint8_t *buffer, uint16_t);
void setDestinationAddress(uint8_t *buffer, uint16_t);
void setSourceAddress(uint8_t *buffer, uint8_t offset, uint16_t source);
void setDestinationAddress(uint8_t *buffer, uint8_t offset, uint16_t destination);
void setRollingCodes(uint8_t *buffer, uint8_t rollingCode1, uint8_t rollingCode2);
void setProtocolVersion(uint8_t *buffer, uint8_t);
void setFieldsData(uint8_t *buffer, const FieldsParameters& parameters);
void setFieldsData(uint8_t *buffer, uint8_t offset, const FieldsParameters& parameters);
void calculateCRC(uint8_t *buffer);
void incrementRollingCodes();
uint8_t calculateTotalFieldSize(const FieldsParameters& parameters);

View File

@@ -34,11 +34,25 @@ struct FieldsParameters {
using PacketParameters = std::variant<std::monostate, FieldsParameters>;
struct BroadcastHeader {
uint16_t source;
};
// Define Message structure
struct Packet {
struct UnicastHeader {
uint16_t source;
uint16_t destination;
};
struct GroupsHeader {
uint16_t source;
std::vector<uint8_t> groups;
};
using PacketHeader = std::variant<BroadcastHeader, UnicastHeader, GroupsHeader>;
// Define Packet structure
struct Packet {
PacketHeader header;
PacketType type;
PacketParameters parameters;
uint8_t rollingCode1;