2016-03-04 71 views
1

这就是我过去设置这个全局对象的方法。设置ESP8266中存储在SPIFFS中变量的全局对象

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框架。

回答

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

这已完成安装后,只会造成客户端。