BLINKER编译出错,cannot declare field 'BlinkerSerialESPMQTT::Transp' to ...-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3396|回复: 9

[已解答] BLINKER编译出错,cannot declare field 'BlinkerSerialESPMQTT::Transp' to ...

[复制链接]
发表于 2019-12-9 15:32 | 显示全部楼层 |阅读模式
本帖最后由 invent 于 2019-12-9 15:35 编辑

基本信息
  • [x] 这个问题满足提问指南
  • [x] 我阅读了开发文档
  • [x] 我使用了最新的库及APP进行测试,但是问题仍然存在
  • [x] 我搜索过类似问题的解决方法但是仍然无法解决
  • [] 有设备端的LOG信息
  • [x] 有编译报错信息
  • [x] 我已填写基本信息
设备信息
  • 硬件: [Arduino UNO+ESP8266-AT]
  • 接入方式: [WIFI]
  • package版本: [esp8266-arduino-2.6.2]
  • blinker库版本: [arduino 0.3.3]
  • 开发环境: [Arduino]
  • 操作系统: [Windows]
IDE 中的设置
ESP8266
  • Module: [Nodemcu]
  • Flash Mode: [dio]
  • Flash Size: [4MB]
  • lwip Variant: [v1.4]
  • Reset Method: [nodemcu]
  • Flash Frequency: [40Mhz]
  • CPU Frequency: [80Mhz]
  • Upload Using: [SERIAL]
  • Upload Speed: [115200] (serial upload only)手机信息及APP信息
Arduino UNO
  • Module: [Arduino UNO]
  • Flash Mode: [qio|dio|other]
  • Upload Using: [SERIAL]
问题描述:
使用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

 楼主| 发表于 2019-12-12 08:47 | 显示全部楼层
没有人解答么?这是什么社区?

点评

1.不太可能有专人等着给您回答问题; 2.按文档操作使用例程不会有编译问题; 3. Blinker.begin(auth, ssid, pswd, 2, 3); 没有这种写法,请按文档和例程操作。  详情 回复 发表于 2019-12-12 10:42
发表于 2019-12-12 10:42 | 显示全部楼层
invent 发表于 2019-12-12 08:47
没有人解答么?这是什么社区?

1.不太可能有专人等着给您回答问题;
2.按文档操作使用例程不会有编译问题;
3.  Blinker.begin(auth, ssid, pswd, 2, 3);  没有这种写法,请按文档和例程操作。
 楼主| 发表于 2019-12-12 14:22 | 显示全部楼层
本帖最后由 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模块支持文档,截图如下:
8A79A3B9-BD9B-44f4-BCFA-5D33E91BA10A.png
请您指出我的错误之处,谢谢!


发表于 2019-12-12 22:32 | 显示全部楼层
invent 发表于 2019-12-12 14:22
您好,我确实是按照文档的说明进行操作,比如您说的Blinker.begin(auth, ssid, pswd, 2, 3); 的写法,可以 ...

那是8266做AT模块的写法。请看8266直接接入的快速示例
https://diandeng.tech/doc/getting-start-8266
 楼主| 发表于 2019-12-12 23:06 | 显示全部楼层
coloz 发表于 2019-12-12 22:32
那是8266做AT模块的写法。请看8266直接接入的快速示例
https://diandeng.tech/doc/getting-start-8266 ...

您好,谢谢您的解答,但是请看我的问题,我就是在尝试使用8266-AT指令开发。

E84384B1-D40F-490a-AC0C-BC9CFA5414D1.png
所以并没有解决我遇到的问题。
请再帮我看一下,而且我发现论坛里其他用户也遇到过这个问题,最终都没有很好的解答。




发表于 2019-12-12 23:26 | 显示全部楼层
invent 发表于 2019-12-12 23:06
您好,谢谢您的解答,但是请看我的问题,我就是在尝试使用8266-AT指令开发。

抱歉,因为您说nodemcu,我以为您是用nodemcu。
这个问题已经修复,在dev3.0分支,还未并入master
https://github.com/blinker-iot/blinker-library/tree/dev_3.0
 楼主| 发表于 2019-12-12 23:44 | 显示全部楼层
coloz 发表于 2019-12-12 23:26
抱歉,因为您说nodemcu,我以为您是用nodemcu。
这个问题已经修复,在dev3.0分支,还未并入master
https:/ ...

非常感谢!我去试一下。另外问个问题,PlatformIO的Blinker库为什么从1.0.x就不更新了?

点评

我们没有提供过PlatformIO相关支持,可能是其他用户上传的  详情 回复 发表于 2019-12-13 00:36
发表于 2019-12-13 00:36 | 显示全部楼层
invent 发表于 2019-12-12 23:44
非常感谢!我去试一下。另外问个问题,PlatformIO的Blinker库为什么从1.0.x就不更新了? ...

我们没有提供过PlatformIO相关支持,可能是其他用户上传的
发表于 2021-8-19 20:32 | 显示全部楼层
我之前是编译不通过,更新库后问题就解决了。或许你也可以试试更新库文件。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 12:47 , Processed in 0.187298 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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