react-native-yzdev-ble
v0.1.0
Published
YZDEV 蓝牙配网协议的 React Native TypeScript 封装
Readme
react-native-yzdev-ble
YZDEV 蓝牙配网协议的 React Native TypeScript 封装。
安装
npm install react-native-yzdev-ble react-native-ble-plx
cd ios && pod installAndroid 需要在应用里声明蓝牙权限;iOS 需要在应用的 Info.plist 里声明蓝牙用途说明。
基本使用
import { YzdevBleClient } from 'react-native-yzdev-ble';
const client = new YzdevBleClient();
const devices = await client.scanForDevices({ timeoutMs: 5000 });
await client.connect(devices[0].id);
await client.provision({
wifi: {
ssid: 'zwsd',
pwd: 'ZW31415926',
security: 'wpa',
},
server: {
ws_url: 'wss://earphone.meimeifa.cn/v1/device/stream',
snid: 'TEST_WS_o12k8y',
device_secret: '892ab03ab30052673288874ce8a8a82ad13439c8efa4e768efb25bbbcc934e9d',
},
});备用 WiFi 和主 WiFi 字段一致:
await client.provision({
wifi: {
ssid: 'main',
pwd: 'pwd1',
},
wifi_backup: {
ssid: 'backup',
pwd: 'pwd2',
},
server: {
ws_url: 'wss://example.test',
snid: 'SN001',
device_secret: 'secret',
},
});API
scanForDevices(options):扫描设备,默认只返回名称以YZDEV-开头的设备。startScan(onDevice, onError, options):持续扫描,返回remove()用于停止。connect(deviceId, options):连接并发现服务。provision(input):生成配网 JSON 并写入FE01。writeStatusRequest():向FE01写入{"cmd":"getstatus"}。queryStatus(options):写入状态查询并等待FE02通知。onStatus(listener, onError):监听FE02状态通知。readDeviceInfo():读取FE03设备信息。disconnect():断开连接。
协议默认值
- 服务 UUID:
FE00 - 配置写入:
FE01 - 状态通知:
FE02 - 设备信息:
FE03 - 设备名前缀:
YZDEV- - WiFi 加密方式默认:
wpa - 自动录音默认:开启
