Bluetoothドライバーを提供していないTotalstationに接続しようとしています。私は純粋に診断上の理由でこれを行っているので、確立されたシリアル接続からの生の出力を確認したいと思います。
Bluetooth接続からのすべての出力をターミナルにパイプするために何をしなければなりませんか?
Bluetoothドライバーを提供していないTotalstationに接続しようとしています。私は純粋に診断上の理由でこれを行っているので、確立されたシリアル接続からの生の出力を確認したいと思います。
Bluetooth接続からのすべての出力をターミナルにパイプするために何をしなければなりませんか?
回答:
ブライアンの答えへの追加として。画面が機能せず、すぐに表示された[screen is terminating]
だから私はこのミニタームpythonスクリプトを見つけました。使い方は似ています:
sudo miniterm.py /dev/rfcomm0
1)hcitool scan
デバイスのMacアドレスを見つけるために使用します。
デバイスは既知のピンでスレーブモードに設定する必要があります。既知のピンを使用しない場合、ubuntuがピンを構成し、通常、測定ツールの不格好なメニューに入力する時間がありません。
2)これが必要かどうかは完全にはわかりませんが、Bluetooth GUIメニューでデバイスをペアリングします。
3)/etc/bluetooth/rfcomm.conf
rfcomm0 {
bind no;
device 00:07:80:44:4F:37;
channel 1;
comment "Serial Port";
}
「bind no」は重要です。それ以外の場合は、自動的にバインドしようとします。これにより、実際にデバイスにアクセスする際にあらゆる種類の問題が発生します(関連付けられている場合は非常にうるさいため)
4) sudo rfcomm connect 0
エラーが発生した場合は、bluetoothサービスを再起動してください。
5) screen /dev/rfcomm0
この方法で送信される実際のシリアルコマンドについては、ベンダーに問い合わせてください。
これが私のarduinoに接続されたHC-05 Bluetoothデバイスに接続するための私の方法です。ブライアンの答えのようにファイルを書き込む必要はありませんが、考え方は似ています。HC-05デバイスのボー9600レート設定でテストしました。
ペアリングをGUIからセットアップしようとしましたが、機能しませんでした。これは私のために働いたコマンドラインの方法です。まず、コマンドラインからデバイスをペアリングしましょう。実行:
sudo bluetoothctl
Bluetoothデバイスが起動していることを確認します。
# power on
ここで、「ピンを記憶する」エージェントを開始しますrfcomm
。
# agent on
次に、スキャンモードを有効にしてデバイスを見つけ、ペアリングできるようにします。
# scan on
数秒後、デバイスのMACが表示されます。後ほど表記します。次に、このようにデバイスをペアリングする必要があります:
# pair <MAC>
PINの入力を求められます。デフォルトで1234
は、私のHC-05デバイスにあります。デバイスが接続してから、そのようなメッセージで切断する可能性があることに注意してください:
[CHG] Device 20:16:10:24:29:77 UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device 20:16:10:24:29:77 ServicesResolved: yes
[CHG] Device 20:16:10:24:29:77 Paired: yes
Pairing successful
[CHG] Device 20:16:10:24:29:77 ServicesResolved: no
[CHG] Device 20:16:10:24:29:77 Connected: no
しかし、それは問題ではありません。接続する必要がないため、とbluetoothctl
入力して終了できますCtrl + D
。
/dev/rfcomm0
まず、以前にrfcommコマンドを実行していないことを確認してください。実際、Ctrl+C
プログラムを終了しても、バックグラウンドで実行されます。
sudo killall rfcomm
これで、実行できます
sudo rfcomm connect /dev/rfcomm0 20:16:10:24:29:77 1 &
rfcomの入力に書き込もうとしても、何も起こらないことに注意してください。別のプログラムを使用する必要があります。
/dev/rfcomm0
ファイルに書き込む方法はいくつかありますが、続行するにはすべてrootを使用することに注意してください。ここでは、それを実行できるいくつかのプログラムについて説明します(必要に応じて、またはシステムにインストールされているものなどに応じて選択できるようにします)。rootとしてプログラムを実行するのを忘れた場合、エラーが発生する可能性があります。
stty: /dev/rfcomm0: Device or resource busy
screen
画面は非常に強力なツールです。あなたはそれを使ってそれをインストールすることができます(それは常にもう便利です):
sudo apt-get install screen
そして実行する
sudo screen /dev/rfcomm0
rootで実行するのを忘れると、Aleksanderのようなエラーが発生します。
[screen is terminating]
終了するには、「(CTRL + A)+:quit」と入力します
minicom
インストールする
sudo apt-get install minicom
そして実行する
sudo minicom -D /dev/rfcomm0
rootで実行するのを忘れると、次のようなエラーが発生します。
minicom: cannot open /dev/rfcomm0: Device or resource busy
終了するには、「Ctrl + A X」と入力します。
chmod +x miniterm.py
sudo ./miniterm.py /dev/rfcomm0
まず、次のコマンドを実行します(9600はボーレートです)。
sudo stty -F /dev/rfcomm0 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts
これで、クラシックファイルのようにこのファイルに書き込むことができます。
sudo su -c "echo 'message' > /dev/rfcomm0"
理論的にはそれを使用してそれから読み取ります
sudo tail -f /dev/rfcomm0
しかし、あなたの誰かがアイデアを持っているなら、私は読書がうまくいかないことを知りません...
/def/rfcomm0
する必要があります/dev/rfcomm0