// LedCommand.h
#pragma once
#include <vector>
#include <cstdint>

class LedCommand
{
public:
    LedCommand();

    void setColor(uint8_t r, uint8_t g, uint8_t b);
    void setExtCount(uint16_t count);

    std::vector<uint8_t> serialize() const;

private:
    uint8_t header[3];
    uint8_t group_addr[2];
    uint8_t device_addr[2];
    uint8_t port;
    uint8_t func_code;
    uint8_t led_type;
    uint8_t reserved[2];
    uint16_t data_length;
    uint16_t ext_count;
    uint8_t color_data[3];
    uint8_t tail[2];
};
