Blinker两个滑块无法控制
请问Blinker里添加两个滑块,改变一个另一个滑块也会被执行,无关代码已被删除,请教问题出在哪里#define BLINKER_PRINT Serial
#define BLINKER_WIFI
#include <Blinker.h>
//定义KEY和WiFi信息
//----------------------------------------------
char auth[] = "*********";
char ssid[] = "********";
char pswd[] = "*********";
//----------------------------------------------
//新建组件对象
BlinkerSlider SliderA("setCurrent");
BlinkerSlider SliderV("setVoltage");
//电压设定滑块
void sliderV_callback(int32_t value)
{
Serial.println("V被运行");
}
//电流设定滑块
void sliderA_callback(int32_t value)
{
Serial.println("A被运行");
}
//初始化
void setup()
{
Serial.begin(115200);
pinMode(12, OUTPUT);
digitalWrite(12, HIGH);
Blinker.begin(auth, ssid, pswd);
BLINKER_DEBUG.stream(BLINKER_PRINT);
BLINKER_DEBUG.debugAll();
SliderA.attach(sliderA_callback);
SliderV.attach(sliderV_callback);
}
void loop()
{
Blinker.run();
}
https://www.arduino.cn/thread-84332-1-1.html 奈何col 发表于 2022-4-18 18:51
https://www.arduino.cn/thread-84332-1-1.html
下面是点击上面滑块(setVoltage)的详细日志,请帮忙看一下,两个滑块里都只放了一个打印输出,
19:03:55.638 -> fromDevice: a46ca8b1a53e11ec810c5254
19:03:55.638 -> Authority uuid
19:03:55.672 -> available: 1
19:03:55.672 -> checkAvail: 1
19:03:55.672 -> parse data: {"setVoltage":9}
19:03:55.672 -> defined BLINKER_ARDUINOJSON
19:03:55.672 -> autoManager begin: 0 0
19:03:55.672 -> data_rtKeyCount: 0
19:03:55.672 -> setSwitch isParsed
19:03:55.706 -> checkNum count: 2
19:03:55.706 -> intWidgetsParse isParsed
19:03:55.706 -> A被运行
19:03:55.706 -> checkNum count: 2
19:03:55.706 -> intWidgetsParse isParsed
19:03:55.706 -> V被运行
19:03:55.706 -> _fresh need flush
19:03:55.706 -> isParsed
19:03:55.706 -> flush
19:03:58.009 -> Got: {"fromDevice":"a46ca8b1a53e11ec810c5254","data":{"rt":["voltage","current","power","temperature"]}}
19:03:58.009 -> data: {"rt":["voltage","current","power","temperature"]}
19:03:58.009 -> fromDevice: a46ca8b1a53e11ec810c5254
19:03:58.009 -> Authority uuid
19:03:58.043 -> available: 1
19:03:58.043 -> checkAvail: 1
19:03:58.043 -> parse data: {"rt":["voltage","current","power","temperature"]}
19:03:58.043 -> defined BLINKER_ARDUINOJSON
19:03:58.043 -> autoManager begin: 0 0
19:03:58.043 -> containsKey rt
19:03:58.043 -> ===>rt get_key: voltage
19:03:58.043 -> ===>rt get_key: current
19:03:58.043 -> ===>rt get_key: power
19:03:58.043 -> ===>rt get_key: temperature
19:03:58.076 -> data_rtKeyCount: 4
19:03:58.076 -> ========data_rtRun
19:03:58.076 -> checkNum count: 2
19:03:58.076 -> checkNum count: 2
19:03:58.076 -> _fresh need flush
19:03:58.076 -> isParsed
19:03:58.076 -> flush
开发板型号
lib版本
package版本
提供下 奈何col 发表于 2022-4-18 23:10
开发板型号
lib版本
package版本
开发板:合宙一款核心板,芯片是乐鑫ESP32C3,附图最后
lib版本:blinker-library-0.3.9点灯官网连接下载
package版本:32_package_2.0.2_arduinocn点灯官网连接下载
可能是bug,待我们确认修复 奈何col 发表于 2022-4-19 18:38
可能是bug,待我们确认修复
好的,多谢 奈何col 发表于 2022-4-19 18:38
可能是bug,待我们确认修复
又对slider进行测试,结果如下,可供参考
BlinkerSlider SliderA("setVoltage");callback里如果被执行打印:A被执行
BlinkerSlider SliderV("setCurrent");callback里如果被执行打印:V被执行
Blinker.attachData(dataRead); dataRead里如果被执行打印:BUG
运行测试
测试一
滑块1组件名称(APP): setVoltage 点击执行结果:V被执行,A被执行//异常
滑块2组件名称(APP): setCurrent 点击执行结果:V被执行,A被执行//异常
测试二
滑块1组件名称(APP): setVoltage1 点击执行结果:V被执行//正常
滑块2组件名称(APP): setCurrent1 点击执行结果:A被执行//正常
测试三
滑块1组件名称(APP): setVoltage123 点击执行结果:V被执行//正常
滑块2组件名称(APP): setCurrent456 点击执行结果:A被执行//正常
测试四
滑块1组件名称(APP): setVol 点击执行结果:V被执行//正常
滑块2组件名称(APP): setCur 点击执行结果:A被执行//正常
测试五
滑块1组件名称(APP): setV 点击执行结果:V被执行//正常
滑块2组件名称(APP): setC 点击执行结果:A被执行//正常
测试六
滑块1组件名称(APP): set1 点击执行结果:V被执行,A被执行//异常
滑块2组件名称(APP): set2 点击执行结果:V被执行,A被执行//异常
滑块1组件名称(APP): stotg (抽取组件名称字符)点击执行结果:V被执行,A被执行//异常
滑块2组件名称(APP): stret (抽取组件名称字符)点击执行结果:V被执行,A被执行//异常
初步结论:
APP端slider组件名不能跟BlinkerSlider SliderA("setVoltage");里一样,否则执行两个
APP端slider组件名只要有部分字符与BlinkerSlider SliderA("setVoltage");里一样,就会执行两个
未绑定的slider组件被触发,不会被Blinker.attachData(dataRead); 捕捉,反而被错误解析去执行callback里语句
日志太多无法一一列出,日志里从app端返回的slider组件名及变量是正确的,感觉是lib组件没有正常解析组件名
测试过button组件,功能正常
该问题是由于老版本arduinoJSON不支持esp32c3导致,上月已修复。
您可以使用我们开发中的版本 blinker-iot/blinker-library at dev_3.0 (github.com)
奈何col 发表于 2022-4-20 00:44
该问题是由于老版本arduinoJSON不支持esp32c3导致,上月已修复。
您可以使用我们开发中的版本 blinker-iot/ ...
多谢,新库文件已正常.新问题我会在bug区提交
页:
[1]