0

C++ アプリケーションと連携する AHRS (姿勢見出し参照システム) があります。AHRS からイーサネット経由で 50Hz のメッセージ ストリームを受信し、このメッセージの一部として UTC 時刻を取得します。私のシステムでは、組み込みネットワークのタイム サーバーとして NTPD も実行されます。AHRS には、UTC の 2 回目のロールオーバー時間を示す 1PPS 出力もあります。NTPD 時刻を UTC と同期させたいと思います。いくつかの調査の結果、シリアル ポートを 1PPS の入力として利用する手法があることがわかりました。私が見つけた限りでは、これらの手法は GPSD を使用して 1PPS を読み取り、NTPD と通信してシステム時刻を同期させています。ただし、GPSD は GPS からの NMEA 形式のメッセージを予期しています。私はそれを持っていません。

現在の見方では、オプションのアプローチがいくつかあります。

  1. GPSD を使用しないでください。1PPS を読み取り、イーサネット メッセージに UTC が含まれているプログラムを作成し、何らかの方法でこの情報を NTPD に伝達します。

  2. GPSD を使用します。イーサネット メッセージを再パッケージ化して GPSD に送信できるプログラムを作成し、NTPD とのやり取りを処理させます。

  3. 他の何か?

どんな提案でも大歓迎です。

編集: この不十分に構成された質問をお詫びします。

この問題に対する私の解決法は次のとおりです。2 - カスタム C++ アプリケーションを作成して、UTC を含むイーサネット メッセージを読み取り、そこから UTC を含む NMEA メッセージを作成します。3 - NMEA メッセージを GPSD にフィードします。GPSD は、NTPD とインターフェイスして、GPS/1PPS 情報をシステム時間と同期させます。

ここに画像の説明を入力

4

2 に答える 2