SDK包是DA14580_MOUSE_3.70.2.63。
我用nRF主控制面板在GitHub这个安卓应用来连接蓝牙鼠标时,发现:
在人机接口设备(UUID为0 x1812)
下面有三个UUID都是0 x2a4d,但是他们的传输收据不一样。
第一个用来收鼠标偏移值,第二个收按键值,第三个就不知道了。
现在问题在于
1客户在自己定制的应用上,如果想直接通过读取UUID的方式去获取鼠标的数据(按键,xy轴偏移),那么他们要怎么区分这三个相同的UUID吗?
2我想是不是只要读0 x2a4d,通过数据长度来区分吗?因为我发现鼠标偏移是8字节(0 b 00 0 c 00 00 00),按键值好像是2字节(00或者01或者02或者03)
关键词:
设备:
建议通过处理的方式来访问。hogpd_env.shdl[0],这是service的起始handle,每个属性的handle都是依次递增。可以在attmdb_add_attribute那里,用个变量直接存储那几个report的handle。
这里有点不是很明白。变量直接存储那几个报告的处理是做什么?
因为可以通过函数attmdb_att_set_value和attmdb_att_get_value来访问属性的值。举例来说
attmdb_att_set_value (custs1_env。shdl + CUST_IDX_SENSOR_READ_CHAR_VAL,
SENSOR_READ_VAL_CHAR_LEN (uint8_t *) &sensor_val);
属性列表:
///自定义服务数据库特性枚举
枚举
{
CUST_IDX_SVC = 0 , //------------------ custs1_env.shdl对应的属性
CUST_IDX_SENSOR_PERIOD_CHAR,
CUST_IDX_SENSOR_PERIOD_VAL,
CUST_IDX_SENSOR_PERIOD_VAL_USER_DESC,
CUST_IDX_SENSOR_READ_CHAR,
CUST_IDX_SENSOR_READ_CHAR_VAL,
CUST_IDX_SENSOR_READ_CHAR_VAL_USER_DESC,
CUST_IDX_NOTIFY_CHAR,
CUST_IDX_NOTIFY_CHAR_VAL,
CUST_IDX_NOTIFY_CFG,
CUST_IDX_NOTIFY_CHAR_VAL_USER_DESC,
CUST_IDX_INDICATE_CHAR,
CUST_IDX_INDICATE_CHAR_VAL,
CUST_IDX_INDICATE_CFG,
CUST_IDX_INDICATE_CHAR_VAL_USER_DESC,
CUST1_IDX_NB,
};