Armadilloフォーラム

pppdのFOMAアダプター、ソフトウェア更新について

n.yamamoto

2015年4月22日 17時50分

Yamamotoです。

現在FOMAアダプター(MU02 KO)を使用して通信を行っていますが、新たにUM03 KOに変更する必要があります。
但し、UM03 KOを使用するにあたってはDocomoさんの試験をクリアしないと購入できないとのことで、試験をクリアするにあたり
確認したいことがあります。

1.起動時のスクリプトにSMSメッセージを本体に保存(ATコマンド:"AT+CNMI=,,1,,"(bm=1))に設定したいのですが、通常のスクリプトに
  追加できるのでしょうか?
FOMAアダプターが手元にあれば確認するのですが、手元になく変更できそうなのか教えていただければと思います。

2.FOMAのソフトウェア更新が始まると”*DSWU:x”(xは数字)がATコマンド応答で通知されます。
ソフトウェア更新が始まると、接続回線は”NO CARRIER”で一旦切断され、接続に行っても”NO CARRIER”で
  接続できないようなのですが、接続処理を実施しないようにしてほしいとの要求が来ています。
で、pppd内で”*DSWU:x”を受けるとどうなるのか調べたいのですが、ATコマンド応答は何処で受信しているのか
教えていただけないでしょうか?
一応、pppd内を検索してみたのですが手がかりがないと時間がかかりそうでしたので。

よろしくお願いいたします。

コメント

最初に、pppd に ATコマンドを解釈する機能はありません。
pppd は 接続時(プログラムの開始または、 再接続処理)にのみ、chatコマンドを呼び出して
chatコマンド が ATコマンドの送出とモデムの応答文字列の確認を行います。
(ATコマンドは必ずATで始まる"モデムに対して送る制御文字"のことです)

> 起動時のスクリプトにSMSメッセージを本体に保存(ATコマンド:"AT+CNMI=,,1,,"(bm=1))に設定
pppd の connectオプションに与えている chat用のスクリプトに書いておくと、pppdの接続毎に
実行されます。

> 2.FOMAのソフトウェア更新が始まると”*DSWU:x”(xは数字)がATコマンド応答で通知されます。
UM03-KOの仕様は分らないのですが、UM02-KOで言うところの ATコマンド AT*DSWU= に対する
応答としての、 *DSWU:x の事でしょうか。
"*DSWU:x" はATコマンドでは無く、ユビキタスモジュールのレスポンスコードですね。

> 接続に行っても”NO CARRIER”で接続できないようなのですが、接続処理を実施しないように
> してほしいとの要求が来ています

UM02-KO では ”*DSWWU:x”は「ネットワークからのソフトウェア更新」の場合は出力されないと
思うのですが、UM03-KOでは出力されるのでしょうか。
もし明示的にAtmadilloから AT*DSWU= をユビキタスモジュールに送出し、
ソフトウェア更新モードに入れるのであれば、PPP接続をしたままATコマンドを
送出する事はできないので、先に pppd を終了する必要があります。

なので、pppdを終了してから、expect 等でATコマンドの送出と"*DSWU:x"応答の確認を行い
アップデートが完了してからpppdを起動させるスクリプトを動かすのが良いと思います。

一方で、「ネットワークからのソフトウェア更新」を使ってユビキタスモジュールの方
から回線を切断した場合であれば、pppd のオプションに nopersist を指定していれば、
回線切断からの再接続は行いません。
ただし、demand オプションを指定している場合は persist オプションが暗黙に有効に
なるため、明示的に nopersist を指定してください。

> pppd内で”*DSWU:x”を受けるとどうなるのか調べたいのですが
>、ATコマンド応答は何処で受信しているのか
pppdにATコマンドを解釈する機能はありません。
PPPによる通信中にATコマンドがシリアルの信号上に現れるという事は、
PPPのプロトコルが破綻している状態です。

Yamamotoです。

再度、UM03-KOのマニュアルとメーリングリストを確認して回答いただいた内容を理解しました。

> 最初に、pppd に ATコマンドを解釈する機能はありません。
chatでATコマンド処理が終了すると、pppdの接続に移行するので以降ATコマンドは見ていないという事ですね。

> > 起動時のスクリプトにSMSメッセージを本体に保存(ATコマンド:"AT+CNMI=,,1,,"(bm=1))に設定
> pppd の connectオプションに与えている chat用のスクリプトに書いておくと、pppdの接続毎に
> 実行されます。

おそらくそれでいけるであろうとの認識は出来ました。

> UM02-KO では ”*DSWWU:x”は「ネットワークからのソフトウェア更新」の場合は出力されないと
> 思うのですが、UM03-KOでは出力されるのでしょうか。

済みません。
”REWRITING”の応答があるようで、スクリプトのABORT条件に追加すれば出来そうとの認識が出来ました。
後は実際にやってみないと何が起きるかは解らないかいう考えで進めようと思っています。

> 一方で、「ネットワークからのソフトウェア更新」を使ってユビキタスモジュールの方
> から回線を切断した場合であれば、pppd のオプションに nopersist を指定していれば、
> 回線切断からの再接続は行いません。
> ただし、demand オプションを指定している場合は persist オプションが暗黙に有効に
> なるため、明示的に nopersist を指定してください。

此方は、試してみます。

試験実施後に改めて不明点があればよろしくお願いします。