Телескопы покупают здесь


A A A A Автор Тема: SatTime - синхронизация времени на компьютере через GPS/ГЛОНАСС/Galileo  (Прочитано 34344 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CEBEPАвтор темы

  • ***
  • Сообщений: 128
  • Благодарностей: 9
  • UB4RAG
    • Сообщения от CEBEP
Не так давно понадобилась мне прогамма для выставления точного времени на компьютере без доступа к интернету, вопрос особенно остро встал при выездах за город с телескопом и использовании компьютера в качестве планетария. Решением мне виделось использование в качестве источника времени GPS-приемник, тем более, в роли его может выступать как обычный коммуникатор (под Android, Windows Mobile и скорее всего под другие мобильные ОС тоже есть софт виртуального GPS COM-порта), подключенный по Bluetooth, Wi-Fi или шнурок, так и специализированное устройство. Поискав в интернете, ничего рабочего найти не удалось, в и тоге на досуге была написана небольшая программка, которая выполняла данную задачу. Надеюсь она еще кому-нибудь пригодится. ;)
Обо всех недочетах и багах по возможности прошу отписываться мне.
Проверена на Windows XP 32bit, Windows 7 32/64bit, Windows 8 32/64bit. При использовании на Windows 7( 8 ) необходимы права Администратора, программа сама их запрашивает при запуске.
Требуется .NET Framework 4 (Client Profile)

Наконец-то дошли руки дописать измененную версию. Теперь на C# осталась только графика, все операции по работе с приемником и выставлении времени написаны на чистом WinAPI.
Из нового функционала:
1. Автостарт синхронизации с помощью параметра -s (SatTime.exe -s), либо опции Sync on run
2. Сохранение настроек
3. Поддержка Galileo
4. Исправлены ошибки
5. Повышена точность времени
6. Новый интерфейс
7. Возможность просмотра и сохранения лога данных
8. Выбор строк NMEA, которые будут использоваться для получения времени
9. Автоматическая синхронизация через заданные интервалы
10. Возможность коррекции ошибки времени
11. Звуковое оповещение наступления новой секунды для ручного выставления времени (новый звук)
12. Сворачивание в трей


При использовании параметра -s обязательно нужно, чтобы родительское приложение обладало правами Администратора, т.е., например, для ярлыка в свойствах необходимо указать "Выполнять эту программу от имени Администратора", если через cmd.exe, то его изначально нужно запустить тоже с администраторскими правами.
Работоспособность новых билдов могу проверить пока только на приемнике с u-blox 5 и Android смартфоне с  GPS/ГЛОНАСС через Bluetooth (кстати, работает точнее). Буду очень признателен сообщениям о проблемах с запуском, работе программы и особенностях поведения с Вашим приемником.
Новая версия (1.2): https://drive.google.com/folderview?id=0B3or78bCO2OHUWd4TWw5MnpuWjg&usp=sharing (скачать с Google Диска, для этого перейдите по ссылке, выберете zip архив, либо SFX (exe), и справа снизу нажмите на стрелку вниз)
Зеркало: https://5223344.ru/pub/sattime/
Изменения от 14.08.2014
« Последнее редактирование: 30 Ноя 2016 [13:37:58] от CEBEP »

Orion 203mm f/4.9 + HEQ5 Pro + искатель 8х50x90* + гид Deepsky 8x50 в кольцах
Canon 60D + QHY5
БПЦ 7X50 + Турист-3

Оффлайн 1212Lupus

  • *****
  • Сообщений: 3 094
  • Благодарностей: 196
  • Мне стал не очень нравиться этот форум...
    • Сообщения от 1212Lupus
    • http://belastro.net
Сегодня купил кабель и подсоединил GPS-приёмник "Garmin eTrex H". Пункт "а" отпадает -- с другим приёмником те же баги. Причём кажется, что со временем ошибка накапливается -- до +1,5 с за 30 с между синхронизациями по NTP...
Радиоастрономы-любители -- объединяемся!


Если утро наступает в три -
Через два часа уже зажгут фонари.
Уже кончился день, а я только встал,
А я только что встал и уже устал.
(с) НОЛЬ

Оффлайн CEBEPАвтор темы

  • ***
  • Сообщений: 128
  • Благодарностей: 9
  • UB4RAG
    • Сообщения от CEBEP
Сегодня купил кабель и подсоединил GPS-приёмник "Garmin eTrex H". Пункт "а" отпадает -- с другим приёмником те же баги. Причём кажется, что со временем ошибка накапливается -- до +1,5 с за 30 с между синхронизациями по NTP...

Сейчас я начал переписывать код получения данных и синхронизации на чистый WinAPI, заодно еще раз пересмотрю алгоритм работы
Orion 203mm f/4.9 + HEQ5 Pro + искатель 8х50x90* + гид Deepsky 8x50 в кольцах
Canon 60D + QHY5
БПЦ 7X50 + Турист-3

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Для получения данных используйте библиотеку TinyGPS для С++. Она себя очень хорошо зарекомендовала.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн CEBEPАвтор темы

  • ***
  • Сообщений: 128
  • Благодарностей: 9
  • UB4RAG
    • Сообщения от CEBEP
Практически доделал новую версию программы. Теперь по  совету Deimos полностью переписал на чистом WinAPI часть, отвечающую за работу с приемником и синхронизацию, вынеся ее в отдельную библиотеку. Также добавил часть новых функций, среди них:
- возможность автоматической синхронизации через заданные промежутки времени;
- возможность корректировки постоянной ошибки времени;
- возможность включения звукового сигнала, сигнализирующего о начале новой секунды, для ручной установки времени.

Если есть пожелания в плане расширения функционала, то прошу делиться.
P.S. Вопрос с 1PPS так пока и открыт ибо не знаю где и как его получать.

Комментарий модератора Подправил сообщение. Просьба в будущем внимательно читать ники или хотя бы копировать их полностью обычным Copy/Paste.
« Последнее редактирование: 23 Янв 2013 [15:12:30] от Deimos »
Orion 203mm f/4.9 + HEQ5 Pro + искатель 8х50x90* + гид Deepsky 8x50 в кольцах
Canon 60D + QHY5
БПЦ 7X50 + Турист-3

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
1PPS - это сигнал, который передаётся по отдельной линии, в виде импульсов, фронт которого совпадает с высокой точностью с началом новой секунды (1212Lupus точнее скажет, какие погрешности), а длительность его - несколько десятков микросекунд. Не все GPS-приёмники передают эту секундную метку.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
PS: А где можно раздобыть сию обновлённую радость?
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн CEBEPАвтор темы

  • ***
  • Сообщений: 128
  • Благодарностей: 9
  • UB4RAG
    • Сообщения от CEBEP
1PPS - это сигнал, который передаётся по отдельной линии, в виде импульсов, фронт которого совпадает с высокой точностью с началом новой секунды (1212Lupus точнее скажет, какие погрешности), а длительность его - несколько десятков микросекунд. Не все GPS-приёмники передают эту секундную метку.

Т.е. брать его надо непосредственно с ноги микрухи GPS приемника?

PS: А где можно раздобыть сию обновлённую радость?
Сейчас еще проверяю на корректность работы, плюс привожу код в порядок. Может еще кто подскажет, что можно добавить в нее
Orion 203mm f/4.9 + HEQ5 Pro + искатель 8х50x90* + гид Deepsky 8x50 в кольцах
Canon 60D + QHY5
БПЦ 7X50 + Турист-3

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Т.е. брать его надо непосредственно с ноги микрухи GPS приемника?
Не факт. Его может не быть вообще. Хотя если у Вас нет такого вывода, вряд ли Вы сможете отлаживаться здесь.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн 1212Lupus

  • *****
  • Сообщений: 3 094
  • Благодарностей: 196
  • Мне стал не очень нравиться этот форум...
    • Сообщения от 1212Lupus
    • http://belastro.net
P.S. Вопрос с 1PPS так пока и открыт ибо не знаю где и как его получать.
1PPS -- это просто прямоугольные импульсы с периодом 1 секунда и длительностью 10-990 мс -- как выставишь в GPS (если можно выставлять, обычно длительность порядка 20 мс). Если нет под рукой НЧ-генератора прямоугольных импульсов, то можно быстро сварганить генераторчик на NE555 (знакомый, думаю, таймер) - типа такого:



Описание тут: http://radiokot.ru/articles/04/ (схема 8).
Тут в конце страницы формулки для расчёта частоты (задаётся цепочкой R1-R2-C1): http://radiokot.ru/articles/01/

