2011-11-07 26 views
0

私はSMSを送受信する方法を探していましたが、Linuxでそれを行う方法から始めて多くを検索しました。私が見つけたのはlibudevです。私はC/C++に慣れているので、それが私に合うことを願っています。しかし、libudevで電話/モデムに接続してコマンドを送ることができるかどうかは分かりません。 libudev +のATコマンドはいいですか?はいの場合は、USBモデム/電話にコマンドを送信する方法についてのチュートリアルを参考にしてください。それは当然のC/C++で おかげLibudevとATコマンド

答えて

1

は私が最初にいくつかのことを明確にしましょう:

  • libudevはudevへのインタフェースを提供するCライブラリです。
  • udevはLinuxのデバイスマネージャです。 /devにこれらのデバイスファイルノードのすべてを管理します。
  • のudevは、あなたの質問に戻って、だから、それ自体、

を照会したり

  • libudev(またはudevは)モデムとは何の関係もありませんデバイスを監視するための一例に使用することができます。 libudevを使用して、他のデバイス間でモデムをプログラムで見つけることができます。この場合、udevはそのデバイス用に/dev/ttyUSB0のようなものを作成している可能性があります。また、デバイス照会にはudevadmコマンドラインツールを使用することもできます。

    正しいデバイスを入手したら、シリアルインターフェイスを介してモデムにコマンドを送信することは、そのデバイスファイルに書き込むだけです。 Webがその例でいっぱいです:

  • +0

    素晴らしいコメントです。私はちょうど数時間チェックインを始めました。私はリンクを読むことができます –

    2

    何年か前、私が送信し、Linuxでシリアルポートを使用してSMSを受信、簡単なプログラムを書きました。 私はPDUメッセージをフォーマットしてから、スタンダードのATコマンドを使ってシリアルポートを通して送信しなければなりませんでした。 私はPDUSPYと呼ばれる便利なソフトウェアを使用しました:http://www.nobbi.com/pduspy.html Googleで「PDU SMSフォーマット」を検索する情報がたくさんあります。 あなたのポートにアクセスするためにlibudevのような余分なライブラリが必要だとは思いません。 あなたのATコマンドをシリアルポートでテストするためにミニコムを試してみませんか?

    コマンドラインで「dmesg | grep -i tty」を作成することができます。

    幸運。

    +0

    私はラップトップを使用し、シリアルポートを持っていません。モデムがUSBポートに接続されているか、答えに何か誤解しましたか? –

    +0

    おそらくあなたのUSBモデムはdevディレクトリのttyデバイスとしてマップされています。 "dmesg | grep -i tty"を試して、 "/ dev/ttyUSB"という名前のデバイスがあるかどうかを確認してください。次に、そのデバイスでミニコムを開き、モデムが応答するかどうかを確認するために単純な "AT"を試してください。 Linuxでは、これらのデバイスはシリアルインターフェイスのように「常に」管理されています。 –

    +0

    コンソール[tty0]が有効 [24.413671] Bluetooth:RFCOMM TTYレイヤーが初期化されました [22805.832156] cdc_acm 2-6:1.1:ttyACM0:USB ACMデバイス –

    関連する問題