Skip to content

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

@LesnikEvg

Description

@LesnikEvg

В случае перезапуска в отсутствии интернета время задается нулём и далее не считается. Думаю взять последний сохраненный 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;
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions