Полная версия этой страницы:
Снова про время
В системе есть 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
May 11 2015, 16:01
на МТС (Россия) время можно поймать из GSM точно, остальные операторы вроде тоже должны отдавать...
RadikX
May 12 2015, 02:15
В GSM время синхронизируется не мгновенно (сразу после подачи команды), а тогда когда это принято у оператора. Частота обновления может меняться в зависимости от региона и составлять раз в десять минут, раз в час, раз в сутки и пр. Кроме того эта операция может не поддерживаться оператором. На МТС - раз в час, в 00 каждого часа.
Если включить режим синхронизации до регистрации в сети, то при регистрации время будет синхронизировано.
gvPing
May 12 2015, 02:40
Отправить GSM модулем СМС самому себе, из СМСки выдернуть время.
RadikX
May 12 2015, 02:52
Цитата(gvPing @ May 12 2015, 06:40)

Отправить GSM модулем СМС самому себе, из СМСки выдернуть время.
Получите время СМС-центра, не факт что в вашем часовом поясе. Если вообще придет, а не будет висеть в СМС-центре.
Цитата(RadikX @ May 12 2015, 05:15)

В GSM время синхронизируется не мгновенно (сразу после подачи команды), а тогда когда это принято у оператора. Частота обновления может меняться в зависимости от региона и составлять раз в десять минут, раз в час, раз в сутки и пр. Кроме того эта операция может не поддерживаться оператором. На МТС - раз в час, в 00 каждого часа.
Если включить режим синхронизации до регистрации в сети, то при регистрации время будет синхронизировано.
Спасибо, попробую
Попробовал: сразу после загрузки модуля включаю синхронизацию AT+QNITZ=1, однако ни после регистрации, ни по прошествии 9 часов время не синхронизировалось. Напишу в поддержку quectel
99% за то что надо пинать не производителя модулей, а операторов.
скорее всего эта услуга просто выключена
RiseOfDeath
Jun 5 2015, 06:51
Я делал так (правда на симкомовских модулях, но тамкоманды вроде бы все из стандарта)
AT+CLTS=1 //Требует брать время из сети. Вступает в силу только после перезапуска модуля!
А потом просто AT+CCLK?
Проверил на SIM900R. Оператор Билайн. Выдал точное местное время. А вот пояс почему-то +08 (?). Вместо +02.
Цитата(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
Mar 26 2016, 13:43
>>>>то выполняем переинициализацию до победного результата
А если где-то промахнулись и не учли нюансов модуля, то сжираем ресурс флеша. Тоже до.... конца.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.