This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/LAUNCHXL-CC2640R2:使用 BLE 作为观测器角色来读取 RSSI

Guru**** 2595805 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/612669/rtos-launchxl-cc2640r2-reading-rssi-by-using-ble-in-observer-role

器件型号:LAUNCHXL-CC2640R2

工具/软件:TI-RTOS

大家好、

我尝试测量 RSSI 信息来自 TI sensortag。

我使用 ble5_simple_observer _cc2640r2lp_app 作为开发我的应用的基准。

这是我 的 SimpleBLEObserver 初始 化函数。

void SimpleBLEObserver 初始化(void)
{
//(void
//在调用 iCall_registerApp 之前不能进行栈 API 调用
//
//将当前线程注册为 ICall 调度程序//
以便应用程序可以发送和接收消息。
iCall_registerApp (&selfEntity、&syncEvent);

//对 DB 地址进行硬编码,直至 CC2650板获取其自身的 IEEE 地址
//uint8 bdAddress[B_ADDR_LEN]={0x44、0x44、0x44、0x44、0x44、0x44、0x44、0x44、 0x44};
//HCI_EXT_SetBDADDRCmd (bdAddress);

//创建一个 RTOS 队列,用于将来自配置文件的消息发送到应用程序。
appMsgQueue = Util_constructQueue (&appMsg);

Board_initKeys (SimpleBLEObile_keyChangeHandler);

dispHandle = Display_open (SBO_display_type、NULL);

//设置观察者配置文件
{
uint8 scanRes = DEFAULT_MAX_SCAN_RES;
GAPObserverRole_SetParameter (GAPOBSSERVERROLE_MAX_SCAN_RES、sizeof (uint8_t)、
&scanRes);
}

//设置 GAP
GAP_SetParamValue (TGAP_GEN_DISC_scan、DEFAULT_SCAN_DURATION);
GAP_SetParamValue (TGAP_LIM_DISK_SCAN、DEFAULT_SCAN_DURATION);

//设置白色列表,TI 传感器标签
静态 uint8 bdAddressRegister[6]={0x8_ROPLE_DBC0








};bqbq24B0 (0xB0_DBC0);bqB0_DBCb Device (0xBACT_Observermode_Listen_D0

 

这是我的 SimpleBLEObserver 函数_processStackMsg 
静态空 SimpleBLEObserver 处理器堆栈 Msg (iCall_HDR *pMsg)
{
hciEvt_CmdComplete_t *pPkt;
switch (pMsg->event)
{
案例 GAP_MSG_EVENT:
SimpleBLEObserver_processRoleEvent ((gapObserverRoleEvent_t *) pMsg);
中断;
案例 HCI_GAP_EVENT_EVENT:
switch ( pMsg->status ){
案例 HCI_COMMAND_COMPLET_EVENT_CODE:
//处理 HCI 命令完成事件
pPKT =(hciEvt_CmdComplete_t *) pMsg;
if (pkt->cmdlPCOcode =HCI_READ_RSSI){
//uint16 connHandle = build_uint16 (pkt->pReturnParam[1]、pkt->pReturnParam[2]);
INT8 RSSI =(INT8) pktk->pReturnParam[3];
Display_Print1 (dispHandle、1、0、"RSSI %d EEE"、RSSI);
}
否则{
Display_print0 (dispHandle、1、0、"DDD");
}
中断;
默认值:
中断;
}
中断;
默认值:
中断;
}

pkt->cmdlopcode 不等于 HCI_READ_RSSI。 因此、我无法读取 RSSI 信息。
我不熟悉蓝牙、找不到错误。 导致此问题的错误是什么? 
请帮我解决问题。 

 感谢你的帮助。

 祝你度过美好的一天!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    RSSI 包含在 gapDeviceInfoEvent_t 中 请参阅 GAP.h

    由于您不熟悉 BLE、我建议您参加 SimpleLink Academy 课程:www.ti.com/simplelinkacademy

    祝你一切顺利
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    感谢您的答复和建议。 如果 TI 向 SimpleLink Academy 添加更多示例、情况会更好。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Erdem:

    您建议我们添加哪种示例? 您是否能够从扫描和广播模块 dev.ti.com/.../中找到打印 RSSI 的代码示例


    祝你一切顺利