Enviar pesquisa
Carregar
BlueZで遊んでみる - BLE大阪勉強会
•
21 gostaram
•
25,333 visualizações
S
Shinji Kobayashi
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 28
Baixar agora
Baixar para ler offline
Recomendados
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
Android起動周りのノウハウ
Android起動周りのノウハウ
chancelab
Share the Experience of Using Embedded Development Board
Share the Experience of Using Embedded Development Board
Jian-Hong Pan
LR parsing
LR parsing
ichikaz3
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
無線LANデバイスについて(kernelレベル)
無線LANデバイスについて(kernelレベル)
Yuki Uchikoba
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
Hideki Takase
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Recomendados
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
Android起動周りのノウハウ
Android起動周りのノウハウ
chancelab
Share the Experience of Using Embedded Development Board
Share the Experience of Using Embedded Development Board
Jian-Hong Pan
LR parsing
LR parsing
ichikaz3
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
無線LANデバイスについて(kernelレベル)
無線LANデバイスについて(kernelレベル)
Yuki Uchikoba
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
Hideki Takase
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)
Kentaro Ebisawa
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方
wata2ki
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
コンセプトから理解するGitコマンド
コンセプトから理解するGitコマンド
ktateish
ライブストリーミング低遅延化の取り組み @ DeNA
ライブストリーミング低遅延化の取り組み @ DeNA
akirahiguchi
ラズパイでフリーLPWAの衝撃
ラズパイでフリーLPWAの衝撃
CRI Japan, Inc.
4章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 3
mao999
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
Tomoya Hibi
Guide To AGPL
Guide To AGPL
Mikiya Okuno
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
NTT DATA Technology & Innovation
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho Oku
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
npsg
TripleO Deep Dive 1.1
TripleO Deep Dive 1.1
Takashi Kajinami
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
NTT DATA Technology & Innovation
OSS についてあれこれ
OSS についてあれこれ
Takuto Wada
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
PF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAG
daye001
Bluetooth通信の仕組みと活用法紹介
Bluetooth通信の仕組みと活用法紹介
Takehiko YOSHIDA
Mais conteúdo relacionado
Mais procurados
20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)
Kentaro Ebisawa
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方
wata2ki
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
コンセプトから理解するGitコマンド
コンセプトから理解するGitコマンド
ktateish
ライブストリーミング低遅延化の取り組み @ DeNA
ライブストリーミング低遅延化の取り組み @ DeNA
akirahiguchi
ラズパイでフリーLPWAの衝撃
ラズパイでフリーLPWAの衝撃
CRI Japan, Inc.
4章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 3
mao999
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
Tomoya Hibi
Guide To AGPL
Guide To AGPL
Mikiya Okuno
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
NTT DATA Technology & Innovation
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho Oku
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
npsg
TripleO Deep Dive 1.1
TripleO Deep Dive 1.1
Takashi Kajinami
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
NTT DATA Technology & Innovation
OSS についてあれこれ
OSS についてあれこれ
Takuto Wada
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
Mais procurados
(20)
20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Glibc malloc internal
Glibc malloc internal
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
コンセプトから理解するGitコマンド
コンセプトから理解するGitコマンド
ライブストリーミング低遅延化の取り組み @ DeNA
ライブストリーミング低遅延化の取り組み @ DeNA
ラズパイでフリーLPWAの衝撃
ラズパイでフリーLPWAの衝撃
4章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 3
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
Guide To AGPL
Guide To AGPL
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
TripleO Deep Dive 1.1
TripleO Deep Dive 1.1
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
OSS についてあれこれ
OSS についてあれこれ
TLS, HTTP/2演習
TLS, HTTP/2演習
Semelhante a BlueZで遊んでみる - BLE大阪勉強会
PF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAG
daye001
Bluetooth通信の仕組みと活用法紹介
Bluetooth通信の仕組みと活用法紹介
Takehiko YOSHIDA
PF部2011年12月勉強会.androidsola
PF部2011年12月勉強会.androidsola
android sola
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
Yasuhiro Ishii
Bluetooth Low Energy入門講座 -part2
Bluetooth Low Energy入門講座 -part2
edy555
Hbstudy41 auto scaling
Hbstudy41 auto scaling
Fujishiro Takuya
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
Kenichiro MATOHARA
Slide
Slide
Takefumi MIYOSHI
Displaylink : Reloaded
Displaylink : Reloaded
Masataka Kondo
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless Design
Ryuji TAKEHARA
デバドラを書いてみよう!
デバドラを書いてみよう!
Masami Ichikawa
Drone.io のご紹介
Drone.io のご紹介
Uchio Kondo
Androidでロボットを動かそう・すまべん関西201003
Androidでロボットを動かそう・すまべん関西201003
cat sin
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
Google Cloud Platform - Japan
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
Shuichi Gojuki
DartVM on Android
DartVM on Android
nothingcosmos
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
Masahide Yamamoto
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
Masahito Zembutsu
Building production server on docker
Building production server on docker
Hiroshi Miura
Building production server on docker
Building production server on docker
Hiroshi Miura
Semelhante a BlueZで遊んでみる - BLE大阪勉強会
(20)
PF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAG
Bluetooth通信の仕組みと活用法紹介
Bluetooth通信の仕組みと活用法紹介
PF部2011年12月勉強会.androidsola
PF部2011年12月勉強会.androidsola
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
Bluetooth Low Energy入門講座 -part2
Bluetooth Low Energy入門講座 -part2
Hbstudy41 auto scaling
Hbstudy41 auto scaling
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
Slide
Slide
Displaylink : Reloaded
Displaylink : Reloaded
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless Design
デバドラを書いてみよう!
デバドラを書いてみよう!
Drone.io のご紹介
Drone.io のご紹介
Androidでロボットを動かそう・すまべん関西201003
Androidでロボットを動かそう・すまべん関西201003
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
DartVM on Android
DartVM on Android
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
Building production server on docker
Building production server on docker
Building production server on docker
Building production server on docker
Último
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
Último
(9)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
BlueZで遊んでみる - BLE大阪勉強会
1.
BlueZ で遊んでみる @kobashinG
2.
今日のお題 BlueZとは? コマンドラインでCentral Advertiseを投げてみる
3.
BlueZとは? OSSのBluetoothスタック Linux/Android等で利用されてい るBluetoothを制御する為のもの kernel-module/utilities/daemon から成る
4.
BlueZとは? 大雑把に図にすると、、 Kernel Driver Utilities bluetoothd GUI
Application d-busd/D-bus経由 HCIソケット経由 BlueZ(厳密にはDriverも)
5.
この辺を使ってBLEを紐解いてみる。 BlueZとは? hciconfig - ifconfigに近い。 デバイスを設定する為のコマンド。 hcitool - connectionを制御する為のコマンド。 scan/cmd/leccなど。 gatttool -
tいっぱい。 GATTをコントロールする為のコマンド Utilities 概要
6.
用意したもの Ubuntu環境 BeagleBoneBlack + ubuntu13.04 BLE対応のUSBドングル Peripheral対応端末 StickNFind
/ ぶるタグ iPhone / Android(検証用) BLExplr / 自作アプリ。
7.
BlueZをビルド Ubuntu標準のBlueZはBLE非対応。 最新のBlueZをインストール $ wget https://www.kernel.org/pub/linux/bluetooth/bluez-5.16.tar.gz $
tar zxvf bluez-5.16.tar.gz $ sudo apt-get install libglib2.0-dev libdbus-1-dev libudev-dev libical- dev libreadline-dev $ cd bluez-5.16 $ ./configure —disable-systemd # make && make install
8.
近くのデバイスを 検索してみる $ hciconfig -a hci0:
Type: BR/EDR Bus: USB BD Address: 00:1B:DC:06:2C:AD ACL MTU: 310:10 SCO MTU: 64:8 UP RUNNING PSCAN … 省略 $ sudo hcitool lescan LE Scan ... 44:13:19:02:E1:D9 LBT-VRU01 … 省略 ◀ DOWNだったら hciconfig up する ◀ なんか見えた!!
9.
接続してみる $ sudo hcitool
lecc 44:13:19:02:E1:D9 Connection handle 71 $ sudo gatttool -i hci0 -b 44:13:19:02:E1:D9 -t random -I [44:13:19:02:E1:D9][LE]> connect Attempting to connect to 44:13:19:02:E1:D9 Connection successful [44:13:19:02:E1:D9][LE]> primary attr handle: 0x0001, end grp handle: 0x0007 uuid: 00001800-…. attr handle: 0x0008, end grp handle: 0x000a uuid: 00001803-…. attr handle: 0x000b, end grp handle: 0x000d uuid: 00001802-…. attr handle: 0x000e, end grp handle: 0x0010 uuid: 00001804-…. attr handle: 0x0011, end grp handle: 0xffff uuid: 0000180f-…. ◀ なにこれ??
10.
BLEの仕様を覗く BLEのService(機能)はそれぞれ UUIDが決まってる。 Developer Portalを見てみる。 https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx
11.
12.
Serviceの中を覗いてみる ◀ Device Nameが取れるらしい。
13.
Serviceの中を覗いてみる ◀ 0x2A00がDevice Name。
14.
Serviceの中を覗いてみる Generic Access Battery Service Immediate
Alert Link Loss Tx Power Proximty Profile Device Name Appearance Peripheral Privacy Flag Reconnection Address Peripheral Preferred Connection Parameters Services Characteristics
15.
Device Nameを見てみる。 [44:13:19:02:E1:D9][LE]> primary attr
handle: 0x0001, end grp handle: 0x0007 uuid: 00001800-…. …省略 [44:13:19:02:E1:D9][LE]> char-desc 0x0001 0x0007 handle: 0x0001, uuid: 2800 handle: 0x0002, uuid: 2803 handle: 0x0003, uuid: 2a00 handle: 0x0004, uuid: 2803 handle: 0x0005, uuid: 2a01 handle: 0x0006, uuid: 2803 handle: 0x0007, uuid: 2a04 [44:13:19:02:E1:D9][LE]> char-read-hnd 0x0003 Characteristic value/descriptor: 4c 42 54 2d 56 52 55 30 31 ◀ これがDevice Name. ASCII表記「LBT-VRU01」
16.
ぶるタグを鳴らしてみる Generic Access Battery Service Immediate
Alert Link Loss Tx Power Proximty Profile Alert Level Services Characteristics UUID : 0x1802 UUID : 0x2A06
17.
ぶるタグを鳴らしてみる ◀ 0x02入れたら鳴りそう!
18.
ぶるタグを鳴らしてみる [44:13:19:02:E1:D9][LE]> primary attr handle:
0x000b, end grp handle: 0x000d uuid: 00001802-…. [44:13:19:02:E1:D9][LE]> char-desc 0x000b 0x000d handle: 0x000b, uuid: 2800 handle: 0x000c, uuid: 2803 handle: 0x000d, uuid: 2a06 [44:13:19:02:E1:D9][LE]> char-write-cmd 0x000d 02 ◀ これがAlert Level.
19.
Advertizeを投げてみる 受け手を作る。(Android) android.bluetooth.BluetoothAdapter.LeScanCallback ◀ ここにAdvertizeのデータが入ってるぽい.
20.
Advertiseを投げてみる 拾ったデータをダンプする。 @Override public void onLeScan(BluetoothDevice
device, int rssi, byte[] scanRecord) { // send from NOT-UI THREAD // ! StringBuffer sb = new StringBuffer(); for (byte b : scanRecord) { sb.append("0x"); sb.append(Integer.toHexString(b & 0xff)); sb.append(" "); } Log.i(TAG,sb.toString()); }
21.
Advertizeを投げてみる $ sudo hciconfig
hci0 leadv 3 0x02 0x01 0x0a 0x02 0x0a 0x08 0x0c 0x09 0x43 0x53 0x52 0x38 0x35 0x31 0x30 0x20 0x41 0x31 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 ◀ [CSR8510 A10] Androidがデバイス名として 認識してるのはこの辺りぽいけど?
22.
Advertizeパケット Preamble 1 octet 4
octet Access Address Protocol Data Unit 2 ∼ 39 octet CRC 3 octet ▼先のAPIが取得できてたのはココ。 Header 2 octet Payload 6 ∼ 37 octet AdvA Adv Data Length AD Type Data 6 octet 0 ∼ 31 octet 1 octet 1 octet N octet
23.
解析してみる Advertizeを投げてみる 0x02 0x01 0x0a 0x02
0x0a 0x08 0x0c 0x09 0x43 0x53 0x52 0x38 0x35 0x31 0x30 0x20 0x41 0x31 0x30 Length AD Type Data
24.
Advertizeを投げてみる AD Type? Dataに何が入っているか定義 0x02 0x01
0x0a 0x02 0x0a 0x08 0x0c 0x09 0x43 0x53 0x52 0x38 0x35 0x31 0x30 0x20 0x41 0x31 0x30 Length AD Type Data ▼0x09 Local Name(Completed). デバイス名!
25.
Advertizeを投げてみる 好きなデータを投げてみたい。 以下で設定できるらしい? $ hcitool -i
hci0 cmd 0x08 0x0008 48 45 4c 4c 4f 57 $ sudo hciconfig hci0 leadv 3 ASCII表記「HELLOBLE」 えっ!?全然変わんない。。。
26.
Advertizeを投げてみる 仕方無いので、Cプログラムから bluezを叩いてみる。 (参考)bluez-ibeacon https://github.com/carsonmcdonald/bluez-ibeacon
27.
Advertizeを投げてみる hci_send_req()を使うとdeviceに要求を出せる。 要求はstruct hci_requestにまとめる。 PARAM設定(Adv間隔),ENABLE設定,DATA設定の順に書 き込めば、受信データが変わったことを確認できた。 0x0A 0x09
0x48 0x45 0x4a 0x4a 0x4f 0x57 0x42 0x4a 0x45 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 …省略 ◀ [HELLOBLE]が取れた!
28.
! ! Thank you !!
Baixar agora