int bt_gatt_service_register(struct bt_gatt_service *svc); 参数传入服务的属性,看下电池的属性: /* Battery Service Declaration */ static struct bt_gatt_attr attrs[] = { BT_GATT_PRIMARY_SERVICE(BT_UUID_BAS), BT_GATT_CHARACTERISTIC(BT_UUID_BAS_BATTERY_LEVEL, BT_GATT_CHRC_READ | BT_GATT...
Complete List of 16-bit Service Class UUIDs (0x03) 服务的完整UUID列表。 数据长度:2*n 字节 示例:0x180D (Heart Rate Service), 0x180F (Battery Service) Incomplete List of 32-bit Service Class UUIDs (0x04) 部分32位UUID列表。 数据内容:一个或多个32位UUID。 Complete List of 32-bit Servi...
假设主机写特征值的协议栈函数原型为int GATT_WriteCharValue(uuid_t UUID, uint8 *pValue, uint8 len) 假设从机发送通知的协议栈函数原型为int GATT_Notification(uuid_t UUID, uint8 *pValue, uint8 len) 那么主机向从机发送Hello,可以这样调用协议栈的函数:GATT_WriteCharValue(0xFFF1,"Hello",5) 那么从...
("BatteryMonitorSketch"); //设置本地名字 BlueMountain.setAdvertisedServiceUuid(batteryService.uuid()); //添加服务的UUID BlueMountain.addAttribute(batteryService); //添加电池服务 BlueMountain.addAttribute(batteryLevelChar); //添加电池电量 batteryLevelChar.setValue(g_oldBatteryLevel); //设定初始值 /*...
截图演示了如何从一个支持BLE协议的设备中读取电量,不需要提前配对,打开APP扫描到对应设备后,点击Connect, 随后列出的就是一堆上面说的Service(服务),能够显示服务名称的如“Battery Service”,是根据UUID的约定取得的。 如电池服务为0x180F。点开服务后是Characteristic,其中的Battery Level(也是UUID约定 0x2A19)的Pr...
标准UUID为128位,蓝牙协议栈中一般采用16位,也就是两个字节的UUID格式。一个从机设备包括一个或者...
这些Service、Characteristic都会有一个UUID去做标识,例如Generic Access Service的UUID是0x1800。虽然我们这里看到的UUID都是16bit的,但是实际上它们的完整形式应该是0x0000xxxx-0000-1000-8000-00805F9B34FB。中间的xxxx就是截图中显示的16位uuid,即Generic Access Service的完整UUID是0x00001800-0000-1000-8000-00805...
由于所有蓝牙联盟的UUID都具有同样的base UUID,所以用16位UUID就可以区分蓝牙联盟规定的Attribute了 但我们自定义的Attribute, Characteristic, Service,不能使用这个base UUID,因此也不能用16位UUID,只能使用制造商自定义的128位UUID。2.5 空中接口操作和属性 由于每个Attribute具有唯一的Handle,所...
(选填).setUuidNotifyCha(UUID.fromString(UuidUtils.uuid16To128("fd03")))//设置可通知特征的uuid (选填,库中默认已匹配可通知特征的uuid).setUuidServicesExtra(newUUID[]{BATTERY_SERVICE_UUID})//设置额外的其他服务组,如电量服务等.setFactory(newBleFactory(){//实现自定义BleDevice时必须设置@Override...
在蓝牙通信中,设备使用UUID来发布和查找服务以及识别特性。UUID是蓝牙设备之间进行通信时的重要标识,确保了设备和服务的唯一性。 那么getServiceName()中的键你就知道是什么意思了,0x1800就是16进制数字,而对应的值则是SIG定义的,可以参考这个文档:Assigned_Numbers.pdf。如果你的值找不到对应的,那说明它不是SIG规范...