怎么让数据组件的值随着滑动组件的值改变?
如图,我将滑块的值设置为0-2,0代表风扇不转,1代表一档,2代表2档。我尝试了两个办法:
1. 在滑块的回调函数中加入slider.print();2. 在数据管理dataRead中添加slider.print();
3. 添加全局变量,在滑块的回调函数中改变全局变量的值。
新手,对blinker理解不深,还请高手指教!
分别如下:1:
void SLIDER_FAN_callback(int value)
{
BLINKER_LOG("get slider value: ", value);
if (value == 0) {
ledcWrite(pwmChannel, 0);
FAN_NUM.unit("leve");
SLIDER_FAN.print(value) ;
}else if (value == 1) {
ledcWrite(pwmChannel, 200);
FAN_NUM.unit("leve");
SLIDER_FAN.print(value)
}else {
ledcWrite(pwmChannel, 255);
FAN_NUM.unit("leve");
SLIDER_FAN.print(value)
}
}
2.
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: ", data);
Blinker.vibrate();
uint32_t BlinkerTime = millis();
Blinker.print("millis", BlinkerTime);
FAN_NUM.print(fanLevel);
}
3.
int fanLevel = 0;
void SLIDER_FAN_callback(int value)
{
BLINKER_LOG("get slider value: ", value);
if (value == 0) {
ledcWrite(pwmChannel, 0);
FAN_NUM.unit("leve");
fanLevel = value;
}else if (value == 1) {
ledcWrite(pwmChannel, 200);
FAN_NUM.unit("leve");
fanLevel = value;
}else {
ledcWrite(pwmChannel, 255);
FAN_NUM.unit("leve");
fanLevel = value;
}
}
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: ", data);
Blinker.vibrate();
uint32_t BlinkerTime = millis();
Blinker.print("millis", BlinkerTime);
FAN_NUM.print(fanLevel);
}
目前只能通过设备反馈修改组件的值 目前只能通过设备反馈修改组件的值 coloz 发表于 2021-8-10 10:08
目前只能通过设备反馈修改组件的值
大佬,追问下,我的按键组件设置为开关模式时,每次按下好像state都是一样的,这是为啥啊?
[图片]
{"light":"on"}
{"light":{"swi":"off"}}
{"light":"on"}
{"light":{"swi":"off"}}
{"light":"on"}
{"light":{"swi":"off"}}
coloz 发表于 2021-8-10 10:08
目前只能通过设备反馈修改组件的值
这是回调函数
void LIGHTBUTTON_callback(const String & state) {
BLINKER_LOG("get light state: ", state);
if (state=="on") {
digitalWrite(LIGHT, LOW);
ledState = false;
LIGHTBUTTON.print("off");
} else if(state=="off"){
digitalWrite(LIGHT, HIGH);
ledState = true;
LIGHTBUTTON.print("on");
}
OLEDPage = 3;
}
coloz 发表于 2021-8-10 10:08
目前只能通过设备反馈修改组件的值
没事了大佬,我改了你们的实例函数导致的,谢谢。。。
页:
[1]