Enhance DaliDT8: add RGBWAF control modes and methods for temporary color scene storage

Signed-off-by: Tony <tonylu@tony-cloud.com>
This commit is contained in:
Tony
2026-06-07 01:09:37 +08:00
parent 439a2078ba
commit 440dbd1757
2 changed files with 41 additions and 0 deletions
+14
View File
@@ -96,6 +96,12 @@ enum class Dt8PreferredColorType {
rgbwaf,
};
enum class Dt8RgbwafControlMode {
channelControl = 0,
colorControl = 1,
standardizedColorControl = 2,
};
class DaliDT8 {
public:
explicit DaliDT8(DaliBase& base);
@@ -125,7 +131,14 @@ class DaliDT8 {
bool setTemporaryPrimaryDimLevel(int a, int n, double level);
bool setTemporaryRGBDimLevels(int a, int r, int g, int b);
bool setTemporaryWAFDimLevels(int a, int w, int amber, int freecolour);
static int rgbwafControlValue(bool red = false, bool green = false, bool blue = false,
bool white = false, bool amber = false, bool freecolour = false,
Dt8RgbwafControlMode mode = Dt8RgbwafControlMode::channelControl);
bool setTemporaryRGBWAFControl(int a, int control);
bool setTemporaryRGBWAFChannelControl(int a, bool red = false, bool green = false,
bool blue = false, bool white = false, bool amber = false,
bool freecolour = false,
Dt8RgbwafControlMode mode = Dt8RgbwafControlMode::channelControl);
bool setTemporaryRGBWAFDimLevels(int a, int r, int g, int b, int w, int amber,
int freecolour, int control);
bool setTemporaryColourMask(int a);
@@ -215,6 +228,7 @@ class DaliDT8 {
int white = 0, int amber = 0, int freecolour = 254,
int rgbwafControl = -1,
int gateway = -1);
bool storeCurrentTemporaryColourAsScene(int address, int scene, int brightness);
bool storePowerOnLevelSnapshot(int address, int level);
bool storePowerOnLevelColorSnapshot(int address, int level, int r, int g, int b,
Dt8PreferredColorType preferredColorType = Dt8PreferredColorType::xy);