7

Linux ボックスで GATT を使用して、さまざまな特性を持つカスタム サービスをセットアップしようとしています。

この質問とそれがリンクするものを使用して、私が書く必要があるコードを特定することができました(gatt_service_add()関数を利用して)。

gatt_service.c という別のファイルを作成し、必要と思われるコードを記述しました。しかし、ソリューションをコンパイルして実行するためにコードを Bluez ライブラリにリンクする方法がわかりません。たとえば、このサイト-lbluetooth(BLE 開発用ではありません) は、gcc パラメーターとしてlibbluetooth を使用してリンクしていますが、コードを機能させるために何をリンクすればよいかわかりません。

何を投稿すればよいかわからないため、サンプルを投稿していません。必要なものがある場合、または何か言及していない場合はお知らせください。

前もって感謝します。

編集 - 詳細情報:

コメントに続いて、プラグイン/時間をベースとして使用して、独自の「ブロードキャスター サービス」用に独自のファイルを作成しました。完全なコードはこちらにあります(コードのどのビットを答えに入れるかわかりません!)。

私のコンパイルコマンドは次のとおりです(ここでgcc gatt_broadcaster_service.c -Wall -o gatt_broadcaster_service -lbluetooth 'pkg-config --cflags --libs glib-2.0' -I/home/alexander/Documents/bluez-5.29/lib報告された問題を修正するためのglibビットを含む)。

私が得るエラーは次のとおりです: gatt_broadcaster_service.c:11:27: 致命的なエラー: lib/bluetooth.h: そのようなファイルまたはディレクトリはありません #include "lib/bluetooth.h"

私のCファイルはドキュメントに保存されており、私の調査によると、正しい場所を探していないため、lib/bluetooth.hが見つからないことがわかりました(これこれは、ファイルがそうでない場合にコンパイラにインクルードフラグを使用することについて話しています一般的な場所では、しかし私はそれを機能させることはできません.

再度、感謝します!

4

4 に答える 4

3

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) 接続可能なパケットをアドバタイズする

ブルートゥースを有効にする

sudo hciconfig hci0 up

アドバタイズ データの設定: "hello world"

sudo hcitool -i hci0 cmd 0x08 0x0008 48 45 4c 4c 4f 57 4f 52 4c 44

接続可能として広告を開始

須藤 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をコンパイルする場合のためのものです。

profile/timeまたはprofile/alert (time の代わりに alert に置き換えます)、またはプロファイル フォルダー内の他のファイルから server.c をコンパイルする場合は、手順 6 を置き換えます。

sudo src/bluetoothd --plugin=time -n

于 2015-03-20T11:09:27.170 に答える
1

タイムサーバーを作成することから始めるのが良いでしょう。profile/timeには優れたカスタム例があり、コードをクリーンアップし、最小限のコードを維持して gatttool をクライアントとして実行してみてください。カスタム クライアントとカスタム サーバーの両方が必要な場合は、 tools/btgatt-client.ctools/を参照してください。 btgatt-server.c .

1 台の PC でsudo ./btgatt-serverを使用して、1台の PC でtools/btgatt-server.cを実行 します。

および別のPCで sudo ./btgatt-client -d server_mac

于 2015-03-21T15:43:23.620 に答える