BLINKER编译出错,cannot declare field 'BlinkerSerialESPMQTT::Transp' to ...
本帖最后由 invent 于 2019-12-9 15:35 编辑基本信息
[*] 这个问题满足提问指南
[*] 我阅读了开发文档
[*] 我使用了最新的库及APP进行测试,但是问题仍然存在
[*] 我搜索过类似问题的解决方法但是仍然无法解决
[*][] 有设备端的LOG信息
[*] 有编译报错信息
[*] 我已填写基本信息
设备信息
[*]硬件:
[*]接入方式:
[*]package版本:
[*]blinker库版本:
[*]开发环境:
[*]操作系统:
IDE 中的设置
ESP8266
[*]Module:
[*]Flash Mode:
[*]Flash Size:
[*]lwip Variant:
[*]Reset Method:
[*]Flash Frequency:
[*]CPU Frequency:
[*]Upload Using:
[*]Upload Speed: (serial upload only)手机信息及APP信息
Arduino UNO
[*]Module: [Arduino UNO]
[*]Flash Mode:
[*]Upload Using:
问题描述:
使用UNO+ESP8266-AT模式测试开发,
ESP8266_AT_Firmware_WIFI固件编译正常,固件下载正常,串口发送AT指令测试8266模块正常;
UNO程序无论使用Arduino IDE 1.8.10或PlatformIO均编译失败,错误提示信息如下:
代码
#define BLINKER_WIFI
#include <Arduino.h>
#include <Blinker.h>
const char auth[] = "xxx";
const char ssid[] = "xxx";
const char pswd[] = "xxx";
BlinkerButton Light("btn_abc");
void Light_callback(const String & state)
{
}
void setup() {
Serial.begin(9600);
BLINKER_DEBUG.stream(Serial);
Blinker.begin(auth, ssid, pswd, 2, 3);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
Light.attach(Light_callback);
}
void loop() {
Blinker.run();
}
编译信息
C:\users\invent\.platformio\lib\blinker-library-master\src/BlinkerSerialESPMQTT.h: At global scope:
C:\users\invent\.platformio\lib\blinker-library-master\src/BlinkerSerialESPMQTT.h:154:27: error: cannot declare field 'BlinkerSerialESPMQTT::Transp' to be of abstract type 'BlinkerSerialMQTT'
BlinkerSerialMQTT Transp;
^
In file included from C:\users\invent\.platformio\lib\blinker-library-master\src/BlinkerSerialESPMQTT.h:4:0,
from C:\users\invent\.platformio\lib\blinker-library-master\src/Blinker.h:46,
from src\main.cpp:6:
C:\users\invent\.platformio\lib\blinker-library-master\src/Adapters/BlinkerSerialMQTT.h:26:7: note: because the following virtual functions are pure within 'BlinkerSerialMQTT':
class BlinkerSerialMQTT : public BlinkerStream
没有人解答么?这是什么社区? invent 发表于 2019-12-12 08:47
没有人解答么?这是什么社区?
1.不太可能有专人等着给您回答问题;
2.按文档操作使用例程不会有编译问题;
3.Blinker.begin(auth, ssid, pswd, 2, 3);没有这种写法,请按文档和例程操作。 本帖最后由 invent 于 2019-12-12 14:23 编辑
奈何col 发表于 2019-12-12 10:42
1.不太可能有专人等着给您回答问题;
2.按文档操作使用例程不会有编译问题;
3.Blinker.begin(auth, ss ...
您好,我确实是按照文档的说明进行操作,比如您说的Blinker.begin(auth, ssid, pswd, 2, 3); 的写法,可以写成Blinker.begin(auth, ssid, pswd);默认情况下就是使用GPIO2,3作为软串口通讯,加入2,3是为了方便记忆;
Blinker.begin(); 函数的使用参考了官方文档ESP_AT模块支持文档,截图如下:
请您指出我的错误之处,谢谢!
invent 发表于 2019-12-12 14:22
您好,我确实是按照文档的说明进行操作,比如您说的Blinker.begin(auth, ssid, pswd, 2, 3); 的写法,可以 ...
那是8266做AT模块的写法。请看8266直接接入的快速示例
https://diandeng.tech/doc/getting-start-8266 coloz 发表于 2019-12-12 22:32
那是8266做AT模块的写法。请看8266直接接入的快速示例
https://diandeng.tech/doc/getting-start-8266 ...
您好,谢谢您的解答,但是请看我的问题,我就是在尝试使用8266-AT指令开发。
所以并没有解决我遇到的问题。
请再帮我看一下,而且我发现论坛里其他用户也遇到过这个问题,最终都没有很好的解答。
invent 发表于 2019-12-12 23:06
您好,谢谢您的解答,但是请看我的问题,我就是在尝试使用8266-AT指令开发。
抱歉,因为您说nodemcu,我以为您是用nodemcu。
这个问题已经修复,在dev3.0分支,还未并入master
https://github.com/blinker-iot/blinker-library/tree/dev_3.0
coloz 发表于 2019-12-12 23:26
抱歉,因为您说nodemcu,我以为您是用nodemcu。
这个问题已经修复,在dev3.0分支,还未并入master
https:/ ...
非常感谢!我去试一下。另外问个问题,PlatformIO的Blinker库为什么从1.0.x就不更新了? invent 发表于 2019-12-12 23:44
非常感谢!我去试一下。另外问个问题,PlatformIO的Blinker库为什么从1.0.x就不更新了? ...
我们没有提供过PlatformIO相关支持,可能是其他用户上传的 我之前是编译不通过,更新库后问题就解决了。或许你也可以试试更新库文件。
页:
[1]