Вот как я установил этот глобальный объект в прошлом.
MqttClient mqtt("192.168.1.8", 1883, msgRev);
Я хочу получить IP-адрес, который хранится в spiffs, и использовать его для объявления этого глобального объекта.
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?
Я использую SMING Framework на ESP8266.
Вы должны были бы либо объявить 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);
//...
}
Это создаст клиента только после завершения монтажа.
Других решений пока нет …