这是我过去设置此全局对象的方式。
MqttClient mqtt("192.168.1.8", 1883, msgRev);
我想检索存储在spiffs中的IP地址,并使用它来声明这个全局对象。
MqttClient mqtt(AppSettings.MQTTUWL, 1883, msgRev);
AppSettings包含spiffs的结构。
这是我的init(),
void init()
{
spiffs_mount(); // Mount file system, in order to work with files
AppSettings.load();
//...
}
问题是在声明目标代码期间,AppSettings尚未加载。我应该如何声明全局对象,使其能够从AppSettings中检索值?
我在ESP8266上使用SMING框架。
答案 0 :(得分:1)
您必须将MqttClient
声明为指针,并在挂载SPIFFS后初始化它,或者将SPIFFS挂载代码放在客户端类的构造函数中(这可能不是您想要的)。
要做前者,您的代码应如下所示:
MqttClient *mqtt;
void init()
{
spiffs_mount(); // Mount file system, in order to work with files
AppSettings.load();
mqtt = new MqttClient(AppSettings.MQTTUWL, 1883, msgRev);
//...
}
这只会在安装完成后创建客户端。