?? hcieventpacketproc.cpp
字號:
uint8 ParamLength= rHCI_EventPacket.GetParmLen();
sFlushOccuredEvent* psFlush = (sFlushOccuredEvent*)rHCI_EventPacket.GetHCI_EventPacketParam();
Temp.Format ("%.2X", EventIndex );
EventCode.Format ("\tEvent Code: [1] %s\n", Temp );
Temp.Format ("%.4X", psFlush->ConnectionHandle);
ConHandle.Format ("\tConHandle: [%d] %s\n",sizeof(psFlush->ConnectionHandle), Temp );
ParamStr = EventCode + ConHandle ;
g_pChildFrame->ParamListForOutput(ParamStr);
return true;
}
uint8 HCI_EventsInterfaceProcFunctions::RoleChangeEvent(CHCI_EventPacket& rHCI_EventPacket)
{
CString Temp, Role;
CString Status;
CString NewRole;
CString BD_ADDR;
CString ParamStr;
CString EventCode;
char buf1[20] = {'\0'}, buf2[20] = {'\0'};
char ErrorDef[40] = {'\0'};
struct sRoleChangeEvent
{
uint8 Status;
sBD_ADDR asDevAddr;
uint8 NewRole;
}*pRoleChangeEvent;
pRoleChangeEvent = (sRoleChangeEvent*)rHCI_EventPacket.GetHCI_EventPacketParam();
uint8 EventIndex = rHCI_EventPacket.GetOpCode();
Temp.Format ("%.2X", EventIndex );
EventCode.Format ("\tEvent Code: [1] %s\n", Temp );
if(pRoleChangeEvent->Status) {
g_pChildFrame->ErrorDef((char *)(&pRoleChangeEvent->Status), ErrorDef);
Temp.Format ("%.2X - %s", pRoleChangeEvent->Status, ErrorDef);
}else
Temp.Format ("%.2X",pRoleChangeEvent->Status);
Status.Format ("\tStatus: [%d] %s\n",sizeof(pRoleChangeEvent->Status), Temp );
Temp.Empty();
BT_itoa(&pRoleChangeEvent->asDevAddr ,6, buf1);
BT_ReverseStr(buf1, buf2);
Temp.Format ("%s", buf2); //n = Temp.GetLength();
BD_ADDR.Format ("\tBD_ADDR: [%d] %s\n",sizeof(pRoleChangeEvent->asDevAddr), Temp );
Temp.Empty();
if(pRoleChangeEvent->NewRole == 0)
Role = "00 Currently Master";
else if(pRoleChangeEvent->NewRole == 1)
Role = "01 Currently Slave";
Temp.Format ("%s", Role);
NewRole.Format ("\tNewRole: [%d] %s\n",sizeof(pRoleChangeEvent->NewRole), Temp );
Temp.Empty();
ParamStr = EventCode + Status + BD_ADDR + NewRole;
// Right Order for Command Status Print
g_pChildFrame->ParamListForOutput(ParamStr);
return true;
}
//uint8 NumOfHandles,
//tConnectionHandle ConnectionHandle,
//uint16 HCNumOfCompletedPackets[],
//
uint8 HCI_EventsInterfaceProcFunctions::NumberOfCompletedPacketsEvent(CHCI_EventPacket& rHCI_EventPacket)
{
CString Temp; int n;
CString EventCode;
CString NumOfHandles;
CString ConHandle;
CString NumOfPackets;
CString ParamStr;
char buf1[10] = {'\0'},buf2[10] = {'\0'},buf3[10] = {'\0'};
int ComPortNo = g_odTheBTHostApp.GetCurComPortNo();
uint8 EventIndex = rHCI_EventPacket.GetOpCode();
uint8 ParamLength= rHCI_EventPacket.GetParmLen();
sNumberOfCompletedPacketsEvent* psNumOfPackets = (sNumberOfCompletedPacketsEvent*)rHCI_EventPacket.GetHCI_EventPacketParam();
Temp.Format ("%.2X", EventIndex );
EventCode.Format ("\tEvent Code: [1] %s\n", Temp );
BT_itoa(&psNumOfPackets->NumOfHandles ,1, buf1);
Temp.Format ("%s", buf1);
NumOfHandles.Format ("\tNumOfHandles: [%d] %s\n",sizeof(psNumOfPackets->NumOfHandles), Temp );
Temp.Format ("%-.4X", psNumOfPackets->ConnectionHandle); n = Temp.GetLength();
ConHandle.Format ("\tConnectionHandle: [%d] %s\n",sizeof(psNumOfPackets->ConnectionHandle), Temp );
for(int i =0; i < 10; i++) buf1[i] = '\0';
BT_itoa(&psNumOfPackets->HCNumOfCompletedPackets ,2, buf1);
BT_ReverseStr(buf1, buf3);
Temp.Format ("%s", buf3); n = Temp.GetLength();
NumOfPackets.Format ("\tHCNumOfCompletedPackets: [%d] %s\n",sizeof(psNumOfPackets->HCNumOfCompletedPackets), Temp );
ParamStr = EventCode + NumOfHandles + ConHandle + NumOfPackets ;
g_pChildFrame->ParamListForOutput(ParamStr);
return true;
}
uint8 HCI_EventsInterfaceProcFunctions::ModeChangeEvent(CHCI_EventPacket& rHCI_EventPacket)
{
CString Temp; int n;
CString Status;
CString EventCode;
CString ConHandle;
CString Mode,CurMode;
CString Interval;
CString ParamStr;
char ErrorDef[40] = {'\0'};
struct sModeChangeEvent
{
uint8 Status;
tConnectionHandle aConHandle;
uint8 CurrentMode;
tINTERVAL tInterval;
} *pModeChangeEvent;
enum eCurMode {ActiveMode, HoldMode, SniffMode, ParkMode, Res};
pModeChangeEvent = (sModeChangeEvent*)rHCI_EventPacket.GetHCI_EventPacketParam();
uint8 EventIndex = rHCI_EventPacket.GetOpCode();
Temp.Format ("%.2X", EventIndex );
EventCode.Format ("\tEvent Code: [1] %s\n", Temp );
if(pModeChangeEvent->Status) {
g_pChildFrame->ErrorDef((char *)(&pModeChangeEvent->Status), ErrorDef);
Temp.Format ("%.2X - %s", pModeChangeEvent->Status, ErrorDef);
}else
Temp.Format ("%.2X",pModeChangeEvent->Status);
Temp.Format ("%.2X", pModeChangeEvent->Status); n = Temp.GetLength();
Status.Format ("\tStatus: [%d] %s\n",1, Temp );
Temp.Empty();
Temp.Format ("%-.4X", pModeChangeEvent->aConHandle); n = Temp.GetLength();
ConHandle.Format ("\tConnection Handle: [%d] %s\n",sizeof(tConnectionHandle), Temp );
Temp.Empty();
switch(pModeChangeEvent->CurrentMode)
{
case 0:
Mode = "00 Active Mode"; break;
case 1:
Mode = "01 Hold Mode"; break;
case 2:
Mode = "02 Sniff Mode"; break;
case 3:
Mode = "03 Park Mode"; break;
default:
Mode = "res"; break;
}
Temp.Format ("%s",Mode);
CurMode.Format ("\tCurrent Mode: [%d] %s\n",sizeof(uint8), Temp );
Temp.Empty();
Temp.Format ("%.4X", pModeChangeEvent->tInterval); n = Temp.GetLength();
Interval.Format ("\tInterval: [%d] %s\n",sizeof(tINTERVAL), Temp );
ParamStr = EventCode + Status + ConHandle + CurMode + Interval;
g_pChildFrame->ParamListForOutput(ParamStr);
return true;
}
// uint8 u8NumKeys,
// sBD_ADDR asDevAddr[],
// uint8 au8LinkKey[]
//
uint8 HCI_EventsInterfaceProcFunctions::ReturnLinkKeysEvent(CHCI_EventPacket& rHCI_EventPacket)
{
int n, i;
CString Temp;
CString EventCode;
CString NumKeys;
CString BD_ADDR[32];
CString LinkKey[32];
CString str;
CString ParamStr;
char buf1[10] = {'\0'},buf2[15] = {'\0'},buf3[35] = {'\0'};
int ComPortNo = g_odTheBTHostApp.GetCurComPortNo();
uint8 EventIndex = rHCI_EventPacket.GetOpCode();
uint8 ParamLength= rHCI_EventPacket.GetParmLen();
sReturnLinkKeysEvent* psReturnLinkKeysEvent = (sReturnLinkKeysEvent*)rHCI_EventPacket.GetHCI_EventPacketParam();
Temp.Format ("%.2X", EventIndex );
EventCode.Format ("\tEvent Code: [1] %s\n", Temp );
BT_itoa(&psReturnLinkKeysEvent->NumKeys ,1, buf1);
Temp.Format ("%s", buf1);
NumKeys.Format ("\tNum Keys: [%d] %s\n",sizeof(psReturnLinkKeysEvent->NumKeys), Temp );
for(i = 0; i < psReturnLinkKeysEvent->NumKeys ; i++)
{
BT_itoa( &psReturnLinkKeysEvent->sLKeys[i].asDevAddr ,6, buf2);
Temp.Format ("%s", buf2); n = Temp.GetLength();
BD_ADDR[i].Format ("\tBD_ADDR[%-2d]: [%d] %s\n", i + 1, sizeof(psReturnLinkKeysEvent->sLKeys[i].asDevAddr), Temp );
BT_itoa( (&psReturnLinkKeysEvent->sLKeys[i].au8LinkKey ),16, buf3);
Temp.Format ("%s", buf3); n = Temp.GetLength();
LinkKey[i].Format ("\tLinkKey[%-2d]: [%d] %s\n", i + 1, sizeof(psReturnLinkKeysEvent->sLKeys[i].au8LinkKey), Temp );
str += BD_ADDR[i] + LinkKey[i];
}
ParamStr = EventCode + NumKeys + str;
g_pChildFrame->ParamListForOutput(ParamStr);
return true;
}
uint8 HCI_EventsInterfaceProcFunctions::PinCodeRequestEvent(CHCI_EventPacket& rHCI_EventPacket)/*sBD_ADDR sDevAddr )*/
{
int EventStatus = 0; // Not used in this function ,just send null
CString Temp; int n;
CString EventCode;
CString BD_ADDR;
CString ParamStr;
char buf1[15] = {'\0'}, buf2[20]={'\0'};
int ComPortNo = g_odTheBTHostApp.GetCurComPortNo();
uint8 EventIndex = rHCI_EventPacket.GetOpCode();
uint8 ParamLength= rHCI_EventPacket.GetParmLen();
sPinCodeRequestEvent* psPinCodeRequest = (sPinCodeRequestEvent*)rHCI_EventPacket.GetHCI_EventPacketParam();
char* pBuffer = (char *)rHCI_EventPacket.m_uPacketPtr.pHCIEventPacket;
Temp.Format ("%.2X", EventIndex );
EventCode.Format ("\tEvent Code: [1] %s\n", Temp );
BT_itoa(&psPinCodeRequest->sDevAddr ,6, buf1);
BT_ReverseStr(buf1, buf2);
Temp.Format ("%s", buf2); n = Temp.GetLength();
BD_ADDR.Format ("\tBD_ADDR: [%d] %s\n",sizeof(psPinCodeRequest->sDevAddr), Temp );
ParamStr = EventCode + BD_ADDR ;
g_pChildFrame->ParamListForOutput(ParamStr);
DisplayRecData(ComPortNo, pBuffer,ParamLength+3, EventStatus );
CPinCodeRequest LPDlg(buf1, EventIndex, ComPortNo);
//LPDlg.DoModal();
LPDlg.CallTransmit(buf1, EventIndex, ComPortNo);
// if( ComPortNo== COMPORT1 || ComPortNo== USBDEV1)
if( ComPortNo == iCurPort1)
{
g_pBTHostView1->BTHostView1_CommandToMaster = false; // Set To Unit 1
g_pBTHostView1->DisplayAndTransmitCmd(LPDlg.m_strCmdName);
}
// else if( ComPortNo== COMPORT2 || ComPortNo== USBDEV2)
else if( ComPortNo == iCurPort2)
{
//Ek g_pBTHostView2->DisplayAndTransmitCmd(ReqDlg.m_strCmdName);
g_pBTHostView1->BTHostView1_CommandToMaster = true; // Set To Unit 2
g_pBTHostView1->DisplayAndTransmitCmd(LPDlg.m_strCmdName);
}
return true;
}
uint8 HCI_EventsInterfaceProcFunctions::LinkKeyRequestEvent(CHCI_EventPacket& rHCI_EventPacket)/*sBD_ADDR sDevAddr )*/
{
int EventStatus = 0; // Not used in this function ,just send null
CString Temp; int n;
CString EventCode;
CString BD_ADDR;
CString ParamStr;
char buf1[15] = {'\0'}, buf2[20]={'\0'};
int ComPortNo = g_odTheBTHostApp.GetCurComPortNo();
uint8 EventIndex = rHCI_EventPacket.GetOpCode();
uint8 ParamLength= rHCI_EventPacket.GetParmLen();
sLinkKeyRequestEvent* psLinkKeyRequest = (sLinkKeyRequestEvent*)rHCI_EventPacket.GetHCI_EventPacketParam();
char* pBuffer = (char *)rHCI_EventPacket.m_uPacketPtr.pHCIEventPacket;
Temp.Format ("%.2X", EventIndex );
EventCode.Format ("\tEvent Code: [1] %s\n", Temp );
BT_itoa(&psLinkKeyRequest->sDevAddr ,6, buf1);
BT_ReverseStr(buf1, buf2);
Temp.Format ("%s", buf2); n = Temp.GetLength();
BD_ADDR.Format ("\tBD_ADDR: [%d] %s\n",sizeof(psLinkKeyRequest->sDevAddr), Temp );
ParamStr = EventCode + BD_ADDR ;
g_pChildFrame->ParamListForOutput(ParamStr);
// Display Current received Event data before sending any command
DisplayRecData(ComPortNo, pBuffer,ParamLength+3 , EventStatus);
CLinkKeyPinCodeReq LPDlg(buf1, EventIndex, ComPortNo);
//CLinkKeyPinCodeReq LPDlg1(buf1, EventIndex, ComPortNo);
// LPDlg.DoModal();
LPDlg.CallTransmit(buf1, EventIndex, ComPortNo);
/*
if( ComPortNo== COMPORT1 || ComPortNo== USBDEV1)
LPDlg.DoModal();
else if( ComPortNo== COMPORT2 || ComPortNo== USBDEV2)
LPDlg1.DoModal();
*/
// Testing LPDlg.CallTransmit(buf1, EventIndex);
// if( ComPortNo== COMPORT1 || ComPortNo== USBDEV1)
if( ComPortNo == iCurPort1)
{
g_pBTHostView1->BTHostView1_CommandToMaster = false; // Set To Unit 1
g_pBTHostView1->DisplayAndTransmitCmd(LPDlg.m_strCmdName);
}
// else if( ComPortNo== COMPORT2 || ComPortNo== USBDEV2)
else if( ComPortNo == iCurPort2)
{
//Ek g_pBTHostView2->DisplayAndTransmitCmd(ReqDlg.m_strCmdName);
g_pBTHostView1->BTHostView1_CommandToMaster = true; // Set To Unit 2
g_pBTHostView1->DisplayAndTransmitCmd(LPDlg.m_strCmdName);
// g_pBTHostView1->DisplayAndTransmitCmd(LPDlg.m_strCmdName);
}
return true;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -