今度が本命のグラフ作りです。自作中のGPS時計に追加予定で、ntpdのオフセット値をグラフにします。

loopstats を元にグラフを描画するのですが、GPSユニットから1PPSが出力されないと、このログファイルは更新されないようです。なので、衛星をロストして外のNTPサーバーに同期している時は、グラフを描画出来ません。取り敢えず、こんな時は画面中央に「GPS LOST」と表示する事にしました。でもまぁ〜、同じディレクトリにある peerstats ならNTPサーバー同期中のオフセット値もあるんですけど。

ブレッドボード上でGPS時計が動作中のRadpberry Piで開発しています。使用OLED Displayは秋月電子で購入の0.96インチ128×64ドット有機ELディスプレイです。秋月通販コードP-12031

 

↓ 実際どんな物かと、タイムラプス動画にして見れるようにしました。この動画は150倍速です。実際のグラフ更新間隔は16秒なので、本当はアニメーションのように表示されません。

 

↓ グラフエリアは118×49ドット(黄色エリア)で、この中に点描画します。三角や四角に上下のラインは含みません。

 

ntpdのログファイル loopstats を最終行から118行を元にオフセット値を点描画します。グラフの更新間隔は16秒。ログファイルも私の環境では16秒間隔で記録されています。118行×16秒=1888秒なので、このグラフの横軸幅は31分28秒くらいです。最新の変化を確認するだけなら十分でしょう。

↑ 【5.0】は縦軸の倍率のようなもので、横軸に影響はありません。これはプロットが枠内に収まるように調整する時の数値で、5.0から0.1の範囲で変化します。
5.0 → 1ドット = 0.2μ秒
1.0 → 1ドット = 1μ秒
0.1 → 1ドット = 10μ秒

5.0を上限に設定、下限は0.1に設定。5.0の時が一番拡大された表示。0.1の場合は一番縮小されて表示されます。0.1でも収まらない場合は、断念して Out of rengeと画面中央に表示する仕掛けです。

↑ 【PPS】はGPSの1PPSに同期している印です。勝手に表示させているのでは無く、ntpq -crvのコマンドで得たものにsync_ppsの文字列がある場合に表示させています。

↑ 【0.772us】はオフセット値です。グラフ表示の為に /var/log/ntpstats/loopstats を読み込みます。その時、最終行(最新)のオフセット値を表示させています。同時に【三角マーク】はこの値を示します。

↑ 右端の【白四角】はグラフのゼロの位置を意味します。あの白四角より上ならプラス。下ならマイナスです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Post Navigation