#ifndef PACKET_TYPES_H #define PACKET_TYPES_H #include #include // Define packet types enum class PacketType { OPEN, CLOSE, STOP, FIELDS, FIELD_COMMAND, UNKNOWN }; enum class FieldType { VALUE, SET, FETCH, UNKNOWN }; struct Field { uint8_t identifier; FieldType type; bool hasValue; std::variant value; }; struct FieldsParameters { std::vector fields; }; using PacketParameters = std::variant; // Define Message structure struct Packet { uint16_t source; uint16_t destination; PacketType type; PacketParameters parameters; uint8_t rollingCode1; uint8_t rollingCode2; }; #endif // PACKET_TYPES_H