CC2564+MSP430,GAP_Event_Callback回调函数
Hi all,
【我使用的工具】板子:CC2564+MSP430; 协议栈:CC256x MSP430 Bluetopia SDK v1.5 R2
【实验现象】目标是想要实现Inquiry后得到蓝牙设备的RSSI值。
我在GAP_Event_Callback回调函数中添加了:
case etInquiry_With_RSSI_Entry_Result:
BD_ADDRToStr(GAP_Event_Data->Event_Data.GAP_Inquiry_With_RSSI_Entry_Event_Data->BD_ADDR, Callback_BoardStr);
Display(("\r\n"));
Display(("Inquiry Entry With RSSI: %s, RSSI: %d.\r\n", Callback_BoardStr, (int)GAP_Event_Data->Event_Data.GAP_Inquiry_With_RSSI_Entry_Event_Data->RSSI));
break;
烧录后可以实现 Inquiry后得到蓝牙设备的RSSI值 这个目标。但是我在GAP_Event_Callback回调函数的case etInquiry_Result:中,也加上显示RSSI值的语句:Display(("Result: %d, %s, RSSI: %d.\r\n", (Index+1), Callback_BoardStr, (int)GAP_Inquiry_Event_Data->GAP_Inquiry_Data[Index].RSSI));烧录并发出“Inquiry”指令,发现进行了两次switch(GAP_Event_Data->Event_Data_Type)判断(也就是说,完成了上述的两个“case),并且两个RSSI值不一样,GAP_Inquiry_Event_Data->GAP_Inquiry_Data[Index].RSSI得到的RSSI值是正数:
【问题】
1、首先,RSSI值不会是正的,GAP_Inquiry_Event_Data->GAP_Inquiry_Data[Index].RSSI得到的为何是正数?
其实,GAP_Inquiry_Data结构体中并没有RSSI成员,我仿照GAP_Inquiry_With_RSSI_Entry_Event_Data结构体改的:
typedef struct _tagGAP_Inquiry_Data_t
{
BD_ADDR_t BD_ADDR;
Byte_t Page_Scan_Repetition_Mode;
Byte_t Page_Scan_Period_Mode;
//Byte_t Page_Scan_Mode;
Class_of_Device_t Class_of_Device;
Word_t Clock_Offset;
SByte_t RSSI;
} GAP_Inquiry_Data_t;
2、GAP_Event_Callback回调函数是是如何调用的?为何同一次“Inquiry”中,进行了两次switch(GAP_Event_Data->Event_Data_Type)判断(也就是说,完成了上述的两个“case),并且两个RSSI值是不一样的?
求帮助啊,求回复~
讲解一下GAP_Event_Callback回调函数也行
谢谢!