Armadilloフォーラム

X1にてbluetoothをBLEとして利用したい

tanaka779

2019年4月4日 18時05分

お世話になります。

X1のbluetoothにてBLEを利用したいと考えておりますが
上手く動作していません。

X1をデフォルトの状態で起動し、下記コマンドにてbluetooth関連のモジュールをインストールしました。

apt-get install bluetooth bluez libbluetooth-dev libudev-dev

hciconfigを実行した結果、下記のようになっておりtypeがPrimaryになっているのが気になっています。

hci0:   Type: Primary  Bus: USB
        BD Address: 44:C3:06:60:08:4D  ACL MTU: 1022:8  SCO MTU: 183:5
        UP RUNNING
        RX bytes:1860 acl:0 sco:0 events:113 errors:0
        TX bytes:3576 acl:0 sco:0 commands:113 errors:0

https://users.atmark-techno.com/blog/750/2418
上記ページでは「Type: BR/EDR」となっているため、正しく認識できていないのではと考えております。

Typeを変更するための手順などご教授いただけないでしょうか。

コメント

at_koseki

2019年4月4日 19時06分

古関です。

# hcitool scan
# hcitool lescan

# bluetoothctl
[bluetooth]# scan on

を実行しすると周辺のBluetoothデバイスのアドレスが表示されませでしょうか?

> https://users.atmark-techno.com/blog/750/2418
> 上記ページでは「Type: BR/EDR」となっているため、正しく認識できていないのではと考えております。
これは、使っているbluezバージョン違いによる表示差のようですよ。

このパッチで修正されてます。
https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=12cd2eda1…
----------------------------------------------
-#define HCI_BREDR 0x00
+#define HCI_PRIMARY 0x00
#define HCI_AMP 0x01
+#define HCI_BREDR HCI_PRIMARY

....

char *hci_typetostr(int type)
{
switch (type) {
- case HCI_BREDR:
- return "BR/EDR";
+ case HCI_PRIMARY:
+ return "Primary";
case HCI_AMP:
return "AMP";
default:
- return "UNKNOWN";
+ return "Unknown";
}
}
----------------------------------------------

tanaka779

2019年4月4日 19時44分

早速のご回答ありがとうございます。

> # bluetoothctl
> [bluetooth]# scan on
>
> を実行しすると周辺のBluetoothデバイスのアドレスが表示されませでしょうか?

上記実行することで、周囲のデバイスのMACアドレスが表示されることは確認できました。

https://qiita.com/musubi05/items/78df2465ec3a5c334dfa

上記サイトに習いアドバタイズを行いたいのですが、うまくモバイル端末側のアプリで
データを認識できておりません。