При организации автономной работы ДВ-позиции иногда встает проблема установки точного времени на компьютере.
Не всегда доступен интернет, а точное время нужно. В то же время в ДВ эфире есть источники точного времени - это служебные станции HGA22 и DCF39, которые слышны практически всегда! Ситуация похожа на "быть у колодца и не напиться". Поэтому захотелось создать...
DCFHGATime.exe - утилита подстройки точного времени по сигналам служебных радиостанций DCF39 или HGA22.
Прием ведется со звуковой карты, при этом предполагается, что приемник настроен на одну из трех возможных частот: 135000 Гц, 135500 Гц или 136000 Гц.
В соответствии с выбранной частотой настройки программа сама определяет, какую станцию будет принимать. Для 135000 Гц это будет HGA22, в двух других случаях - DCF39.
В программе реализован прием телетайпных посылок двумя фильтрами - для частоты нажатия и отжатия. Однако может быть так, что частота нажатия (стоповая) проходит через фильтр ПЧ приемника (это актуально для DCF39), а вторая частота стартовых посылок - уже лежит за пределами полосы и сильно ослаблена. В программе предусмотрен прием и только по одному фильтру, что позволяет работать в тех ситуациях, где традиционные телетайпные программы (MixW и др.) уже не работают.
Программа принимает и декодирует сигнал с эфира и выделяет из него метки даты и времени, содержащиеся в телеграммах DCF или HGA. Затем вычисляется разность между принятым временем и текущим временем часов компьютера. Если разность времени превышает +- 1 сек, то, если разрешено, производится коррекция часов компьютера. Однако, для исключения ложной коррекции по ошибочно декодированной телеграмме, должно поступить не меньше определенного количества таких телеграмм и все с одной и той же разностью времени подряд.
В окне программы имеется необходимый минимум органов управления.
Цветной прямоугольник с названием принимаемой станции имеет следующий смысл:
зеленый - принимается несущая (стоп)
светло-зеленый - найдена стартовая посылка, идет прием телеграммы
желтый - телеграмма принята с ошибкой.
серый - отсутствует несущая (нет стоповой посылки - идет чередование нулей и единиц).
Когда сигнал хороший, индикатор должен быть зеленым, в момент поступления телеграммы загораться светло-зеленым и по ее окончании становится зеленым. При этом в строке состояния программы будет выводиться номер телеграммы и значение точного времени, либо, если это служебная телеграмма другого типа, только ее номер и длина. Выводится и разность времени dT в секундах.
Есть индикатор уровня сигнала со звуковой карты.
Файл настроек DCFHGATime.ini:
[FILE]
PATH=TimeLog.txt - файл для ведения лога программы
[AUDIO]
SND_INPUT=0 - используемая звуковое устройство
[TIME_CORRECTION]
ENABLE=1 - вкл/откл коррекции времени
EU_GMT_TIME_DIF=1 - разница между европейским временем и ГМТ (станции передают европейское время)
COUNT_DT_EQUAL=10 - сколько раз должно быть правильно принято время, чтобы можно было произвести коррекцию часов компьютера
[FREQ]
DIAL=136000 - частота настройки приемника
Программа круглосуточно тестировалась не менее двух недель и показала надежную работу. Время корректировалось правильно. Может восстанавливать время при полностью сбитых системных часах.