2013-07-18 10 views
5

私は、ATコマンドを送信するsamsung galaxy s2 plusとhuawei p1 xl(u9200)モデムと話していますが、結果は得られません。私はadbシェルを使用してコマンドを送信し、logcatでログを表示します。私は猫/proc/tty/driversを実行すると、サムスンはandroidのATコマンドでモデムと話す

私は、次を得る:私は/dev/ttyGS0にコマンドを送信しなければならないよう

/dev/tty    /dev/tty  5  0 system:/dev/tty 
/dev/console   /dev/console 5  1 system:console 
/dev/ptmx   /dev/ptmx  5  2 system 
/dev/vc/0   /dev/vc/0  4  0 system:vtmaster 

rfcomm    /dev/rfcomm 216 0-255 serial 
g_serial    /dev/ttyGS 237 0-3 serial 
serial    /dev/ttyS  4 64-67 serial 
pty_slave   /dev/pts  136 0-1048575 pty:slave 
pty_master   /dev/ptm  128 0-1048575 pty:master 
unknown    /dev/tty  4 1-63 console 

は見えるが、それは応答しません。私は次のコマンドを試しました:

echo "AT\r" > /dev/ttyGS0 
echo "ATD12345678900;\r" > /dev/ttyGS0 

何も起こりません。実際には、私はこのファイルにコマンドを送信しなければならないかどうかはわかりませんが、他の人は返信しません。 私はXDA開発者のarticleを読んだが、役に立たなかった。

Huaweiと私はどちらのファイルを使用すべきか分かっていますが、データの呼び出しはできません。私は定期的な音声通話を行うことができますが、私はAT+CSNS=4を実行できません。ちょうど動作しません。また、私は同様のチップセットに基づいているLG電子P765を持っており、私はLG電子でデータコールを行うことができます。誰が私に何をすべきか教えてもらえますか?

すべてのデバイスはルートになっています。

+0

コードをアップロードできますか?プログラムを使用して 'AT + CSNS = 4'コマンドをどのように実行していますか? – Vigbyor

+0

私はadbシェルで実行しています。コマンドは次のようになります:echo "AT + CSNS = 4">/dev/xmd-tty0 – MightySeal

+0

oh ok、私はそれを取得しました.. – Vigbyor

答えて

1

atinoutプログラムを使用してATコマンドを送信しようとします。代わりに、モデムデバイスの実行

echo "ATD12345678900;" | atinout - /dev/ttyGS0 - 

に出力をリダイレクトする私は推測していますが、それはadbのシェルでechoコマンド(つまり、少なくとも全く応答を説明しないだろう)何か特別なこととして\rを解釈することはありませんということである可能性があります。 atinoutを使用することにより、ATコマンドラインが正しく\rで終了し、キャプチャがより簡単になり、はるかに確実に動作することが保証されます。

+0

このコードはcです。どのようにアンドロイドで実行するには? –

+0

適切な[クロスコンパイラ](https://en.wikipedia.org/wiki/Cross_compiler)でコンパイルする必要があります。これはアンドロイドの[NDKツール](https://en.wikipedia。org/wiki/Android_software_development#Android_NDK)、私は自分でこれをやったことがないので、私の知識はここで終わります。 – hlovdal

1

異なるポートを使用して結果を確認してください。

私のアンドロイドで/ dev/pts/7ポート番号で動作しています。

、端末1

を読み書きする他の端末を使用する:

echo -e "AT\r" > /dev/pts/7 

ターミナル2:

cat /dev/pts/7 

もrootユーザーとして実行使用してみてください。

関連する問題