Linux 端藍芽除錯工具
Linux 端藍芽除錯
@(嵌入式)[BLE]
畢業大半年一直從事Ble外設開發,發現linux上可以使用bluez進行藍芽開發,更加便捷的是,有一個python模組對bluez介面進行封裝,叫bluepy,給開發測試帶來更多便捷。
獲取 & 安裝
開發平臺 ubunt 14.04
$ sudo apt-get install git build-essential libglib2.0-dev
$ git clone https://github.com/IanHarvey/bluepy.git
$ cd bluepy
$ python setup.py build
$ python setup.py install
個人測試指令碼庫mybluepy, 沒怎麼寫過python,供參考。
使用 hcitool & gatttool
安裝了bluez協議棧後提供的工具,簡單操作如下。
- 檢視藍芽pc的裝置
hcitool dev
- 掃描ble
hcitool lescan
- 設定gatttool
gatttool -b 76:66:44:33:22:72 -I
-I : 進入互動模式
在gatttool下,
開始連線裝置 : connect
輸入 : help檢視其他指令輸入characteristics 檢視特徵值資訊,結果大概如下
handle: 0x0022, char properties: 0x1a, char value handle: 0x0023, uuid: 0000a802-0000-1000-8000-00805f9b34fb
如上, handle 0x0023 寫資料, 向0x0023+1 寫 0x0100
,設定監聽,寫0取消監聽
bluepy 指令碼
模組文件
提供一個簡單的例子:
#!/usr/bin/python
from __future__ import print_function
import sys
import binascii
import btle
import os
ble_conn = None
class MyDelegate(btle.DefaultDelegate):
def __init__(self, conn):
btle.DefaultDelegate.__init__(self)
self.conn = conn
def handleNotification(self, cHandle, data):
data = binascii.b2a_hex(data)
print("Notification:", str(cHandle), " data ", data)
def handleDiscovery(self, dev, isNewDev, isNewData):
if isNewDev:
pass
elif isNewData:
print("\\nDiscovery:", "MAC:", dev.addr, " Rssi ", str(dev.rssi))
def ble_connect(devAddr):
global ble_conn
if not devAddr is None and ble_conn is None:
ble_conn = btle.Peripheral(devAddr, btle.ADDR_TYPE_PUBLIC)
ble_conn.setDelegate(MyDelegate(ble_conn))
print("connected")
def ble_disconnect():
global ble_conn
ble_conn = None
print("disconnected")
if __name__ == '__main__':
ble_mac == "66:55:44:33:22:11"
# scan
scanner = btle.Scanner().withDelegate(MyDelegate(None))
timeout = 10.0
devices = scanner.scan(timeout)
for dev in devices:
if dev.addr == ble_mac:
print("\\nDiscovery:", "MAC:", dev.addr, " Rssi ", str(dev.rssi))
for (adtype, desc, value) in dev.getScanData():
print (" %s(0x%x) = %s" % (desc, int(adtype), value))
break
# connect
ble_connect(ble_mac)
# write , set listen
snd_content_str = """\\x01\\x00"""
ble_conn.writeCharacteristic(handle, snd_content_str)
# wait notification
ble_conn.waitForNotifications(2.0)
# disconnect
ble_disconnect()
參考
相關文章
- 藍芽解鎖Mac工具 - BLEUnlock藍芽Mac
- 遠端攻擊Android藍芽Android藍芽
- 藍芽解鎖AutoLock 1.0.2 Mac中文版 (藍芽WiFi解鎖工具)藍芽MacWiFi
- 移動端真機除錯工具除錯
- Linux下的除錯工具Linux除錯
- 藍芽裝置探測工具blueranger藍芽Ranger
- 藍芽藍芽
- 安利:移動端除錯小工具除錯
- 暴力探測藍芽裝置工具redfang藍芽
- win10藍芽裝置被刪除怎麼恢復_win10藍芽裝置刪除如何還原Win10藍芽
- Android藍芽使用詳解(普通藍芽)Android藍芽
- 【linux學習--工具篇】串列埠除錯工具Linux串列埠除錯
- 藍芽模組藍芽模組
- iOS 藍芽iOS藍芽
- ios 藍芽iOS藍芽
- Android藍芽那點事——深入瞭解藍芽BlE藍芽 《總結篇》Android藍芽
- 手機藍芽搜尋不到裝置怎麼辦 藍芽裝置刪除後搜尋不到藍芽
- iOS藍芽開發 Bluetooth藍芽CoreBluetooth 藍芽中心裝置的實現 藍芽外設的實現 有DemoiOS藍芽
- Android藍芽協議-藍芽掃描 startDiscoveryAndroid藍芽協議
- postman使用 Android java後端 介面除錯工具PostmanAndroidJava後端除錯
- [HTML5]android遠端除錯工具chromeHTMLAndroid除錯Chrome
- 藍芽HFP 藍芽電話剖析(二) --- AT command集合藍芽
- linux後臺開發常用除錯工具Linux除錯
- Linux GDB 程式除錯工具使用詳解Linux除錯
- java+藍芽Java藍芽
- iOSBluetooth(藍芽)iOS藍芽
- 藍芽4.0 BLE藍芽
- 藍Note6開啟usb除錯方法,魅藍Note6 usb除錯在哪?除錯
- ios 除錯工具iOS除錯
- 藍芽客戶端和伺服器的實現藍芽客戶端伺服器
- MASA MAUI Plugin 安卓藍芽低功耗(一)藍芽掃描UIPlugin安卓藍芽
- MASA MAUI Plugin IOS藍芽低功耗(三)藍芽掃描UIPluginiOS藍芽
- Mobile Web 除錯指南(2):遠端除錯Web除錯
- 在gentoo linux下使用藍芽手機(轉)Linux藍芽
- 魅藍E2開啟usb除錯方法 魅藍E2 usb除錯在哪?除錯
- Pycharm遠端除錯PyCharm除錯
- 前端遠端除錯前端除錯
- chrome 遠端除錯Chrome除錯