几个小时(几天!)后,我注意到几乎只使用了
Preferences.h
库附带的示例,但没有一个真正符合我的需求。
因为我是一个彻头彻尾的 C 菜鸟,所以我陷入了类型、演员表以及随之而来的一切可怕的事情:-(
所以:我正在为电池驱动的 ESP8266 编写代码,该代码读取传感器并将其发布到 MQTT 总线上。我想摆脱硬编码凭证。默认情况下,WiFiManager.h 库支持使用“ConfigPortal”网络界面更改 WiFi 凭据。在那里,我想为 MQTT 添加自定义字段,这些字段也可以更改并保存到持久内存中。
这是全球理念:
#include <Preferences.h>
// Declare vars
char mqtt_server[40];
char mqtt_port[6];
char mqtt_user[20];
char mqtt_pass[20];
// Read data from persistant memory or else return default
mqtt_server = preferences.getChar("mqtt_server", "default mqtt server");
mqtt_port = preferences.getChar("mqtt_port", "default mqtt port");
mqtt_user = preferences.getChar("mqtt_user", "default mqtt user");
mqtt_pass = preferences.getChar("mqtt_pass", "default mqtt pass");
// Connect to mqtt broker using the vars as just defined
// Pushing a button starts a ConfigPortal webinterface to change these vars
// Write new data to persistant memory
// get the new data from the webform (called "Mqtt_server.
preferences.begin("mqtt_config", false);
preferences.putChar("mqtt_server", new_mqtt_server);
preferences.putChar("mqtt_port", new_mqtt_port);
preferences.putChar("mqtt_user", new_mqtt_user);
preferences.putChar("mqtt_pass", new_mqtt_pass);
preferences.end();
将此视为伪代码,它显示了我想要实现的目标。
我有这样的问题:
目前我迷路了,所以这是我最后的选择......提前感谢您的思考!