我正在开发 iOS BLE 应用程序来为手机充电。我做了所有正确的事情来发现特征。首先扫描外围设备并连接到它。发现具有通知和无响应写入属性的服务(FFB0)和特征(FFB1,FFB2)。
\n\n我找到了客户端特征配置描述符。我想向 PCB 发送命令以解锁充电 我想将值写入 FFB2 特性,但外设没有响应。这是我的代码。
\n\n我已经搜索了与此相关的所有内容,但没有找到任何解决方案如果有人提供此问题的解决方案,这将对我有所帮助。
\n\n这是客户提供的文件:
\n\n每个PCB上都有一个BLE4.0蓝牙模块,每个蓝牙模块都有一个单独的12字节长度的地址码,PCB数据通道,Service UUID为OxFFBO,包括两个特征值,分别是OxFFBI和OxFFB2,通信长度数据为1--20字节。\nOxFFB1为APP数据下载通道。OxFBB2为蓝牙上传数据通道。
\n\n开机进入空闲模式,空闲模式下两个灯会闪烁。它会发送一个ID码(一个字节)到手机,手机中的APP会获取该ID码(一个字节)。\nID码可以通过手机设置来设置。是指通过ID码发送相应的解锁指令。
\n\n解锁指令为0x55,0xe1,(ID0+1),时间,解锁指令说明如下:
\n\nID0为ID码,“time”为用户解锁时间(5-120分钟),\n请注意是二进制到十六进制的转换,\ntime==05表示5分钟,\ntime==6表示6分钟,\n时间==A表示10分钟,以此类推。\n如果PCB的ID0为0xff,\n解锁PCB 60分钟为:0x55,0xe1,0x00,0x3c;\n如果PCB的ID0为0x05 ,\n解锁 PCB 10 分钟为:0x55、0xe1、0x06、0x0a
\n\n当PCB上的MCU收到解锁指令时,将开始打开输出并计时。\n计时时间到后系统再次进入空闲模式。\n在空闲模式下,长按该键进入关机休眠时间模式。
\n\nuart 波特率设置为 9600。\nAPP 向 MCU 发送的查询指令为 0x55 0x01\nMCU 回复 APP 的信息格式为:0x55,0x02,bat_level,xH,XL(xH XL 代表当前电池电压值,\nxH - 代表高8位,XL---代表低8位)
\n\nimport CoreBluetooth\n\nlet batteryServiceCBUUID = CBUUID(string: "FFB0")\nlet batteryServiceRequestCBUUID = CBUUID(string: "FFB1")\nlet batteryServiceRequestCBUUID2 = CBUUID(string: "FFB2")\n\n class ChargingViewController: UIViewController , CBPeripheralDelegate \n ,CBCentralManagerDelegate { \n\n override func viewDidLoad() {\n super.viewDidLoad()\n centralManager = CBCentralManager(delegate: self, …Run Code Online (Sandbox Code Playgroud)