从存储在 ESP8266 中的 SPIFFS 中的变量设置全局对象
Set global object from variable stored in SPIFFS in ESP8266
我以前就是这样设置这个全局对象的。
MqttClient mqtt("192.168.1.8", 1883, msgRev);
我想检索存储在 spiff 中的 IP 地址并用它来声明这个全局对象。
MqttClient mqtt(AppSettings.MQTTUWL, 1883, msgRev);
AppSettings 包含 spiff 的结构。
这是我的 init(),
void init()
{
spiffs_mount(); // Mount file system, in order to work with files
AppSettings.load();
//...
}
问题是在目标代码声明期间,AppSettings 尚未加载。我应该如何声明全局对象,以便它能够从 AppSettings 中检索值?
我在 ESP8266 上使用 SMING 框架。
您必须将 MqttClient
声明为指针,并在安装 SPIFFS 后对其进行初始化,或者将 SPIFFS 安装代码放入客户端 class 的构造函数中(这可能不是'不是你想要的)。
要执行前者,您的代码将如下所示:
MqttClient *mqtt;
void init()
{
spiffs_mount(); // Mount file system, in order to work with files
AppSettings.load();
mqtt = new MqttClient(AppSettings.MQTTUWL, 1883, msgRev);
//...
}
这只会在安装完成后创建客户端。
我以前就是这样设置这个全局对象的。
MqttClient mqtt("192.168.1.8", 1883, msgRev);
我想检索存储在 spiff 中的 IP 地址并用它来声明这个全局对象。
MqttClient mqtt(AppSettings.MQTTUWL, 1883, msgRev);
AppSettings 包含 spiff 的结构。
这是我的 init(),
void init()
{
spiffs_mount(); // Mount file system, in order to work with files
AppSettings.load();
//...
}
问题是在目标代码声明期间,AppSettings 尚未加载。我应该如何声明全局对象,以便它能够从 AppSettings 中检索值?
我在 ESP8266 上使用 SMING 框架。
您必须将 MqttClient
声明为指针,并在安装 SPIFFS 后对其进行初始化,或者将 SPIFFS 安装代码放入客户端 class 的构造函数中(这可能不是'不是你想要的)。
要执行前者,您的代码将如下所示:
MqttClient *mqtt;
void init()
{
spiffs_mount(); // Mount file system, in order to work with files
AppSettings.load();
mqtt = new MqttClient(AppSettings.MQTTUWL, 1883, msgRev);
//...
}
这只会在安装完成后创建客户端。