私はLinuxに初めてアクセスし、Intel Edisonを使用してBluetooth Low Energyプロジェクトを進めています。 Yocto 1.6.1はEdisonで利用可能です。 Bluzとgatttoolを使用してBLEセンサーを接続します。ただし、接続するたびに同じコマンドを入力する必要があります。だからシェルスクリプトを書いてボードを起動したときに自動的に実行するようにしたいと思います。
ターミナルウィンドウに次のコマンドを入力します。
rfkill unblock bluetooth
hciconfig hci0
export PATH=$PATH:~/bluez-5.24/attrib/
gatttool -b D2:AD:9F:B7:BB:60 -I -t random
[D2:AD:9F:B7:BB:60][LE]>にジャンプし、「connect」と入力します。
[D2:AD:9F:B7:BB:60][LE]> connect
Attempting to connect to D2:AD:9F:B7:BB:60
Connection successful
[D2:AD:9F:B7:BB:60][LE]> char-write-req 0x000e 0100
シェルスクリプトを作成するとき、スクリプトは「[D2:AD:9F:B7:BB:60][LE]>」をどのように処理しますか? 「connect」を直接入力することはできません。これはうまくいきません。
#!/bin/sh
rfkill unblock bluetooth
hciconfig hci0
export PATH=$PATH:~/bluez-5.24/attrib/
gatttool -b D2:AD:9F:B7:BB:60 -I -t random
conncet
char-write-req 0x000e 0100
ベストアンサー1
ツールexpect
は必要なタスクを実行する必要があります。
autoexpect
対話型セッションを「監視」して意図したスクリプトを生成する機能が付属しています。を実行してから通常のシェルで実行するすべての操作を実行し、シェルを終了すると、デフォルトで使用できるautoexpect
ファイルが表示されます。script.exp