查看: 3517|回复: 1

[使用文档] blinker 库开发注意事项

[复制链接]

该用户从未签到

发表于 2018-12-1 19:01 | 显示全部楼层 |阅读模式
本帖最后由 三水 于 2018-12-27 11:43 编辑

Arduino支持

回调函数

使用回调函数是为了更方便梳理程序逻辑,但回调函数中若有阻塞类型的代码(如: while delay 或 Serial读写等)将可能影响设备的正常通信及工作。
==用户在开发过程中务必避免在回调中执行阻塞类型的代码, 请使用标志位等方法在回调外对标志位进行查询检测执行控制。==

ESP8266&ESP32

EEPROM

以下EEPROM地址在 blinker 库中已占用, 用户开发时务必避开以下地址。  

地址 用途
0-1279 自动化控制数据
1280-1535 专属设备数据
1536-2431 定时器配置数据
2432-2435 ESP AT模块串口配置数据
2436-2447 OTA配置数据

Ticker

ESP-Arduino SDK 中官方提供了硬件定时器的库Ticker。
用户开发时若需要使用到Ticker, 务必避免在Ticker中断回调中执行IO阻塞性代码。
请使用标志位等方法在回调外对标志位进行查询检测执行控制, 以避免看门狗复位。  

官方文档提醒 : It is currently not recommended to do blocking IO operations (network, serial, file) from Ticker callback functions. Instead, set a flag inside the ticker callback and check for that flag inside the loop function.  

WiFiClientSecure

blinker 库中使用了:

  • ESP8266BearSSL::WiFiClientSecureWiFiClient  
  • ESP32WiFiClientSecureWiFiClient   

注: ESP8266 package 已使用 BearSSL::WiFiClientSecure。
原有的 axTSL 的 WiFiClientSecure 将废弃且不能和 BearSSL 同时使用, 可能导致连接失败及堆栈溢出。  

对应的对象名为

BearSSL::WiFiClientSecure   client_mqtt;// ESP8266
WiFiClientSecure            client_s;// ESP32
WiFiClient                  client;// ESP32 & ESP8266  

用户使用中若要使用到以上 库/类 时, 建议 extern 对应对象并 stop
如需要使用到 ESP8266 的 WiFiClientSecure:

void secureConnect()
{
    extern BearSSL::WiFiClientSecure client_mqtt;
    BearSSL::WiFiClientSecure client;

    client_mqtt.stop();
    client.connect(host, httpsPort);
}

如需要使用到 ESP8266 的 HTTPS:

void secureConnect()
{
    extern BearSSL::WiFiClientSecure client_mqtt;
    client_mqtt.stop();

    std::unique_ptr<BearSSL::WiFiClientSecure>client_s(new BearSSL::WiFiClientSecure);

    // client_s->setFingerprint(fingerprint);
    client_s->setInsecure();

    HTTPClient https;

    https.begin(*client_s, url);

    https.addHeader(conType, application);
    uint8_t httpCode = https.POST(msg);
    String payload = https.getString();

    https.end();
}

该用户从未签到

发表于 2019-5-2 18:52 | 显示全部楼层
[41]
__       __                __
/\ \     /\ \    __        /\ \              v0.3.1
\ \ \___ \ \ \  /\_\    ___\ \ \/'\      __   _ __   
\ \ '__`\\ \ \ \/\ \ /' _ `\ \ , <    /'__`\/\`'__\
  \ \ \L\ \\ \ \_\ \ \/\ \/\ \ \ \\`\ /\  __/\ \ \./
   \ \_,__/ \ \__\\ \_\ \_\ \_\ \_\ \_\ \____\\ \_\  
    \/___/   \/__/ \/_/\/_/\/_/\/_/\/_/\/____/ \/_/  
    To better use blinker with your IoT project!
    Download latest blinker library here!
    => https://github.com/blinker-iot/blinker-library


[75] Connecting to China-Net ehSF

[79] ESP8266_MQTT initialized...

[81]
===========================================================
================== Blinker Timer loaded! ==================
Warning!EEPROM address 1536-2431 is used for Blinker Timer!
============= DON'T USE THESE EEPROM ADDRESS! =============
===========================================================
怎么办?谢谢。
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

热门推荐

Blynk与m5stack basic以及uiflow的交互玩法
Blynk与m5stack basic以及
Blynk与m5stack basic以及uiflow的交互玩法 [准备工作我们假设玩家已经熟悉下面的准备
求助oled显示屏 中间有一条不显示 折腾好久没明白是咋回事
求助oled显示屏 中间有一
以下是源代码,课程做东西需要,卡在了这一环节,求大神指教(跪 #include #i
中文 字库 的8针 OLED 12864模块 arduino
中文 字库 的8针 OLED 128
屏幕电路SPI连线: 中文字库OLED Arduino UNO GND GND
DIY X-Y 平面激光器
DIY X-Y 平面激光器
DIY X-Y 平面激光器 总成本不到50元,性能一点不比市面的差. Arduino UNO x1 舵机 x2
【干货分享】mega2560原理图PCB图纸altium designer18
【干货分享】mega2560原理
分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表