Armadilloフォーラム

ppp0 の状態を C言語プログラムから確認する簡単な方法はないでしょうか

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…