Остаётся его только включить синхронно с приходом новой секунды (можно по писку программы).
Т.е. брать его надо непосредственно с ноги микрухи GPS приемника?
Не факт. Его может не быть вообще.
Факт. Такая нога есть в обязательном порядке на любом GPS -- 1PPS используется самим приёмником для определения положения + без него приёмник не может определить высоту над уровнем моря.
Очень желательно сделать развязку 1PPS с СОМ-портом. Хотя бы при помощи транзистора (1PPS подавать на базу, открывая транзистор, через который сигнал от источника питания +5 В будет идти на СОМ-порт). 1PPS -- сигнал ТТЛ, т.е. логический нуль у него есть 0 В, а логическая "1" -- +5 В.
Согласно описанию интерфеqса RS-232:
Цитата
Логические уровни передатчика: "0" – от +5 до +15 Вольт, "1" – от -5 до -15 Вольт.
Логические уровни приемника: "0" – выше +3 Вольт, "1" – ниже -3 Вольт.
Максимальная нагрузка на передатчик: входное сопротивление приемника не менее 3 кОм.
Т.е. уровни ТТЛ инверсны логическим уровням COM.
« Последнее редактирование: 24 Янв 2013 [01:35:17] от 1212Lupus »
Радиоастрономы-любители -- объединяемся!


Если утро наступает в три -
Через два часа уже зажгут фонари.
Уже кончился день, а я только встал,
А я только что встал и уже устал.
(с) НОЛЬ

Оффлайн 1212Lupus

  • *****
  • Сообщений: 3 094
  • Благодарностей: 196
  • Мне стал не очень нравиться этот форум...
    • Сообщения от 1212Lupus
    • http://belastro.net
Сейчас подумал... Не, приведённая выше схема на NE555 не подходит -- точность мала. Нужна стабилизация часовым кварцем.
Радиоастрономы-любители -- объединяемся!


Если утро наступает в три -
Через два часа уже зажгут фонари.
Уже кончился день, а я только встал,
А я только что встал и уже устал.
(с) НОЛЬ

Оффлайн rvl

  • ***
  • Сообщений: 122
  • Благодарностей: 4
    • Сообщения от rvl
1212Lupus
На скриншоте с NMEA данными с вашего Garmin можно посчитать, что одна посылка занимает 13 строк и, при средней длине строки 40 символов (грубая оценка по первой строке), получаем порядка 13*40 = 520 символов на посылку. Чтобы отправить один байт нужно передать 1 старт бит + 8 бит данных + 1 стоп бит, т.е. 10 бит на один байт, т.е. одна посылка займет 520*10 = 5200 бит, что при скорости порта 4800 бит говорит нам, что на посылку этих данных нужно больше 1-й секунды и это вызывает ряд вопросов.
В любом случае напрашиваются как минимум:
- минимизиция количества строк в посылке (в идеале только строка с датой/временем)
- настройка передающей и приемной стороны на максимально возможную скорость

Далее на приемной стороне, т.е. в UART приемнике компа есть буферизация данных, буферизация есть и в подсистеме ввода/вывода любой ОС, и, вообще говоря, разница по времени между моментом прихода битов по проводам в COM порт и моментом, когда собранные данные попадут к программе пользователя, не очень нормирована. Но тут есть чем поиграться уже в WinAPI функциях, работающих с COM портом.


Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Посылки передаются не каждую секунду, что снижает нагрузку на канал. Кроме того, информация о времени является по большому счёту описательной, относящейся к последней секундной метке.
PS: ещё надо бы оценить точность самой операционки в отношении времени.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн 1212Lupus

  • *****
  • Сообщений: 3 094
  • Благодарностей: 196
  • Мне стал не очень нравиться этот форум...
    • Сообщения от 1212Lupus
    • http://belastro.net
rvl, спасибо за замечание! Попробовал поодключать некоторые команды -- программа не подхватывает GPS. Пока жду новую версию и список команд, которые можно оставить. Полный список команд -- в сообщении #32.
Радиоастрономы-любители -- объединяемся!


Если утро наступает в три -
Через два часа уже зажгут фонари.
Уже кончился день, а я только встал,
А я только что встал и уже устал.
(с) НОЛЬ

Оффлайн CEBEPАвтор темы

  • ***
  • Сообщений: 128
  • Благодарностей: 9
  • UB4RAG
    • Сообщения от CEBEP
