feat(gateway): enhance DALI command handling with mirroring and new target types

This commit is contained in:
Tony
2026-05-02 03:19:02 +08:00
parent 639fdd860e
commit fa2eae87cf
4 changed files with 587 additions and 63 deletions
@@ -119,12 +119,19 @@ class GatewayController {
void publishFrame(const std::vector<uint8_t>& frame);
void handleDaliRawFrame(const DaliRawFrame& frame);
bool sendRawAndMirror(uint8_t gateway_id, uint8_t raw_addr, uint8_t command);
bool sendExtRawAndMirror(uint8_t gateway_id, uint8_t raw_addr, uint8_t command);
bool setBrightAndMirror(uint8_t gateway_id, int dec_address, uint8_t level);
bool offAndMirror(uint8_t gateway_id, int dec_address);
bool onAndMirror(uint8_t gateway_id, int dec_address);
uint8_t resolveInternalGroupRawAddress(uint8_t gateway_id, uint8_t raw_addr);
static uint8_t normalizeGroupTargetType(uint8_t target_type);
static uint8_t normalizeGroupTargetValue(uint8_t target_type, uint8_t target_value);
static uint8_t internalGroupRawTargetAddress(uint8_t target_type, uint8_t target_value,
uint8_t raw_addr);
static int internalGroupDecTargetAddress(uint8_t target_type, uint8_t target_value);
static uint8_t rawArcAddressFromDec(int dec_address);
static uint8_t rawCommandAddressFromDec(int dec_address);
static int shortAddressFromRaw(uint8_t raw_addr);
static int reverseInRange(int value, int min_value, int max_value);