楽墨堂ソフトウェア研究室:Digi Connect ME:sntpを使った時刻同期 |
正確な時刻を保持するためにバックグラウンドでsntpサーバに対して定期的に時刻を問い合わせる方法を示す。 開発キットに標準で付属するsntp系サンプルではBSP_INCLUDE_SNTPをTRUEにしてbsp自体の再コンパイルが必要となるが、何故だかうまく動作しない。 ここでは標準のままのbspを利用する方法を示すこととする。 以下のソースコードを/netos63_gnu/src/apps/に展開し32bディレクトリに移動、そしてmake PLATFORM=connectme clean allでビルトする。 sntp_test.zip 説明: NAinstallTimeZone(NASNTP_GMT_PLUS_9, NASNTP_GMT_PLUS_9, 0, 0);これは最初に日本のタイムゾーンに指定している。 int result = NAinstallSntpTime("133.100.9.2", 300, sntp_callback);次にsntpサーバのIP(例は福岡大学のsntpサーバ)を指定して300秒毎に時刻同期をするように設定している。また時刻同期が行われる毎に呼ばれるコールバック関数sntp_callbackも設定している。 後は正常に設定できた場合は1回目のコールバック関数が呼ばれた後からは1秒毎に時刻を表示する。 ここで気をつけることは、1回目のコールバック関数が呼ばれる前はまだ時刻同期が出来ていないのでtime関数で得られる時刻はめちゃくちゃであるということだ。 |
Copyright© 2006 Laksmi-Do Corp. All rights reserved. |
連絡先(@を半角に) develop@laksmido.com |