feat: update DaliDomainService to support logarithmic brightness control and enhance KNX broadcast management request handling

Signed-off-by: Tony <tonylu@tony-cloud.com>
This commit is contained in:
Tony
2026-06-15 16:11:19 +08:00
parent 9598147dd5
commit 780b4aa8d5
6 changed files with 18 additions and 14 deletions
@@ -170,7 +170,8 @@ class DaliDomainService {
int freecolour = 255, int rgbwaf_control = -1) const;
bool storeDt8PowerOnLevelSnapshot(uint8_t gateway_id, int short_address, int level) const;
bool storeDt8SystemFailureLevelSnapshot(uint8_t gateway_id, int short_address, int level) const;
bool setBright(uint8_t gateway_id, int short_address, int brightness) const;
bool setBright(uint8_t gateway_id, int short_address, int brightness,
bool logarithmic_curve = false) const;
bool setColTempRaw(uint8_t gateway_id, int short_address, int mirek) const;
bool setColTemp(uint8_t gateway_id, int short_address, int kelvin) const;
bool setColourRaw(uint8_t gateway_id, int raw_addr, int x, int y) const;
+3 -2
View File
@@ -1404,13 +1404,14 @@ bool DaliDomainService::storeDt8SystemFailureLevelSnapshot(uint8_t gateway_id,
return channel->dali->dt8.storeSystemFailureLevelSnapshot(short_address, level);
}
bool DaliDomainService::setBright(uint8_t gateway_id, int short_address, int brightness) const {
bool DaliDomainService::setBright(uint8_t gateway_id, int short_address, int brightness,
bool logarithmic_curve) const {
const auto* channel = findChannelByGateway(gateway_id);
if (channel == nullptr || channel->dali == nullptr) {
return false;
}
markBusActivity(gateway_id);
return channel->dali->base.setBright(short_address, brightness);
return channel->dali->base.setBright(short_address, brightness, logarithmic_curve);
}
bool DaliDomainService::setColTempRaw(uint8_t gateway_id, int short_address, int mirek) const {
@@ -848,6 +848,8 @@ bool IsKnxBroadcastManagementRequest(CemiFrame& frame) {
case IndividualAddressRead:
case IndividualAddressSerialNumberRead:
case IndividualAddressSerialNumberWrite:
case FunctionPropertyCommand:
case FunctionPropertyState:
return true;
default:
return false;