1、前言
上一篇讲了怎么编译安装XlueZ-5,本篇重要在于玩BlueZ,用命令行去操作BLE设备:
- [BlueZ] 1、Download install and use the BlueZ and hcitool on PI 3B+
How do I fix my Daydream controller
Provides classes that manage Bluetooth functionality, such as scanning for devices, connecting with devices, and managing data transfer between devices. The Bluetooth API supports both "Classic Bluetooth" and Bluetooth Low Energy.
星期三, 05. 九月 2018 02:03上午 - beautifulzzzz
Unity优化手艺
2.为配成对的Bluetooth设备查询本地蓝牙( Bluetooth® )适配器
Use the Daydream View controller and headset
android.bluttooth
LINKS
[1].Cannot connect to BLE device on Raspberry
Pi
[2].Invalid file descriptor gatttool of bluez
5.32
[3].Get Started with Bluetooth Low Energy on
Linux
[4].Reverse Engineering a Bluetooth Low Energy Light
Bulb
[5].Doing Bluetooth Low Energy on
Linux
[6].Tutorial: BLE Pairing the Raspberry Pi 3 Model B with
Hexiwear
@beautifulzzzz
智能硬件、物联网,热爱技术,关注产品
博客:http://blog.beautifulzzzz.com
园友交流群:414948975
Google Inc. Daydream (Daydream)
唤醒:不是一切的Android设备都提供了蓝牙( Bluetooth® )( Bluetooth® )功效。
2、gatttool —— 老工具趟坑
刚开端跟着 Get Started with Bluetooth Low Energy on Linux 操作gatttool,发现坑太多(主要原因是工具老了):
采用sudo gatttool -b 4D:69:98:0E:91:5E -I
去连接
意识会报错:Error: connect error: Connection refused (111)
末尾参谋LINK-11发掘要求加random选项([\#1](https://stackoverflow.com/questions/32947807/cannot-connect-to-ble-device-on-raspberry-pi)):
➜ ~ sudo gatttool -b 4D:69:98:0E:91:5E -I
[4D:69:98:0E:91:5E][LE]> connect
Attempting to connect to 4D:69:98:0E:91:5E
Error: connect error: Connection refused (111)
[4D:69:98:0E:91:5E][LE]> exit
➜ ~ sudo gatttool -t random -b 4D:69:98:0E:91:5E -I
[4D:69:98:0E:91:5E][LE]> connect
Attempting to connect to 4D:69:98:0E:91:5E
Connection successful
[4D:69:98:0E:91:5E][LE]>
(gatttool:3104): GLib-WARNING **: Invalid file descriptor.
过三回会10S自动断开,英特网说那么些工具老了,不建议用了([\#2](https://www.spinics.net/lists/linux-bluetooth/msg67617.html)):
There are new tools to use with GATT, bluetoothctl/bluetoothd is the preferred since with that you have GAP, etc,
but if want to use a stand alone tool then I suggest you use btgatt-client.
Daydream Performance HUD
4.三番两次在其余设备上点名的sockets
3、bluetoothctl——NB的新工具
一声令下行进入bluetoothctl操作情状([\#6](https://mcuoneclipse.com/2016/12/19/tutorial-ble-pairing-the-raspberry-pi-3-model-b-with-hexiwear/)):
bluetoothctl
自家在四弟大上用lightblue模拟一个BLE设备ty_prod,之后对其service进行改换,调用scan
on实行检索依旧老的,
最后发掘要先用remove移除在此之前的设备,之后再scan就能够冒出[NEW] Device 72:3B:E1:81:4E:4F ty_prod
设备
注: 用lightblue模拟的道具的MAC不是一定的
注:
笔者开采在lightblue中不管怎么模拟BLE设备,一旦被连上寻觅到的service都以IPone的
[bluetooth]# devices
Device 28:ED:6A:A0:26:B7 ty_prod
Device 58:71:33:00:00:24 Bluetooth Keyboard
Device 00:1A:7D:DA:71:0A SHEN-PC
Device 94:87:E0:B3:AC:6F Mi Phone
[bluetooth]# remove 28:ED:6A:A0:26:B7
...
[bluetooth]# scan on
Discovery started
[NEW] Device 72:3B:E1:81:4E:4F ty_prod
[bluetooth]# scan off
...
Discovery stopped
[bluetooth]# connect 72:3B:E1:81:4E:4F
Attempting to connect to 72:3B:E1:81:4E:4F
[CHG] Device 72:3B:E1:81:4E:4F Connected: yes
Connection successful
[ty_prod]
几乎就用三星手提式有线电话机自带的劳务做测验了~
[ty_prod]# info
Device 28:ED:6A:A0:26:B7 (public)
Name: tuya_mdev_test
Alias: tuya_mdev_test
Appearance: 0x0040
Icon: phone
Paired: yes
Trusted: no
Blocked: no
Connected: yes
LegacyPairing: no
UUID: Fax (00001111-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: Current Time Service (00001805-0000-1000-8000-00805f9b34fb)
UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb)
UUID: Battery Service (0000180f-0000-1000-8000-00805f9b34fb)
UUID: Vendor specific (7905f431-b5ce-4e99-a40f-4b1e122d00d0)
UUID: Vendor specific (89d3502b-0f36-433a-8ef4-c502ad55f8dc)
UUID: Vendor specific (9fa480e0-4967-4542-9390-d343dc5d04ae)
UUID: Vendor specific (d0611e78-bbb4-4591-a5f8-487910ae4366)
[CHG] Device 28:ED:6A:A0:26:B7 ServicesResolved: no
[CHG] Device 28:ED:6A:A0:26:B7 Connected: no
大家用Current Time Service,列出全部attributes操作如下:
[tuya_mdev_test]# menu gatt
[tuya_mdev_test]# list-attributes 28:ED:6A:A0:26:B7
...
Primary Service
/org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041
00001805-0000-1000-8000-00805f9b34fb
Current Time Service
Characteristic
/org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0045
00002a0f-0000-1000-8000-00805f9b34fb
Local Time Information
Characteristic
/org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042
00002a2b-0000-1000-8000-00805f9b34fb
Current Time
Descriptor
/org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042/desc0044
00002902-0000-1000-8000-00805f9b34fb
Client Characteristic Configuration
...
上面Current Time Service
对应的劳务如下图:
我们选拔Current Time举行操作UUID:0x2A2B
[ty_prod]# select-attribute /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042
[tuya_mdev_test:/service0041/char0042]# read
Attempting to read /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042
[CHG] Attribute /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042 Value:
e2 07 09 05 01 24 11 03 f1 02 .....$....
e2 07 09 05 01 24 11 03 f1 02 .....$....
[tuya_mdev_test:/service0041/char0042]# attribute-info
Characteristic - Current Time
UUID: 00002a2b-0000-1000-8000-00805f9b34fb
Service: /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041
Value:
e2 07 09 05 01 2e 01 03 f5 02 ..........
Notifying: yes
Flags: read
Flags: notify
读出结果差不离意思应该是:2018-9/5-1:36:17 周三
读取一下0x180A的Device Information:
[tuya_mdev_test:/service0006/char0007]# select-attribute /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0047/char004a
[tuya_mdev_test:/service0047/char004a]# attribute-info
Characteristic - Model Number String
UUID: 00002a24-0000-1000-8000-00805f9b34fb
Service: /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0047
Flags: read
[tuya_mdev_test:/service0047/char004a]# read
Attempting to read /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0047/char004a
[CHG] Attribute /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0047/char004a Value:
69 50 68 6f 6e 65 36 2c 32 iPhone6,2
69 50 68 6f 6e 65 36 2c 32 iPhone6,2
自然写、使能notify也很简短,看help就能够。最终断开连接、并脱离!!!
[tuya_mdev_test:/service0047/char004a]# disconnect 28:ED:6A:A0:26:B7
Attempting to disconnect from 28:ED:6A:A0:26:B7
[CHG] Device 28:ED:6A:A0:26:B7 ServicesResolved: no
Successful disconnected
[CHG] Device 28:ED:6A:A0:26:B7 Connected: no
[bluetooth]# quit
四元数(Quaternion)和旋转
The Bluetooth APIs let applications:
6.与BLE设备调换。譬喻类似传感器,心率监视器,健美设备,等等
提供管理蓝牙( Bluetooth® )功用的类,比方对器材的扫视,连接装置,和治本设施之间的传输数据。蓝牙5.0API扶助出色Bluetooth和低功耗蓝牙( Bluetooth® )。
dotPeek
Note: Not all Android-powered devices provide Bluetooth functionality.
Android Bluetooth Low Energy
- Scan for other Bluetooth devices (including BLE devices).
- Query the local Bluetooth adapter for paired Bluetooth devices.
- Establish RFCOMM channels/sockets.
- Connect to specified sockets on other devices.
- Transfer data to and from other devices.
- Communicate with BLE devices, such as proximity sensors, heart rate monitors, fitness devices, and so on.
- Act as a GATT client or a GATT server (BLE).
Analysis of Latency Performance of Bluetooth Low Energy (BLE) Networks
com.google.android.vr.home
采纳这个APIs来终结蓝牙( Bluetooth® )之间的调换,多少个应用程序必需证明BLUETOOTH
权力。对于部特别加的效应。如须要设备发现,也必得BLUETOOTH_ADMIN
权限。
Conversion Quaternion to Euler
5.与其他器材之间数据传输
HID-over-GATT
类:
BluetoothA2dp:那几个类提供调整Bluetooth( Bluetooth® )A2DP profile的公共APIs
BluetoothAdapter:代表当地设备的蓝牙adapter.
BluetoothAssignedNumbers:蓝牙5.0分配号码
BluetoothClass:代表五个蓝牙5.0( Bluetooth® )类。它形容汇报了设备的相似特征(characteristics)和力量(capabilities)
BluetoothClass.Device:定义全体设备类的常量
BluetoothClass.Device.Major:定义全部首要器械类的常量
BluetoothClass.Service:定义全体服务类的常量
BluetoothDevice:代表三个长途Bluetooth设备
=============================================================================================
BluetoothGatt:蓝牙GATT Profile的公共APIs
BluetoothGattCallback:那一个抽象类用于落到实处BluetoothGatt回调
BluetoothGattCharacteristic:代表多少个蓝牙( Bluetooth® )GATT Characteristic.
四个GATT
Characteristic是用来布局二个GATT
service,BluetoothGattService
的主导数据成分
BluetoothGattDescriptor:代表贰个BluetoothGATT Descriptor.
GATT Descriptor满含二个GATT
characteristic,BluetoothGattCharacteristic
的附加音信和属性.
Classes
BluetoothA2dp | This class provides the public APIs to control the Bluetooth A2DP profile. |
BluetoothAdapter | Represents the local device Bluetooth adapter. |
BluetoothAssignedNumbers | Bluetooth Assigned Numbers. |
BluetoothClass | Represents a Bluetooth class, which describes general characteristics and capabilities of a device. |
BluetoothClass.Device | Defines all device class constants. |
BluetoothClass.Device.Major | Defines all major device class constants. |
BluetoothClass.Service | Defines all service class constants. |
BluetoothDevice | Represents a remote Bluetooth device. |
BluetoothGatt | Public API for the Bluetooth GATT Profile. |
BluetoothGattCallback | This abstract class is used to implement BluetoothGatt callbacks. |
BluetoothGattCharacteristic | Represents a Bluetooth GATT Characteristic
A GATT characteristic is a basic data element used to construct a GATT service, |
BluetoothGattDescriptor | Represents a Bluetooth GATT Descriptor
GATT Descriptors contain additional information and attributes of a GATT characteristic, |
BluetoothGattServer | Public API for the Bluetooth GATT Profile server role. |
BluetoothGattServerCallback | This abstract class is used to implement BluetoothGattServer callbacks. |
BluetoothGattService | Represents a Bluetooth GATT Service
Gatt Service contains a collection of |
BluetoothHeadset | Public API for controlling the Bluetooth Headset Service. |
BluetoothHealth | Public API for Bluetooth Health Profile. |
BluetoothHealthAppConfiguration | The Bluetooth Health Application Configuration that is used in conjunction with the BluetoothHealth class. |
BluetoothHealthCallback | This abstract class is used to implement BluetoothHealth callbacks. |
BluetoothManager | High level manager used to obtain an instance of an BluetoothAdapter and to conduct overall Bluetooth Management. |
BluetoothServerSocket | A listening Bluetooth socket. |
BluetoothSocket | A connected or connecting Bluetooth socket. |
BluetoothGattServer:蓝牙( Bluetooth® )GATT Profileserver剧中人物的公共APIs.
BluetoothGattServerCallback:这些抽象类用于落到实处BluetoothGattServer
回调.
BluetoothGattService:代表三个蓝牙( Bluetooth® )GATT Service.
================================================================================
BluetoothHeadset:调整Bluetooth耳麦(Headset)服务的公共API.
BluetoothHealth:蓝牙Health Profile的公共API.
BluetoothHealthAppConfiguration:The
Bluetooth Health Application
Configuration(配置)用来与BluetoothHealth
类结合.
BluetoothHealthCallback:用于落到实处BluetoothHealth
回调的抽象类
BluetoothManager:用来赢得BluetoothAdapter
美高梅在线登录网址,的实例的领导者,举办完善的蓝牙5.0管理
BluetoothServerSocket:八个监听蓝牙5.0的socket
BluetoothSocket:贰个已接连或正在连接的蓝牙( Bluetooth® )socket.
EGL10
www.4688.com,Interfaces
BluetoothAdapter.LeScanCallback | Callback interface used to deliver LE scan results. |
BluetoothProfile | Public APIs for the Bluetooth Profiles. |
BluetoothProfile.ServiceListener | An interface for notifying BluetoothProfile IPC clients when they have been connected or disconnected to the service. |
Touch
7.作为GATTclient或GATT服务端
GVR SDK and NDK Release Notes
接口:
BluetoothAdapter.LeScanCallback :用来提供LE扫描结果的回调接口
BluetoothProfile:Bluetooth Profiles的公共APIs
BluetoothProfile.ServiceListener:蓝牙5.0Profile IPC client与service的连接和断开时的一个通报接口
-
Daydream
To perform Bluetooth communication using these APIs, an application must
declare the BLUETOOTH
permission. Some additional functionality, such
as requesting device discovery, also requires
the BLUETOOTH_ADMIN
permission.
Tools
For more information about Classic Bluetooth, see the Bluetooth guide. For more information about Bluetooth Low Energy, see the Bluetooth Low Energy (BLE) guide.
Calculate throughput for a BLE link
至于相当多别样的精华蓝牙( Bluetooth® )信息。能够看蓝牙( Bluetooth® )( Bluetooth® )指南。有关比相当多其余的低功耗蓝牙5.0的信息,能够看BLE指南。
Nordic SDK and Documentation
1.对此别的的蓝牙( Bluetooth® )设备的扫描(满含BLE设备)
美高梅4858官方网站,Unity Download
蓝牙5.0 APIs 能够使得应用具有上面功能:
http://www.apkmirror.com/apk/google-inc
3.建立RFCOMM channels/sockets.
CPAS-11(Frontline_16.10.12321.12610)