![]() |
Проверил синхронизацию времени перед уходом в сон - работает отлично!
Появилась такая мысль... А что если тебе постоянно (ну, там, раз в минуту), если видны спутники, вычислять дельту времени между системным и спутником, но не изменять дельту, если спутники не видны? Тогда при уходе в сон будешь просто добавлять эту дельту к системному времени и при долгом поиске места на подземном паркинге синхронизация времени всё равно пройдёт хорошо, поскольку будет не нужно условие Цитата:
|
Цитата:
Почти так и сделано. Но я требую, чтобы в течении 10 секунд между просыпанием а засыпанием шли данные от GPS и только в этом случае перевожу время при уходе в сон (ну вдруг какая-то лажа придет сразу после выхода из сна?). Дельту я вычисляю постоянно, пока у меня есть сведения о корректных данных GPS. Сведения считаются корректными, если они пришли с GPS не более двух секунд назад. Вот оттуда и берутся эти 1.5-2 секунды ошибки синхронизации времени. В момент ухода в сон прекращается поток данных и только после этого я получаю сообщение об уходе в сон. От этого можно избавиться, если дельту считать непосредственно про приходу данных из GPS, но мне влом переделывать, за это отвечает другой блок программы. upd. Нормально работает, можно себе поставить ? :-). Я реально забываю дома прогу и пока езжу с прошлой версией, скачиваю ее на работе с форума :-). |
Т.е. если я перед выключением машинки буду несколько минут колесить по подземной парковке без gps, то синхронизация времени всё равно состоится при уходе в сон?
Цитата:
|
Цитата:
|
выпустил 1.3
|
Цитата:
Пошёл отлучать... Upd: Отлучил! Теперь мой ahk-скрипт посылает раз в 2 секунды в CGSubTitles.exe wm_copydata-команду, по которой CGSubTitles отдаёт в RR нужные мне значения. ;) |
Еще одна "хотелка" :)
Хочется, чтобы при отсутствии валидных gps-данных из порта CGSubTitles по wm_copydata отправляла не старые или начальные (в случае запуска CGSubTitles при отсутствии валидного gps-потока) данные, а переменные, заполненные значением конфига NoGpsDataString, за исключением переменной SatCount - её надо передавать со значением 0. Сейчас же после выхода из сна до определения текущей позиции gps-приёмником CGSubTitles по wm_copydata выдаёт те значения, которые она запомнила перед уходом в сон. Есть какой-то непонятный глюк... Если запустить GpsGate без подключенного gps-приёмника (иль с неоткрытым портом приёмника - иконка GpsGate будет красной), после запустить CGSubTitles (иконка CGSubTitles будет красной), а после подключить gps-приёмник иль открыть порт gps-приёмника в настройках GpsGate, то иконки и GpsGate, и CGSubTitles будут зелеными, однако передавать через wm_copydata CGSubTitles ничего не будет. Если закрыть CGSubTitles через "Exit", то она перед выходом один раз посылает правильные данные через wm_copydata. После повторного запуска сразу начинает работать правильно. |
Цитата:
upd. первое - исправил. Второе - бомблю свою прогу 10 раз в секунду запросами, она отвечает, что приема нет. Запускаю GpsGate, ставлю в нем режим эмуляции, жму в нем "старт", через секунду приходит правильный ответ от моей проги. Вроде ничего не правил. |
Кстати, я готов выложить сурсы, если они кого-то интересуют. Сурсы на delphi. В удобочитаемый вид не приведены, поэтому и не выкладываю :)
|
Цитата:
|
Часовой пояс GMT +4, время: 18:23. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot