FastBot icon indicating copy to clipboard operation
FastBot copied to clipboard

Как можно задать UNIX время без подключения?

Open LesnikEvg opened this issue 1 year ago • 0 comments

В случае перезапуска в отсутствии интернета время задается нулём и далее не считается. Думаю взять последний сохраненный unix из памяти контроллера, но не понимаю как его задать... Функции ниже не дают ответа

    // получить текущее unix время
    uint32_t getUnix() {
        if (_unix) {
            // защита от переполнения разности через 50 суток
            uint32_t diff = millis() - _lastUpd;
            if (_unix && diff > 86400000ul) {
                _unix += diff / 1000ul;
                _lastUpd = millis() - diff % 1000ul;
            }
            return _unix + (millis() - _lastUpd) / 1000ul;
        }
        return 0;
    }

    // получить текущее время, указать часовой пояс в часах или минутах
    FB_Time getTime(int16_t gmt) {
        return FB_Time(getUnix(), gmt);
    }

    // проверка, синхронизировано ли время
    bool timeSynced() {
        return _unix;
    }

LesnikEvg avatar Jan 12 '25 13:01 LesnikEvg