Hi Wang wx,
这个NULL的位置是个回调函数.当你调用HCI_ReadRssiCmd()获取RSSI值的时候, 最终这个如果不是NULL的话就会被调用.
被调用的位置请看peripheral.c 中的 "gapRole_ProcessOSALMsg() ".
case HCI_GAP_EVENT_EVENT: // 判断是否是HCI event
if ( pMsg->status == HCI_COMMAND_COMPLETE_EVENT_CODE ) // 是否HCI command complete event, 当调用HCI_ReadRssiCmd()
// 读取RSSI命令, 会有HCI command complete event 从controller返回
if ( pPkt->cmdOpcode == HCI_READ_RSSI ) // 是否为读取RSSI命令的 command complete event 返回
if ( (gapRole_state == GAPROLE_CONNECTED) && (rssi != RSSI_NOT_AVAILABLE) ) // 如果处于连接状态, 而且返回的RSSI值有效
[
// Report RSSI to app
if ( pGapRoles_AppCGs && pGapRoles_AppCGs->pfnRssiRead ) // 这里就判断你所提结构体里面那个回调是否为NULL
[
pGapRoles_AppCGs->pfnRssiRead( rssi ); // 如果你定义了回调处理函数, 就在这里调用处理
]
]
Hi Wang wx,
这个NULL的位置是个回调函数.当你调用HCI_ReadRssiCmd()获取RSSI值的时候, 最终这个如果不是NULL的话就会被调用.
被调用的位置请看peripheral.c 中的 "gapRole_ProcessOSALMsg() ".
case HCI_GAP_EVENT_EVENT: // 判断是否是HCI event
if ( pMsg->status == HCI_COMMAND_COMPLETE_EVENT_CODE ) // 是否HCI command complete event, 当调用HCI_ReadRssiCmd()
// 读取RSSI命令, 会有HCI command complete event 从controller返回
if ( pPkt->cmdOpcode == HCI_READ_RSSI ) // 是否为读取RSSI命令的 command complete event 返回
if ( (gapRole_state == GAPROLE_CONNECTED) && (rssi != RSSI_NOT_AVAILABLE) ) // 如果处于连接状态, 而且返回的RSSI值有效
[
// Report RSSI to app
if ( pGapRoles_AppCGs && pGapRoles_AppCGs->pfnRssiRead ) // 这里就判断你所提结构体里面那个回调是否为NULL
[
pGapRoles_AppCGs->pfnRssiRead( rssi ); // 如果你定义了回调处理函数, 就在这里调用处理
]
]
举报