2

私はGSMモデムと私のコンピュータを使用してSMSを送受信するプログラムに取り組んでいます。

私は仕事のために送受信をしました-まあまあです。

時々、モデムが無線信号強度表示などに関する情報を混同しているために、私のプログラムが完全にクラッシュし、メッセージの16進コードをプログラムに提供していることがあります。

私のコードは16進コードをうまく処理できます。しかし、バイトストリームをデコードしているときに次の行がポップアップ表示されます。

^RSSI: 2

これまでのところ、1から10の間の値を送信するのを見てきました。

それらを無効にできるATコマンドはありますか?私はそれらを必要としません。

または代替:それらの一般的な構文があるので、デコードする前にそれらをフィルターで除外できますか?

フィルターソリューションに傾いています。しかし、モデムが「^ Something:xxx」というフォームで送信されていることを知っていれば、それを実装するのはより簡単です。それが常にフォローアップされているかどうかを知っておくと、たとえば「\r」などの区切り文字になります。 。

4

2 に答える 2

9

AT^CURC=0 を使用して、定期的なメッセージをオフにしてみてください。

AT^CURC コマンドに関する情報:

AT^CURC? 定期的なステータス メッセージの現在の設定

AT^CURC=? 可能な値が何であるかを確認してください

AT^CURC=0 定期的なステータス メッセージをオフにする

于 2012-06-25T07:12:10.073 に答える
1

このシナリオに対処する最善の方法は、応答のその部分を空の文字列に置き換えることです。そうしないと、無効にするために送信されたコマンドが機能しているかどうかを確認することが難しくなります。

この正規表現はそれらすべてに一致します。理想的には空の文字列に置き換えることができます。

(\\n|\\r|\\r\\n)\\^.*(\\n|\\r|\\r\\n)
于 2015-05-10T22:10:05.260 に答える