1

这就是我过去设置这个全局对象的方式。

MqttClient mqtt("192.168.1.8", 1883, msgRev);

我想检索存储在 spiffs 中的 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 框架。

4

1 回答 1

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);
   //...
}

这只会在挂载完成后创建客户端。

于 2016-03-09T20:44:41.330 回答