Blinker两个滑块无法控制-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 764|回复: 9

[已处理] Blinker两个滑块无法控制

[复制链接]
发表于 2022-4-18 17:38 | 显示全部楼层 |阅读模式
请问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();
}


详细日志

详细日志

app界面

app界面
发表于 2022-4-18 18:51 | 显示全部楼层
 楼主| 发表于 2022-4-18 19:07 | 显示全部楼层
奈何col 发表于 2022-4-18 18:51
https://www.arduino.cn/thread-84332-1-1.html

下面是点击上面滑块(setVoltage)的详细日志,请帮忙看一下,两个滑块里都只放了一个打印输出,
19:03:55.638 -> [81712] fromDevice: a46ca8b1a53e11ec810c5254
19:03:55.638 -> [81724] Authority uuid
19:03:55.672 -> [81745] available: 1
19:03:55.672 -> [81745] checkAvail: 1
19:03:55.672 -> [81745] parse data: {"setVoltage":9}
19:03:55.672 -> [81745] defined BLINKER_ARDUINOJSON
19:03:55.672 -> [81745] autoManager begin: 0 0
19:03:55.672 -> [81758] data_rtKeyCount: 0
19:03:55.672 -> [81758] setSwitch isParsed
19:03:55.706 -> [81758] checkNum count: 2
19:03:55.706 -> [81758] intWidgetsParse isParsed
19:03:55.706 -> A被运行
19:03:55.706 -> [81771] checkNum count: 2
19:03:55.706 -> [81771] intWidgetsParse isParsed
19:03:55.706 -> V被运行
19:03:55.706 -> [81771] _fresh need flush
19:03:55.706 -> [81783] isParsed
19:03:55.706 -> [81783] flush
19:03:58.009 -> [84071] Got: {"fromDevice":"a46ca8b1a53e11ec810c5254","data":{"rt":["voltage","current","power","temperature"]}}
19:03:58.009 -> [84071] data: {"rt":["voltage","current","power","temperature"]}
19:03:58.009 -> [84084] fromDevice: a46ca8b1a53e11ec810c5254
19:03:58.009 -> [84084] Authority uuid
19:03:58.043 -> [84104] available: 1
19:03:58.043 -> [84104] checkAvail: 1
19:03:58.043 -> [84104] parse data: {"rt":["voltage","current","power","temperature"]}
19:03:58.043 -> [84104] defined BLINKER_ARDUINOJSON
19:03:58.043 -> [84117] autoManager begin: 0 0
19:03:58.043 -> [84117] containsKey rt
19:03:58.043 -> [84117] ===>rt get_key: voltage
19:03:58.043 -> [84117] ===>rt get_key: current
19:03:58.043 -> [84129] ===>rt get_key: power
19:03:58.043 -> [84130] ===>rt get_key: temperature
19:03:58.076 -> [84130] data_rtKeyCount: 4
19:03:58.076 -> [84130] ========data_rtRun
19:03:58.076 -> [84142] checkNum count: 2
19:03:58.076 -> [84142] checkNum count: 2
19:03:58.076 -> [84142] _fresh need flush
19:03:58.076 -> [84143] isParsed
19:03:58.076 -> [84143] flush
发表于 2022-4-18 23:10 | 显示全部楼层
开发板型号
lib版本
package版本
提供下
 楼主| 发表于 2022-4-18 23:19 | 显示全部楼层
奈何col 发表于 2022-4-18 23:10
开发板型号
lib版本
package版本

开发板:合宙一款核心板,芯片是乐鑫ESP32C3,附图最后
lib版本:blinker-library-0.3.9  点灯官网连接下载
package版本:32_package_2.0.2_arduinocn  点灯官网连接下载
e801a7bbc604da23adb2105f8081202.png
发表于 2022-4-19 18:38 | 显示全部楼层
可能是bug,待我们确认修复
 楼主| 发表于 2022-4-19 18:40 | 显示全部楼层
奈何col 发表于 2022-4-19 18:38
可能是bug,待我们确认修复

好的,多谢
 楼主| 发表于 2022-4-19 22:45 | 显示全部楼层
奈何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组件,功能正常


发表于 2022-4-20 00:44 | 显示全部楼层
该问题是由于老版本arduinoJSON不支持esp32c3导致,上月已修复。
您可以使用我们开发中的版本 blinker-iot/blinker-library at dev_3.0 (github.com)


 楼主| 发表于 2022-4-20 20:52 | 显示全部楼层
奈何col 发表于 2022-4-20 00:44
该问题是由于老版本arduinoJSON不支持esp32c3导致,上月已修复。
您可以使用我们开发中的版本 blinker-iot/ ...

多谢,新库文件已正常.新问题我会在bug区提交

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:23 , Processed in 0.210985 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表