Библиотека Time, Timezone, UTC
- Войдите на сайт для отправки комментариев
Вопрос, господа! Существует такая проблема: я с модуля GPS получаю время, каждую минуту синхронизирую RTC:
void SyncRTC_GPS() { tm.Hour = gps.time.hour(); tm.Minute = gps.time.minute(); tm.Second = gps.time.second(); Serial.println("Sync TIME complit "); tm.Day = gps.date.day(); tm.Month = gps.date.month(); tm.Year = tmYearToCalendar(gps.date.year()); Serial.println("Sync Date complit "); RTC.write(tm); }
Далее с RTC беру время и вывожу на дисплей пока видны спутники на горизонте (соответственно оно в UTC).
Каким образом можно сделать корректное смещение часового пояса, что бы учесть пограничные значения для перевода Даты?
Пробовал костыль - подключать библиотеку Time (что бы использовать контроллер в качестве посредника подсчета времени и библиотеки Timezone для смещения времени ), однако что то с библиотекой Time пошло не так.
Примеры из комплекта библиотеки Time не работают (например при получении времени из RTC выводится "9:55:46 16 1 1984", хотя при обращении к RTC через read , т.е. напрямую
if (RTC.read(tm)) { // выводим время с RTC на дисплей writeRegistersInt(8, tm.Hour); writeRegistersInt(11, tm.Minute); writeRegistersInt(14, tm.Second);
время выводится нормально. Куда копать? или какой еще есть способ из UTC получить корректную дату/время в любом часовом поясе. Версия ArIde 1.8.12 библиотеки с гитхаба самые свежие))
UTC +/- offset -> localtime() из avrlibc
https://www.nongnu.org/avr-libc/user-manual/group__avr__time.html
не совсем прозрачное решение для меня.. но все же что с библиотекой TIME
только что удалил все библиотеки из папки C:\Users\user\Documents\Arduino\libraries
переустановил ИДЕ
библиотеки загрузил не zip архивами а через "управление библиотеками"
указанный код все равно возвращает фигню: "11:56:28 16 1 1984"
Написать свою библиотеку с часовыми поясами.
Только что то мне подсказывает, что это не влезет в Ардуино.
но все же что с библиотекой TIME
О какой библиотеке речь? Вы что-то говорите, говорите, но никто ведь, кроме Вас не знает что Вы имеете в виду.
указанный код все равно возвращает фигню: "11:56:28 16 1 1984"
1. Почему это фигня?
2. А что он должен возвращать?
речь идет об этой библиотеке https://playground.arduino.cc/Code/Time/
фигня это потому что вторым скетчем я проверяю дату и время в часах:
этот код возвращает вполне корректное время, котороя я загрузил в часы
соответственно должен возвращать после синхронизации так же текущее время "23:27:56 22 02 2020"
Блин, ну про вторую библиотеку Вы не сказали, где Вы её взяли, так что ... В общем, я взял вот эти библиотеки:
1. https://github.com/PaulStoffregen/DS1307RTC
2. https://github.com/PaulStoffregen/Time
Скопировал Ваш код из #2 и получил следующее
Проблемы не вижу.
P.S. неужели так трудно сказать, где взял библиотеки? Сколько раз уж было - трахаешься-трахаешься, а там всё совсем другое!
а что непонятного в фразе библиотеки загрузил не zip архивами (не качал с githaba) а через "управление библиотеками"... скорее всего оттуда и тянет.
удалил все библиотеки.. поставил с гитхаба, все тоже самое
Блин, ну про вторую библиотеку Вы не сказали, где Вы её взяли, так что ... В общем, я взял вот эти библиотеки:
1. https://github.com/PaulStoffregen/DS1307RTC
2. https://github.com/PaulStoffregen/Time
Скопировал Ваш код из #2 и получил следующее
Проблемы не вижу.
P.S. неужели так трудно сказать, где взял библиотеки? Сколько раз уж было - трахаешься-трахаешься, а там всё совсем другое!
у вас версия ide среды какая?
а что непонятного в фразе библиотеки загрузил не zip архивами (не качал с githaba) а через "управление библиотеками"... скорее всего оттуда и тянет.
Непонятно, где мне взять именно такие библиотеки, как у Вас, а не какие-то другие.
В правилах форума однозначно сказано: "При использовании сторонних библиотек (т.е. отсутствующих сразу после инсталяции ИДЕ) - ссылки на них обязательны"
Вообще, если кто-то хочет Вам помочь - не надо создавать ему дополнительных трудностей, это редко приводит к хорошему результату.
у вас версия ide среды какая?
1.8.10
Поскольку я не вижу Вашей проблемы и не могу сам найти в чём там дело, я могу рассказать Вам как самому найти ошибку, но это будет не быстро "шаг за шагом" и Вы должны делать точно то, что я скажу и говорить мне результаты. Надо?
И, кстати, если будут ещё замечания насчёт того, что "я требую чего-то не того, ненужного и вообще "неправильно помогаю"", я ухожу из темы. Пусть Вам помогает тот, кто правильно это будет делать.
сейчас запустил билиотеки под версией arduino-1.5.4 и все заработало. Евгений прошу прощения если был резок.
Хорошего дня!
PS на 1.8.10 тоже прекрасно работает