Fix DALI CW order
This commit is contained in:
parent
a6b1c09d9d
commit
47195c20ed
@ -743,8 +743,8 @@ void DaliLoop(void) {
|
|||||||
Dali->color[2] = Dali->dtr[2]; // Blue
|
Dali->color[2] = Dali->dtr[2]; // Blue
|
||||||
}
|
}
|
||||||
else if (DALI_209_SET_TEMPORARY_RGB_DIMLEVEL == Dali->command) {
|
else if (DALI_209_SET_TEMPORARY_RGB_DIMLEVEL == Dali->command) {
|
||||||
Dali->color[3] = Dali->dtr[1]; // Warm White (Amber)
|
Dali->color[3] = Dali->dtr[0]; // Cold White
|
||||||
Dali->color[4] = Dali->dtr[0]; // Cold White
|
Dali->color[4] = Dali->dtr[1]; // Warm White (Amber)
|
||||||
}
|
}
|
||||||
else if (DALI_209_ACTIVATE == Dali->command) {
|
else if (DALI_209_ACTIVATE == Dali->command) {
|
||||||
uint32_t channels = Dali->Settings.light_type -8;
|
uint32_t channels = Dali->Settings.light_type -8;
|
||||||
@ -832,7 +832,7 @@ bool DaliSetChannels(void) {
|
|||||||
Dali->light_sync = false;
|
Dali->light_sync = false;
|
||||||
} else {
|
} else {
|
||||||
uint8_t *cur_col = (uint8_t*)XdrvMailbox.data;
|
uint8_t *cur_col = (uint8_t*)XdrvMailbox.data;
|
||||||
// cur_col[0] = Red, cur_col[1] = Green, cur_col[2] = Blue, cur_col[3] = Warm = Amber, cur_col[4] = Cold = White
|
// cur_col[0] = Red, cur_col[1] = Green, cur_col[2] = Blue, cur_col[3] = Cold = White, cur_col[4] = Warm = Amber
|
||||||
for (uint32_t i = 0; i < 5; i++) {
|
for (uint32_t i = 0; i < 5; i++) {
|
||||||
if (255 == cur_col[i]) { cur_col[i] = 254; } // Max Dali value
|
if (255 == cur_col[i]) { cur_col[i] = 254; } // Max Dali value
|
||||||
}
|
}
|
||||||
@ -866,8 +866,8 @@ bool DaliSetChannels(void) {
|
|||||||
DaliSendData(adr, DALI_209_SET_TEMPORARY_RGB_DIMLEVEL);
|
DaliSendData(adr, DALI_209_SET_TEMPORARY_RGB_DIMLEVEL);
|
||||||
|
|
||||||
if (channels > 3) {
|
if (channels > 3) {
|
||||||
DaliSendData(DALI_102_SET_DTR0, cur_col[4]); // DALI White
|
DaliSendData(DALI_102_SET_DTR0, cur_col[3]); // DALI White
|
||||||
DaliSendData(DALI_102_SET_DTR1, (channels > 4) ? cur_col[3] : 255); // DALI Amber
|
DaliSendData(DALI_102_SET_DTR1, (channels > 4) ? cur_col[4] : 255); // DALI Amber
|
||||||
DaliSendData(DALI_102_SET_DTR2, 255); // DALI Freecolour - no change
|
DaliSendData(DALI_102_SET_DTR2, 255); // DALI Freecolour - no change
|
||||||
DaliSendData(DALI_102_ENABLE_DEVICE_TYPE_X, DALI_209_DEVICE_TYPE); // Enable Extended command
|
DaliSendData(DALI_102_ENABLE_DEVICE_TYPE_X, DALI_209_DEVICE_TYPE); // Enable Extended command
|
||||||
DaliSendData(adr, DALI_209_SET_TEMPORARY_WAF_DIMLEVEL);
|
DaliSendData(adr, DALI_209_SET_TEMPORARY_WAF_DIMLEVEL);
|
||||||
@ -885,8 +885,8 @@ bool DaliSetChannels(void) {
|
|||||||
DaliSendData(adr, DALI_209_SET_TEMPORARY_RGB_DIMLEVEL);
|
DaliSendData(adr, DALI_209_SET_TEMPORARY_RGB_DIMLEVEL);
|
||||||
|
|
||||||
if (channels > 3) {
|
if (channels > 3) {
|
||||||
if (!DaliSetDTR(0, adr, cur_col[4])) { return true; } // DALI While
|
if (!DaliSetDTR(0, adr, cur_col[3])) { return true; } // DALI While
|
||||||
if (!DaliSetDTR(1, adr, (channels > 4) ? cur_col[3] : 255)) { return true; } // DALI Amber
|
if (!DaliSetDTR(1, adr, (channels > 4) ? cur_col[4] : 255)) { return true; } // DALI Amber
|
||||||
if (!DaliSetDTR(2, adr, 255)) { return true; } // DALI Freecolour - no change
|
if (!DaliSetDTR(2, adr, 255)) { return true; } // DALI Freecolour - no change
|
||||||
DaliSendData(DALI_102_ENABLE_DEVICE_TYPE_X, DALI_209_DEVICE_TYPE); // Enable Extended command
|
DaliSendData(DALI_102_ENABLE_DEVICE_TYPE_X, DALI_209_DEVICE_TYPE); // Enable Extended command
|
||||||
DaliSendData(adr, DALI_209_SET_TEMPORARY_WAF_DIMLEVEL);
|
DaliSendData(adr, DALI_209_SET_TEMPORARY_WAF_DIMLEVEL);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user