2016-03-04 69 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); 
    //... 
} 

這已完成安裝後,只會造成客戶端。