TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2640R2F central 例程接收数据问题

版本以及路径:C:\ti\simplelink_cc2640r2_sdk_4_10_00_10\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_central

问题:如下图所示,使用例程接收数据只有蓝牙的部分数据?

代码:

{
pAdvRpt = (GapScan_Evt_AdvRpt_t*) (pMsg->pData);

#if (DEFAULT_DEV_DISC_BY_SVC_UUID == TRUE)
if (SimpleCentral_findSvcUuid(SIMPLEPROFILE_SERV_UUID,
pAdvRpt->pData, pAdvRpt->dataLen))
{
memcpy(buff,pAdvRpt->pData,pAdvRpt->dataLen);           <———————-提取出数据只有部分;
SimpleCentral_addScanInfo(pAdvRpt->addr, pAdvRpt->addrType);
Display_printf(dispHandle, SC_ROW_NON_CONN, 0, "Discovered: %s",
Util_convertBdAddr2Str(pAdvRpt->addr));
}
#else // !DEFAULT_DEV_DISC_BY_SVC_UUID
Display_printf(dispHandle, SC_ROW_NON_CONN, 0, "Discovered: %s",
Util_convertBdAddr2Str(pAdvRpt->addr));
#endif // DEFAULT_DEV_DISC_BY_SVC_UUID

// Free report payload data
if (pAdvRpt->pData != NULL)
{
ICall_free(pAdvRpt->pData);
}
break;
}

Kevin Qiu1:

你看下你提出数据长度设定值是多少,buff是多少

yekun kun:

回复 Kevin Qiu1:

我自己设置的BUFF时30个字节,应该够广播包缓存了, pAdvRpt->dataLen 也为7,

—》我问朋友说09是广播名称在扫描应答数据包里面不太理解 而我看别人的版本,直接在也是直接在下图得到广播名称和自定义数据等的;

如果需要在扫描应答数据包读取数据,具体接口是哪个,或者有没有什么例程可以参考得到广播全部数据的

Kevin Qiu1:

回复 yekun kun:

你可以尝试增大dataLen,要获取广播数据信息可以使用Btool工具,给CC2640烧录host_test例程:dev.ti.com/…/node

yekun kun:

回复 Kevin Qiu1:

TI别人的回答的意思是在扫描应答包里,就是09后面的数据

Kevin Qiu1:

回复 yekun kun:

0x09是设备域名,之后的就是广播设备的名称

yekun kun:

回复 Kevin Qiu1:

这个怎么获得?在这个版本里面

Kevin Qiu1:

回复 yekun kun:

使用结构体gapDeviceInfoEvent_t

* @brief @ref GAP_DEVICE_INFO_EVENT message format.** This message is sent to the* app during a Device Discovery Request, when a new advertisement or scan* response is received.*/
typedef struct
{osal_event_hdr_thdr;//!< @ref GAP_MSG_EVENT and statusuint8 opcode;//!< @ref GAP_DEVICE_INFO_EVENTuint8 eventType;//!< Advertisement Type: @ref GAP_Adv_Report_Typesuint8 addrType;//!< address type: @ref GAP_Addr_Typesuint8 addr[B_ADDR_LEN];//!< Address of the advertisement or SCAN_RSPint8 rssi;//!< Advertisement or SCAN_RSP RSSIuint8 dataLen;//!< Length (in bytes) of the data field (evtData)uint8 *pEvtData;//!< Data field of advertisement or SCAN_RSP
} gapDeviceInfoEvent_t;/** @} */ // end of GAP_Events

Kevin Qiu1:

回复 yekun kun:

具体操作看下这里:blog.csdn.net/…/89522168

user6361423:

你好,这个获取设备名称的问题解决了吗? 我也碰到同样问题,能help下吗? qq: 515570933. 万分感谢

yekun kun:

回复 user6361423:

两种方法:

1:将从机广播名称从广播应答包改到广播包;

2:  扫描的时候分两种情况处理,这里处理的只有扫描到广播包的时候,没有处理扫描应答包的;分开处理

赞(0)
未经允许不得转载:TI中文支持网 » CC2640R2F central 例程接收数据问题
分享到: 更多 (0)