13

Linux マシンで BlueZ スタックを使用して、カスタム サービスと特性を持つ GATT サーバーを作成しようとしています。最終的な目標は、中央デバイス (iOS または Android デバイスなど) を使用して GATT サーバーに接続し、サービスと特性を検出し、特性内のデータを操作することです。

例:

  • 3 つの特性を含む 1 つのサービスを備えた周辺機器。
  • サービス uuid = 0xFFFF
  • Char 1 uuid = 0xAAAA、プロパティ = 読み取り可能
  • Char 2 uuid = 0xBBBB、プロパティ = 読み取り可能および書き込み可能
  • Char 3 uuid = 0xCCCC、プロパティ = 通知可能

中央デバイスから、周辺デバイスを確認し、それに接続して、3 つの特性 (0xAAAA、0xBBBB、0xCCCC) を持つ 1 つのサービス (0xFFFF) を検出する必要があります。その後、0xAAAA の値を読み取り、0xBBBB の値を読み書きし、0xCCCC で通知を有効にできるはずです。

同様の質問が存在することは認識していますが、周辺機器を広告主として使用する方法のみを説明していることに注意してください。別の解決済みの質問では、GATT サーバーの作成方法が説明されていますが、特性のプロパティ (読み取り可能、通知可能など) を操作する方法が説明されていないか、何か不足している可能性があります。

前もって感謝します。

4

3 に答える 3

4

1) Bluezフォルダに移動

2) sudo ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --disable-systemd --enable-experimental --enable-maintainer-モード

3) sudo make all

4) 接続可能なパケットをアドバタイズする

# activate bluetooth
sudo hciconfig hci0 up                                             
# set advertise data: "hello world"
sudo hcitool -i hci0 cmd 0x08 0x0008 48 45 4c 4c 4f 57 4f 52 4c 44
# start advertising as connectable
sudo hciconfig hci0 leadv 0

5) sudo サービスの Bluetooth 停止

6) sudo src/bluetoothd -d -n

7) 他の PC から、(Change MAC id gatt server mac) と入力します。

gatttool -b  gatt_server_mac --interactive

ステップ 6 は、 plugins/gatt-example.cをコンパイルする場合のためのものです。

serverをコンパイルしたい場合。cプロファイル/時間またはプロファイル/アラート(時間の代わりにアラートに置き換えます) またはプロファイルフォルダー内の他のファイルから、手順 6 を置き換えます

sudo src/bluetoothd --plugin=time -n

于 2015-03-20T07:14:00.637 に答える