android OAD 找不到服务
嗨! TI工程师!
我用TI的SensorTag 源码 测试固件升级的时候,发现总是找不到服务,最后跟进去看了一下, 是CC_SERVICE_UUID这个UUID没找到,代码如下:
private void checkOad() {
// Check if OAD is supported (needs OAD and Connection Control service)
mOadService = null;
mConnControlService = null;
for (int i = 0; i < mServiceList.size()
&& (mOadService == null || mConnControlService == null); i++) {
BluetoothGattService srv = mServiceList.get(i);
if (srv.getUuid().equals(GattInfo.OAD_SERVICE_UUID)) {
mOadService = srv;
}
if (srv.getUuid().equals(GattInfo.CC_SERVICE_UUID)) {
mConnControlService = srv;
}
}
}
CC_SERVICE_UUID="f000ccc0-0451-4000-b000-000000000000" 我用IOS的lightblue windows的Device Monitor 等
还有Android的一些BLE软件都没找到该UUID
问题如下:
1,为什么很多软件都没有找到该UUID?
2,我在E2E那边也找了很久,android平台的OAD是否可行?
3,我找到一份SensorTag UUID属性表,里面明确说明了该UUID是存在的: http://processors.wiki.ti.com/images/a/a8/BLE_SensorTag_GATT_Server.pdf?keyMatch=OAD%20UUID&tisearch=Search-CN
4,我用IOS的Sensor Tag App测试OAD没有问题,用windows下的Device Monitor测试OAD功能也没问题,用cc2540开发板上的的OAD Manager测试OAD也同样没问题,唯独android 出现该问题!
Hi,
The connection control service is a separate service, and can be added by adding ccservice.c/h from Profiles/SensorProfile/. Have a look in the SensorTag project to see how it's added to the GATT server and otherwise used.
我做oad 遇到了相同的问题,不知道你们后来怎么解决的
按照上面的回复把相关的文件加入到Profiles里头就可以了
能解释下为什么不行不,我是做android ble app的。是不是因为原来的时间间隔太大,现在发的很快(10ms 一次) 而sensorTag的app 有阻塞判断,没有收到反馈是不往里面写的。一个间隔内发送的次数太多,导致失败。是不是这个原因呢。而CC_SERVICE_UUID 可以改间隔
怎么添加,求详细过程
HaoWei,
试一下这里的代码,最新的Android SensorTag代码:
https://git.ti.com/sensortag-20-android#more