查看: 2472|回复: 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! =============
===========================================================
怎么办?谢谢。
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

热门推荐

OLED 128*64自制可达10000000个选项的菜单(已更新)
OLED 128*64自制可达10000
OLED 128*64自制可达10000000个选项的菜单 温馨提示: 建议占个楼再食用本帖子
这个怎么整?标点都是英文的
这个怎么整?标点都是英文
a=a+1改成a++也不行
[WiFiduino-8266开发板测试]三、测试IO口
[WiFiduino-8266开发板测
首先测试IO口的关系,板载正面的D0~D15[D14,D15没有,相同的位置写的是D4,D5],反面
求助,arduino nano发热严重
求助,arduino nano发热严
我有一块arduino nano板,装在一个扩展板上(如下图),用扩展板上的外接电源接口(资
[限时福利]5分钟带你快速了解新一代开发板:M5STACK
[限时福利]5分钟带你快速
一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
快速回复 返回顶部 返回列表