У меня есть AHRS (система ориентации позиции), которая взаимодействует с моим C++-приложением. Я получаю 50 Гц поток сообщений через Ethernet от AHRS, и как часть этого сообщения, я получаю время UTC. В моей системе также будет работать NTPD как сервер времени для нашей встроенной сети. AHRS также имеет выход 1PPS, что указывает на второе время перемотки для UTC. Я хотел бы синхронизировать время NTPD с UTC. После некоторых исследований я обнаружил, что есть методы, которые используют последовательный порт в качестве входа для 1PPS. Из того, что я могу найти, эти методы используют GPSD для чтения 1PPS и связи с NTPD для синхронизации системного времени. Тем не менее, GPSD ожидает отформатированное сообщение NMEA от GPS. У меня этого нет.Синхронизация NTPD с сигналом 1PPS
Как я вижу это сейчас, у меня есть несколько дополнительных подходов:
Не используйте GPSD. Напишите программу, которая читает сообщение 1PPS, и сообщение Ethernet содержат UTC, а затем каким-то образом передает эту информацию в NTPD.
Использование GPSD. Напишите программу, которая переупаковывает сообщение Ethernet в что-то, что может быть отправлено в GPSD, и пусть оно обрабатывает взаимодействие с NTPD.
Что-то еще?
Любые предложения были бы очень оценены.
EDIT: Приносим извинения за этот плохой вопрос.
Мое решение этой проблемы заключается в следующем: 1 - интерфейс 1PPS на порт RS232, который, как оказывается, является стандартным подходом, который обрабатывается GPSD. 2 - напишите настраиваемое приложение C++ для чтения сообщений Ethernet, содержащих UTC, и из этого создайте сообщение NMEA, содержащее UTC. 3 - подайте сообщение NMEA на GPSD, которое, в свою очередь, взаимодействует с NTPD для синхронизации информации GPS/1PPS с системным временем.
Я не думаю, что я задал свой вопрос четко. Сигнал 1PPS поступает из встроенного GPS, и я хочу быть потребителем этого сигнала (я должен был показать сигнал 1PPS, подключенный к компьютеру на диаграмме выше). Я понимаю, что сигнал 1PPS - это всего лишь один цифровой сигнал, используемый для обозначения в течение 1 секунды второй точки опроса UTC. Это позволяет внешним системам точно синхронизировать с временем UTC, предоставляемым GPS (в сообщении Ethernet). –
продолжение сверху: Итак, мой воображаемый сценарий: я получаю последнее время UTC (время в секундах с определенной эпохи) из сообщения Ethernet, назовем его T1. После получения T1, когда произойдет следующий импульс 1PPS, время UTC будет trunc (T1 + 1) секунд. –