Повторная инициализация объекта во время установки для переопределения глобального init при использовании UniversalTelegramBot - PullRequest
0 голосов
/ 29 марта 2020

Я работаю над реализацией UniversalTelegramBot (https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot) и во всех примерах я вижу, что бот объявляется как глобальная переменная. Это требует, чтобы переменная BOTtoken была доступна очень рано в последовательности загрузки, и она там определена как фиксированное значение.

Я пытаюсь сохранить BOTtoken в EEPROM и хотел бы определить бота во время установки , сохраняя при этом глобальный охват.

Возможно ли это? (дайте мне знать, если вам нужен код)

WiFiClientSecure client;
UniversalTelegramBot bot(SECRET_BOT_TOKEN, client); // here it is defined at the global level

void setup() {
    Serial.begin(115200);

    EEPROM.begin(EEPROM_SIZE);

    ReadUsersFromEEPROM(); // then I read some users from the EEPROM, including the token

    UniversalTelegramBot bot(bot_token, client); // here is where I would like the init of the BOT to be, so it use the bot_token I just read from EEPROM, but if I re-declare like this it does not overrride the global setup and if I remove the global declaration, this remains local.


}

1 Ответ

0 голосов
/ 01 апреля 2020

Хорошо - я нашел ответ. На самом деле, оригинальный кодировщик кода Universal Telegram Bot ответил мне в GitHub.

Часть, которую я пропустил, заключалась в том, чтобы определить бота как указатель в глобальной области видимости и ввести в настройку тег NEW.

bot = new UniversalTelegramBot (bot_token, client);

Вот пример: https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot/blob/master/examples/ESP8266/UsingWiFiManager/UsingWiFiManager.ino

Спасибо всем !!!

...