特定のコマンド セットが関連付けられている GSM モデムを使用しています。C# コードを使用してこれらのコマンドを呼び出したいと考えています。これを行うことは可能ですか?
GSM モデム モデル: MOD 9001 BENQ GSM/GPRS モデム
このモデムと対話するためのライブラリがありません
あなたが言及する特定のモデムの詳細を知らなくても、モデムと通信するための一般的なアプローチは、シリアルポート接続を開き、プレーンテキストでモデムと通信することです。通常、Hayesコマンドセットのいくつかのバリアントを使用します。.NETについては、参照することをお勧めしますSystem.IO.Ports.SerialPort
(MSDNを参照)。接続パラメータ(ボーレート、データビット、ストップビット、パリティ、フロー制御)はモデムによって異なりますが、57600、8データビット、1ストップビット、パリティなし、ハードウェアフロー制御を試すことをお勧めします。これらは典型的なパラメータです。ポートの名前は、システムへの接続方法に大きく依存しますが、わからない場合は、COMポートの下にあるWindowsデバイスマネージャーを確認することをお勧めします。
この質問はかなり古いですが、同じ理由で自分のモデムと戦っています。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();
モデムへのコマンドの書き込みは、次のように簡単です。
port.write("some command");
そして、応答が戻ってきています:
String response = port.ReadExisting();
.."\r"
モデムへのすべてのコマンドの末尾に追加することを忘れないでください。モデムがコマンドに応答しない理由を見つけるのに 1 日かかりました... :-)