Наконец-то дошли руки дописать измененную версию. Теперь на C# осталась только графика, все операции по работе с приемником и выставлении времени написаны на чистом WinAPI.
Из нового функционала:
1. Исправлены ошибки
2. Повышена точность времени
3. Новый интерфейс
4. Возможность просмотра и сохранения лога данных
5. Выбор строк NMEA, которые будут использоваться для получения времени
6. Автоматическая синхронизация через заданные интервалы
7. Возможность коррекции ошибки времени
8. Звуковое оповещение наступления новой секунды для ручного выставления времени
9. Сворачивание в трей

Пока тестировалась только на моем единственном приемнике с u-blox 5. Буду очень признателен сообщениям о проблемах с запуском, работе программы и особенностях поведения с Вашим приемником.
Новая версия (скачать с Google Диска): https://drive.google.com/folderview?id=0B3or78bCO2OHV0FidGh4T01ZdmM&usp=sharing

(Смотри шапку https://astronomy.ru/forum/index.php/topic,102409.msg2213943.html#msg2213943 )
« Последнее редактирование: 23 Янв 2014 [15:56:02] от CEBEP »
Orion 203mm f/4.9 + HEQ5 Pro + искатель 8х50x90* + гид Deepsky 8x50 в кольцах
Canon 60D + QHY5
БПЦ 7X50 + Турист-3

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Комментарий модератора Закрепил первое сообщение темы
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн CEBEPАвтор темы

  • ***
  • Сообщений: 128
  • Благодарностей: 9
  • UB4RAG
    • Сообщения от CEBEP
Поправил версию в гугл диске, оказывается новые билды не синхронизировались с гуглом уже как 2 дня
Orion 203mm f/4.9 + HEQ5 Pro + искатель 8х50x90* + гид Deepsky 8x50 в кольцах
Canon 60D + QHY5
БПЦ 7X50 + Турист-3

Оффлайн ROVIAN

  • Модератор
  • *****
  • Сообщений: 61 001
  • Благодарностей: 1213
  • RV6LOT Icom IC-775DSP
    • Сообщения от ROVIAN
    • Астрономия в Ростове-на-Дону
Сейчас подумал... Не, приведённая выше схема на NE555 не подходит -- точность мала. Нужна стабилизация часовым кварцем.
так куча часовушек есть, специализированно.  к176ие5,     К564ИЕ15  и т.д и т.п
80ED+SW0.85/HEQ5/533ММ/QHY5-II,
203/1000/HEQ5/МРСС/183ММ/QHY5-II

Н 150,200,300,  МСТ-180 Hand made  165,215,300,317,450
Canon 550D, 550DA, 1100DA, 5DM2, 5DM4,  (SY 14/2.8, SY 135/2.0, EF 70-200/4L, )  

Оффлайн 1212Lupus

  • *****
  • Сообщений: 3 094
  • Благодарностей: 196
  • Мне стал не очень нравиться этот форум...
    • Сообщения от 1212Lupus
    • http://belastro.net
 :( Новая версия отваливается после попытки нажатия "Open".

WinXP SP3 En, IBM T23, Garmin 35HVS. Проги отображения информации GPS с этим приёмником и компом работают.
Радиоастрономы-любители -- объединяемся!


Если утро наступает в три -
Через два часа уже зажгут фонари.
Уже кончился день, а я только встал,
А я только что встал и уже устал.
(с) НОЛЬ

Оффлайн CEBEPАвтор темы

  • ***
  • Сообщений: 128
  • Благодарностей: 9
  • UB4RAG
    • Сообщения от CEBEP
:( Новая версия отваливается после попытки нажатия "Open".

WinXP SP3 En, IBM T23, Garmin 35HVS. Проги отображения информации GPS с этим приёмником и компом работают.
А у вас нет случайно возможности подключить этот же приемник на машину с windows 7/8? Чтобы мне понять дело в системе или нет
Orion 203mm f/4.9 + HEQ5 Pro + искатель 8х50x90* + гид Deepsky 8x50 в кольцах
Canon 60D + QHY5
БПЦ 7X50 + Турист-3

Оффлайн 1212Lupus

  • *****
  • Сообщений: 3 094
  • Благодарностей: 196
  • Мне стал не очень нравиться этот форум...
    • Сообщения от 1212Lupus
    • http://belastro.net
Увы, я пока сижу на XP. Да и переходника COM-USB нету, а COMов на ПК с системой Win 7 сейчас уже нету.
Радиоастрономы-любители -- объединяемся!


Если утро наступает в три -
Через два часа уже зажгут фонари.
Уже кончился день, а я только встал,
А я только что встал и уже устал.
(с) НОЛЬ