Установить глобальный объект из переменной, хранящейся в SPIFFS в ESP8266

Вот как я установил этот глобальный объект в прошлом.

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.

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

Это создаст клиента только после завершения монтажа.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]