手机运行WCH_BLE2U助手,与Name是“Heart Rate Sensor”,有下面的一个服务,但进入并使能“接收通知数据”,无数据显示。点击“读取”能返回“14”。
请问,这个NOTIFY的属性,为什么不自动返回数据?如何才能实现自动返回数据?
手机运行WCH_BLE2U助手,与Name是“Heart Rate Sensor”,有下面的一个服务,但进入并使能“接收通知数据”,无数据显示。点击“读取”能返回“14”。
请问,这个NOTIFY的属性,为什么不自动返回数据?如何才能实现自动返回数据?
你换BLE调试助手app试试,你这个app可能是没有打开从机的通知使能。
WCH_BLE2U助手是可以收到其他例程的notify,应该和手机APP没有关系。我没有看懂例程,它发送notify,是不是有什么前提条件。
谢谢,再帮忙看看。
刚刚实验了10多分钟,只收到1次notify。
bStatus_t HeartRate_MeasNotify(uint16_t connHandle, attHandleValueNoti_t *pNoti)
{
uint16_t value = GATTServApp_ReadCharCfg(connHandle, heartRateMeasClientCharCfg);
// If notifications enabled
if(value & GATT_CLIENT_CFG_NOTIFY)
{
// Set the handle
pNoti->handle = heartRateAttrTbl[HEARTRATE_MEAS_VALUE_POS].handle;
// Send the notification
return GATT_Notification(connHandle, pNoti, FALSE);
}
return bleIncorrectMode;
}
你把这个判断屏蔽掉,就可以不用管主机是否开启了通知
收到,谢谢。问题的截图是Battery level,按你的思路,也是可行的。
其实是想知道为什么进行判断if(level< battLevle)
? level = battMeasure();
? // If level has gone down
? if (level < battLevel)
? {
? ? // Update level
? ? battLevel = level;
? ? // Send a notification
? ? battNotifyLevel();
? }