2009-08-31 10 views
2

私には特定のコマンドセットが関連付けられているGSMモデムがあります。私は私のC#コードを使用してこれらのコマンドを呼び出すしたい。これは可能ですか?C#でGSMモデムにアクセスする

GSMモデムモデル:MOD 9001 BENQ GSM/GPRSモデム

私はあなたが言及して、特定のモデムのための任意の詳細を知らなくても、このモデム

+0

少し詳細を教えてください。具体的にはどのようなGSMモデル(メイク/モデル)、どのインターフェイスをコード(.NETライブラリ/ COM Interop)などを介して –

答えて

1

と対話する任意のライブラリを持っていけない、との通信に一般的なアプローチモデムは、シリアルポート接続を開き、プレーンテキストでモデムと通信することです。一般的にはHayes command setの一部の変形を使用しています。 .NETの場合は、System.IO.Ports.SerialPortMSDNを参照)を参照してください。接続パラメータ(ボーレート、データビット、ストップビット、パリティ、フロー制御)はモデムに依存しますが、57600,8データビット、1ストップビット、パリティなし、およびハードウェアフロー制御を試みるのが適切です。これらは典型的なパラメータです。ポートの名前は、システムにどのように接続されているかによって大きく異なりますが、わからない場合はCOMデバイスのWindowsデバイスマネージャが表示されます。

1

私はこの質問がかなり古いですが、同じ理由で自分のモデムと戦っているのを見ます。私は自分のモデムにアクセスするためにC#atmを使用しています。

私がモデムに接続する方法は、先に述べた通りですSystem.IO.Ports.SerialPortです。どのCOMポートに接続するかを教えてください。

あなたが使用してバックオープンCOMポートのリストを取得することができますインストールされているモデム用の標準ドライバを持っており、それがコンピュータに接続されていると仮定:

string[] com_ports = SerialPort.GetPortNames(); 

は、あなたが最初のCOMポートに接続すると仮定すると、上の配列から。

SerialPort port = new SerialPort(); 
port.portname = com_ports[0]; 
// ... Insert other port parameters 
port.Open(); 

書き込みがモデムにコマンドをとして最も簡単なようである::だけに覚えている。..

String response = port.ReadExisting(); 

port.write("some command"); 

、応答が上戻って来ているポートを開くと同じくらい簡単ですモデムへのすべてのコマンドの最後に"\r"を追加します。なぜ私のモデムが私のコマンドに応答していないのかを知るために私に1日かかりました。:-)

関連する問題