3

何らかの理由で、Windows Mobile スマートフォン (WM バージョン 6.1 の HTC s740) の内蔵モデムにアクセスできるようにする必要があります。私が欲しいのは、AT コマンドを与えるために、シリアル ポートのようにアクセスできるようにすることです。

TAPI Line インターフェイスと lineGetID() を使用して、ReadFile()/WriteFile() を実行できる「ハンドル」を取得するコードがあります。残念ながら、私はそれを機能させていません。

私が現在行っていることは次のとおりです。

  1. lineInitializeEx() で TAPI を初期化する

  2. lineOpen() でラインを開く

  3. 利用可能な各デバイスを反復処理し、情報を取得します。現在、「UNIMODEM」/「ヘイズ互換の COM1」デバイスを選択しています。しかし、代わりに「TAPI セルラー サービス」/「セルラー回線」を選択する必要がありますか? 同じ結果で「Cellular Line」デバイスを試しました。

  4. ハンドルを取得するには、選択したデバイスで lineGetID() を使用します。

  5. WriteFile("AT\r") を実行してから、直接 ReadFile() を実行します。アクセスしたモデムが本当にモデムであった場合は、"OK" が返されます。

  6. うまくいかないことに気づき、イライラする...

しかし、これはこれまでのところ無理でした。

誰もそれを行う方法について何か考えがありますか?

Windows Mobile 6 SDK のネイティブ WIN32 C++ でこれを行っています。

更新: これまでのところ、RIL を使用して 2 台の電話間でデータ接続を確立することができました。これにより、書き込みと読み取りを行うためのシリアル ポート ハンドルが得られます。しかし、モデムと直接対話して AT コマンドを送信できるようにしたいと考えています。したがって、私が始めようとしている報奨金は、AT コマンドを与えるためにモデムに直接アクセスすることだけに関係しています。これまでの調査では、Windows Mobile の以前のバージョンでは (COM2 や COM9 を開いて RIL を殺すなどして) これが可能であったことが示されていますが、WM6 で動作するコードはまだ見たことがありません。

4

2 に答える 2

1

あなたはおそらくこれを行うことはできません。無線へのインターフェイスは必ずしも COM ポートではありません。AT コマンドはしばしばエミュレートされます。COM ポートへのハンドルを取得できたとしても、組み込みの接続マネージャーが実行しているアクティビティと同期するにはどうすればよいでしょうか。

于 2010-04-11T12:51:00.640 に答える
0

/関数で handle fromlineGetIDを使用できるかどうかはわかりません 。これらは、(おそらく) TAPI では使用できない低レベルの関数です。WriteFileReadFile

でCOMポートを開こうとしCreateFile、ハンドルを取得してからWriteFileandReadFile関数を使用します。この手法について説明している古い古典的な記事が MSDN ( Win32 のシリアル通信) にあります。

ただし、私は Windows Mobile プログラミングの経験がないので、それがうまくいくかどうかはわかりません。

于 2009-06-15T23:39:50.670 に答える