Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Снова про время
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
quarz
В системе есть GSM и GPS модули. Нужно получить дату-время и локальный часовой пояс(!).


Синхронизация через GSM (Quectel M95):
Вариант 1. AT+CTZU=1 и AT+QNITZ=1 - не помогло, модуль возвращает ОК, а время не синхронизируется. Пробовал симки билайн и мегафон.
Настраивал так:
AT+QNITZ=? // включена синхронизация? Отвечает: да (1), включена
AT+QNITZ=1 // если не была включена, включаю
AT+CTZU=1 // синхронизирую время
AT+CCLK? // читаю время - получаю время с момента старта модуля
AT+QLTS // запрос последнего времени синхронизации - пусто. Единственный правильный ответ =)

Вариант 2. NTP сервер: возвращает UTC, но часовой пояс всегда "+00". Понятно, NTP сервер ничего не знает о твоем местоположении.

Синхронизация по времени GPS: в каждом втором сообщении есть время. В ZDA, согласно документации должны быть дата, время и часовой пояс (смещения dh, dmin относительно UTC). Но и здесь облом - у Quectel L70\76 в смещениях пусто, в документации на UBlox Max-M8 эти поля установлены в 0. Про другие GPS приемники еще не смотрел.

Понятно, что можно самостоятельно по координатам вычислить часовой пояс, но я надеялся хотя бы здесь не изобретать велосипед ))

У Telit в "Telit_MT_GNSS_Software_User_Guide_r2.pdf"

...описание полей ZDA...
Local zone hour:
Offset from UTC. Number of whole hours added to local time to
obtain Greenwich Mean Time (GMT). The Local zone hour is
negative for East longitudes.
Range: -13 to 13
Null or always zero if not supported

Local zone minutes:
Offset from UTC. Local zone minutes have the same sign as the
Local zone hour.
Range 00 to 59
Null or always zero if not supported

От чего зависит поддержка? От конкретных спутников, спутниковой системы или от модуля?
BIOlinq
на МТС (Россия) время можно поймать из GSM точно, остальные операторы вроде тоже должны отдавать...

RadikX
В GSM время синхронизируется не мгновенно (сразу после подачи команды), а тогда когда это принято у оператора. Частота обновления может меняться в зависимости от региона и составлять раз в десять минут, раз в час, раз в сутки и пр. Кроме того эта операция может не поддерживаться оператором. На МТС - раз в час, в 00 каждого часа.

Если включить режим синхронизации до регистрации в сети, то при регистрации время будет синхронизировано.
gvPing
Отправить GSM модулем СМС самому себе, из СМСки выдернуть время.
RadikX
Цитата(gvPing @ May 12 2015, 06:40) *
Отправить GSM модулем СМС самому себе, из СМСки выдернуть время.


Получите время СМС-центра, не факт что в вашем часовом поясе. Если вообще придет, а не будет висеть в СМС-центре.
quarz
Цитата(RadikX @ May 12 2015, 05:15) *
В GSM время синхронизируется не мгновенно (сразу после подачи команды), а тогда когда это принято у оператора. Частота обновления может меняться в зависимости от региона и составлять раз в десять минут, раз в час, раз в сутки и пр. Кроме того эта операция может не поддерживаться оператором. На МТС - раз в час, в 00 каждого часа.

Если включить режим синхронизации до регистрации в сети, то при регистрации время будет синхронизировано.


Спасибо, попробую
quarz
Попробовал: сразу после загрузки модуля включаю синхронизацию AT+QNITZ=1, однако ни после регистрации, ни по прошествии 9 часов время не синхронизировалось. Напишу в поддержку quectel
CADiLO
99% за то что надо пинать не производителя модулей, а операторов.
скорее всего эта услуга просто выключена
RiseOfDeath
Я делал так (правда на симкомовских модулях, но тамкоманды вроде бы все из стандарта)
AT+CLTS=1 //Требует брать время из сети. Вступает в силу только после перезапуска модуля!

А потом просто AT+CCLK?
vit496
Проверил на SIM900R. Оператор Билайн. Выдал точное местное время. А вот пояс почему-то +08 (?). Вместо +02.
Pavel☺
Цитата(vit496 @ Jun 5 2015, 17:51) *
Проверил на SIM900R. Оператор Билайн. Выдал точное местное время. А вот пояс почему-то +08 (?). Вместо +02.

+08 потому, что значение в четвертях часа. На этот счет смотрите описание команды AT+CCLK.

Цитата(RiseOfDeath @ Jun 5 2015, 10:51) *
Вступает в силу только после перезапуска модуля!

Не совсем так. Вступает данная настройка в силу в тот момент, когда Вы её подали.
А вот время обновляется при регистрации в сети (конечно, если поддержано сетью).
При этом не обязательно модуль перезапускать, можно только перерегистрировать в сети - сначала AT+CFUN=0, затем AT+CFUN=1.
ДЕЙЛ
Цитата(Pavel☺ @ Jun 6 2015, 00:22) *
А вот время обновляется при регистрации в сети (конечно, если поддержано сетью).
При этом не обязательно модуль перезапускать, можно только перерегистрировать в сети - сначала AT+CFUN=0, затем AT+CFUN=1.

Данный способ работает, если следующую команду послать не раньше и не сильно позже (3-5 секунд) определённого момента. После AT+CFUN=1 я жду сообщения SMS Ready.
ДЕЙЛ
Перерегистрация в сети, отключение и включения радиочастотной части модуля в моём случае оказались примочками. Есть команда AT+CPAS и если результат проверки не 0, то выполняем переинициализацию до победного результата, а там и время прилетит в нужном месте, если оператор его рассылает.
CADiLO
>>>>то выполняем переинициализацию до победного результата

А если где-то промахнулись и не учли нюансов модуля, то сжираем ресурс флеша. Тоже до.... конца. sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.