manabu-yoshioka-arc
2024年2月13日 9時04分
armadillo-iot-a6 上で C言語で屋外機器制御用のプログラムを作成しています。
この機器では LTE 通信が繋がらない状態でも機器単体で動作する必要があるため、LTE 通信または ppp0 の状態を C 言語のプログラムから確認したいです。
特に LTE 電波の弱い場所に設置される可能性もあるため、起動時数分後に ppp0 による通信ができるかどうかを確認し、その後の機器の動作を制御したいのです。
もちろん対向サーバーと通信をしてみて返信がないということで判断はできるのですが、そもそも `ip address` を実行する、または `aiot-modem-control status` で確認できているので、なんとか OS またはシステムレベルでわからないかと考えました。まずは基地局との通信をチェックした方が確実ですので。
今は、system('ip address');を実行し、その受信データに grep をかけてチェックする方法を試しています。が、この方法は Debian や貴社のシステムのバージョンアップもありえますので、あまり良い方法とは思えません。
何か良い方法があればお教えいただきたいです。
また、もしかしたら、C言語向けのライブラリ, API をご準備されているかもしれないとも思い、質問させていただきました。
よろしくお願いします。
at_mitsuhiro.yoshida
2024年2月14日 16時47分
吉田です。
C 言語のライブラリは用意しておりません。
基本的には、LTE 通信の制御は標準のソフトウェアに任せて、
アプリケーションで通信を実施してエラーが出た場合にキャッシュ・再送する様にしておくのがいいかと思われます。
通信を継続して行う際に LTE 再接続の機能もご用意しておりますので、適用をご検討ください。
https://manual.atmark-techno.com/armadillo-iot-a6/armadillo-iota6_produ…