mirror of
https://github.com/anklimov/lighthub
synced 2025-12-06 11:49:51 +03:00
interim spi-led fix
This commit is contained in:
@@ -9,6 +9,7 @@ public:
|
|||||||
virtual int Ctrl(short cmd, short n=0, int * Parameters=NULL, boolean send=true, int suffixCode=0, char* subItem=NULL) =0;
|
virtual int Ctrl(short cmd, short n=0, int * Parameters=NULL, boolean send=true, int suffixCode=0, char* subItem=NULL) =0;
|
||||||
virtual int isActive(){return 0;};
|
virtual int isActive(){return 0;};
|
||||||
virtual int getDefaultOnVal(){return 100;};
|
virtual int getDefaultOnVal(){return 100;};
|
||||||
|
virtual int getChanType(){return 0;}
|
||||||
protected:
|
protected:
|
||||||
Item * item;
|
Item * item;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1468,9 +1468,11 @@ int Item::SendStatus(int sendFlags) {
|
|||||||
{
|
{
|
||||||
// Preparing parameters payload //////////
|
// Preparing parameters payload //////////
|
||||||
CHstore st;
|
CHstore st;
|
||||||
|
int chanType = itemType;
|
||||||
|
if (driver) chanType = driver->getChanType();
|
||||||
//retrive stored values
|
//retrive stored values
|
||||||
st.aslong = getVal();
|
st.aslong = getVal();
|
||||||
switch (itemType) {
|
switch (chanType) {
|
||||||
//case CH_GROUP:
|
//case CH_GROUP:
|
||||||
case CH_RGBW:
|
case CH_RGBW:
|
||||||
case CH_RGB:
|
case CH_RGB:
|
||||||
@@ -1481,6 +1483,9 @@ int Item::SendStatus(int sendFlags) {
|
|||||||
snprintf(valstr, sizeof(valstr), "%d,%d,%d", st.h,st.s,st.v);
|
snprintf(valstr, sizeof(valstr), "%d,%d,%d", st.h,st.s,st.v);
|
||||||
else
|
else
|
||||||
snprintf(valstr, sizeof(valstr), "%d", st.v);
|
snprintf(valstr, sizeof(valstr), "%d", st.v);
|
||||||
|
break;
|
||||||
|
case CH_RELAY:
|
||||||
|
sendFlags &= ~SEND_PARAMETERS; //No need to send value for relay
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
snprintf(valstr, sizeof(valstr), "%d", st.aslong);
|
snprintf(valstr, sizeof(valstr), "%d", st.aslong);
|
||||||
|
|||||||
@@ -53,6 +53,11 @@ int out_SPILed::Poll()
|
|||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
int out_SPILed::getChanType()
|
||||||
|
{
|
||||||
|
return CH_RGB;
|
||||||
|
}
|
||||||
|
|
||||||
int out_SPILed::PixelCtrl(CHstore *st, short cmd, int from, int to, bool show, bool rgb)
|
int out_SPILed::PixelCtrl(CHstore *st, short cmd, int from, int to, bool show, bool rgb)
|
||||||
{
|
{
|
||||||
//debugSerial<<F("cmd: ")<<cmd<<endl;
|
//debugSerial<<F("cmd: ")<<cmd<<endl;
|
||||||
@@ -181,6 +186,7 @@ else item->SendStatus(SEND_PARAMETERS | SEND_DEFFERED);
|
|||||||
return 1;
|
return 1;
|
||||||
//break;
|
//break;
|
||||||
case S_CMD:
|
case S_CMD:
|
||||||
|
item->setCmd(cmd);
|
||||||
switch (cmd)
|
switch (cmd)
|
||||||
{
|
{
|
||||||
case CMD_ON:
|
case CMD_ON:
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ public:
|
|||||||
int Stop() override;
|
int Stop() override;
|
||||||
int Status() override;
|
int Status() override;
|
||||||
int isActive() override;
|
int isActive() override;
|
||||||
|
int getChanType() override;
|
||||||
int Ctrl(short cmd, short n=0, int * Parameters=NULL, boolean send=true, int suffixCode=0, char* subItem=NULL) override;
|
int Ctrl(short cmd, short n=0, int * Parameters=NULL, boolean send=true, int suffixCode=0, char* subItem=NULL) override;
|
||||||
int PixelCtrl(CHstore *st, short cmd, int from =0 , int to = 1024, bool show = 1, bool rgb = 0);
|
int PixelCtrl(CHstore *st, short cmd, int from =0 , int to = 1024, bool show = 1, bool rgb = 0);
|
||||||
int numLeds;
|
int numLeds;
|
||||||
|
|||||||
Reference in New Issue
Block a user