📄 form_bt.cpp
字号:
m_edtPKTTesterTXCount[13] = edtPKTTester2EV3TXCount;
m_edtPKTTesterTXCount[14] = edtPKTTester2DH3TXCount;
m_edtPKTTesterTXCount[15] = edtPKTTester2EV5TXCount;
m_edtPKTTesterTXCount[16] = edtPKTTester2DH5TXCount;
m_edtPKTTesterTXCount[17] = edtPKTTester3EV3TXCount;
m_edtPKTTesterTXCount[18] = edtPKTTester3DH1TXCount;
m_edtPKTTesterTXCount[19] = edtPKTTester3DH3TXCount;
m_edtPKTTesterTXCount[20] = edtPKTTester3EV5TXCount;
m_edtPKTTesterTXCount[21] = edtPKTTester3DH5TXCount;
m_edtPKTTesterRXCount[0] = edtPKTTesterDM1RXCount;
m_edtPKTTesterRXCount[1] = edtPKTTesterDH1RXCount;
m_edtPKTTesterRXCount[2] = edtPKTTesterDM3RXCount;
m_edtPKTTesterRXCount[3] = edtPKTTesterDH3RXCount;
m_edtPKTTesterRXCount[4] = edtPKTTesterDM5RXCount;
m_edtPKTTesterRXCount[5] = edtPKTTesterDH5RXCount;
m_edtPKTTesterRXCount[6] = edtPKTTesterHV1RXCount;
m_edtPKTTesterRXCount[7] = edtPKTTesterHV2RXCount;
m_edtPKTTesterRXCount[8] = edtPKTTesterHV3RXCount;
m_edtPKTTesterRXCount[9] = edtPKTTesterEV3RXCount;
m_edtPKTTesterRXCount[10] = edtPKTTesterEV4RXCount;
m_edtPKTTesterRXCount[11] = edtPKTTesterEV5RXCount;
m_edtPKTTesterRXCount[12] = edtPKTTester2DH1RXCount;
m_edtPKTTesterRXCount[13] = edtPKTTester2EV3RXCount;
m_edtPKTTesterRXCount[14] = edtPKTTester2DH3RXCount;
m_edtPKTTesterRXCount[15] = edtPKTTester2EV5RXCount;
m_edtPKTTesterRXCount[16] = edtPKTTester2DH5RXCount;
m_edtPKTTesterRXCount[17] = edtPKTTester3EV3RXCount;
m_edtPKTTesterRXCount[18] = edtPKTTester3DH1RXCount;
m_edtPKTTesterRXCount[19] = edtPKTTester3DH3RXCount;
m_edtPKTTesterRXCount[20] = edtPKTTester3EV5RXCount;
m_edtPKTTesterRXCount[21] = edtPKTTester3DH5RXCount;
m_edtPKTDUTTXCount[0] = edtPKTDUTDM1TXCount;
m_edtPKTDUTTXCount[1] = edtPKTDUTDH1TXCount;
m_edtPKTDUTTXCount[2] = edtPKTDUTDM3TXCount;
m_edtPKTDUTTXCount[3] = edtPKTDUTDH3TXCount;
m_edtPKTDUTTXCount[4] = edtPKTDUTDM5TXCount;
m_edtPKTDUTTXCount[5] = edtPKTDUTDH5TXCount;
m_edtPKTDUTTXCount[6] = edtPKTDUTHV1TXCount;
m_edtPKTDUTTXCount[7] = edtPKTDUTHV2TXCount;
m_edtPKTDUTTXCount[8] = edtPKTDUTHV3TXCount;
m_edtPKTDUTTXCount[9] = edtPKTDUTEV3TXCount;
m_edtPKTDUTTXCount[10] = edtPKTDUTEV4TXCount;
m_edtPKTDUTTXCount[11] = edtPKTDUTEV5TXCount;
m_edtPKTDUTTXCount[12] = edtPKTDUT2DH1TXCount;
m_edtPKTDUTTXCount[13] = edtPKTDUT2EV3TXCount;
m_edtPKTDUTTXCount[14] = edtPKTDUT2DH3TXCount;
m_edtPKTDUTTXCount[15] = edtPKTDUT2EV5TXCount;
m_edtPKTDUTTXCount[16] = edtPKTDUT2DH5TXCount;
m_edtPKTDUTTXCount[17] = edtPKTDUT3EV3TXCount;
m_edtPKTDUTTXCount[18] = edtPKTDUT3DH1TXCount;
m_edtPKTDUTTXCount[19] = edtPKTDUT3DH3TXCount;
m_edtPKTDUTTXCount[20] = edtPKTDUT3EV5TXCount;
m_edtPKTDUTTXCount[21] = edtPKTDUT3DH5TXCount;
m_edtPKTDUTRXCount[0] = edtPKTDUTDM1RXCount;
m_edtPKTDUTRXCount[1] = edtPKTDUTDH1RXCount;
m_edtPKTDUTRXCount[2] = edtPKTDUTDM3RXCount;
m_edtPKTDUTRXCount[3] = edtPKTDUTDH3RXCount;
m_edtPKTDUTRXCount[4] = edtPKTDUTDM5RXCount;
m_edtPKTDUTRXCount[5] = edtPKTDUTDH5RXCount;
m_edtPKTDUTRXCount[6] = edtPKTDUTHV1RXCount;
m_edtPKTDUTRXCount[7] = edtPKTDUTHV2RXCount;
m_edtPKTDUTRXCount[8] = edtPKTDUTHV3RXCount;
m_edtPKTDUTRXCount[9] = edtPKTDUTEV3RXCount;
m_edtPKTDUTRXCount[10] = edtPKTDUTEV4RXCount;
m_edtPKTDUTRXCount[11] = edtPKTDUTEV5RXCount;
m_edtPKTDUTRXCount[12] = edtPKTDUT2DH1RXCount;
m_edtPKTDUTRXCount[13] = edtPKTDUT2EV3RXCount;
m_edtPKTDUTRXCount[14] = edtPKTDUT2DH3RXCount;
m_edtPKTDUTRXCount[15] = edtPKTDUT2EV5RXCount;
m_edtPKTDUTRXCount[16] = edtPKTDUT2DH5RXCount;
m_edtPKTDUTRXCount[17] = edtPKTDUT3EV3RXCount;
m_edtPKTDUTRXCount[18] = edtPKTDUT3DH1RXCount;
m_edtPKTDUTRXCount[19] = edtPKTDUT3DH3RXCount;
m_edtPKTDUTRXCount[20] = edtPKTDUT3EV5RXCount;
m_edtPKTDUTRXCount[21] = edtPKTDUT3DH5RXCount;
m_pT_CWT = NULL;
// module test
lblItem[ 0] = lblItem1; lblItem[10] = lblItem11; lblItem[20] = lblItem21;
lblItem[ 1] = lblItem2; lblItem[11] = lblItem12; lblItem[21] = lblItem22;
lblItem[ 2] = lblItem3; lblItem[12] = lblItem13;
lblItem[ 3] = lblItem4; lblItem[13] = lblItem14; m_rbTestItem[0] = m_rbMTTestItem0;
lblItem[ 4] = lblItem5; lblItem[14] = lblItem15; m_rbTestItem[1] = m_rbMTTestItem1;
lblItem[ 5] = lblItem6; lblItem[15] = lblItem16; m_rbTestItem[2] = m_rbMTTestItem2;
lblItem[ 6] = lblItem7; lblItem[16] = lblItem17; m_rbTestItem[3] = m_rbMTTestItem3;
lblItem[ 7] = lblItem8; lblItem[17] = lblItem18; m_rbTestItem[4] = m_rbMTTestItem4;
lblItem[ 8] = lblItem9; lblItem[18] = lblItem19;
lblItem[ 9] = lblItem10; lblItem[19] = lblItem20;
for (int n = 0; n < BT_MT_TESTCASE_NUM; n++)
{
Script[n] = 0;
}
ActIdx = -1;
m_pvSendHCIPar = NULL;
m_pvReceiveHCIPar = NULL;
Init();
WindowProc = SubClassWndProc;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void TfrmBT::AllocateVector( void )
{
if( NULL == m_pvSendHCIPar )
m_pvSendHCIPar = new vector<S_BT_HCI_PARAMETER>;
if( NULL == m_pvReceiveHCIPar )
m_pvReceiveHCIPar = new vector<S_BT_HCI_PARAMETER>;
}
//---------------------------------------------------------------------------
void TfrmBT::DeAllocateVector( void )
{
if( m_pvSendHCIPar != NULL )
{
if( ! m_pvSendHCIPar->empty() )
{
m_pvSendHCIPar->erase( m_pvSendHCIPar->begin(), m_pvSendHCIPar->end() );
}
delete m_pvSendHCIPar;
}
if( m_pvReceiveHCIPar != NULL )
{
if( ! m_pvReceiveHCIPar->empty() )
{
m_pvReceiveHCIPar->erase( m_pvReceiveHCIPar->begin(), m_pvReceiveHCIPar->end() );
}
delete m_pvReceiveHCIPar;
}
}
//---------------------------------------------------------------------------
void TfrmBT::Init(void)
{
m_bInit = true;
btnHCIStart->Enabled = true;
btnRFTxStart->Enabled = true;
// btnRFRxStart->Enabled = true;
btnPKTStart->Enabled = true;
btnPKTConnectDUT->Enabled = true;
m_btnMTConnect->Enabled = m_cbMETAMode->Checked;
shpPKTConnect->Brush->Color = clRed;
m_shpMTConnect->Brush->Color = clRed;
m_bConnectTargetok = false;
m_bConnectingTarget = false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmBT::FormHide(TObject *Sender)
{
m_sCWT.iBootStop = BOOT_STOP;
AbortConnectWithTarget();
}
//==============================================================================
void _fastcall TfrmBT::SubClassWndProc( Messages::TMessage &Message)
{
switch ( Message.Msg )
{
case WM_ML_BT_BD_ADDRESS_MSG:
{
DisplayPKTBDAddress( (E_BT_PACKET_DEVICE_T) Message.WParam );
}
break;
case WM_ML_BT_START_MONITOR_MSG:
{
MonitorTimer->Enabled = true;
}
break;
// case WM_ML_BT_DISPLAY_SCT_UI_MSG:
// {
// }
// break;
case WM_ML_BT_PRINT_MSG:
{
switch( (E_BT_PAGEIDX) Message.WParam )
{
case PAGEIDX_BT_HCI:
{
FillHCIResult();
}
break;
case PAGEIDX_BT_RF:
{ FillRFResult();
}
break;
case PAGEIDX_BT_PKT:
{ FillPKTResult();
}
break;
case PAGEIDX_BT_SCT:
{ FillSCTResult();
}
break;
case PAGEIDX_BT_TT:
{ FillTTResult();
}
break;
case PAGEIDX_BT_CT:
{ FillCTResult();
}
break;
}
}
break;
case WM_ML_BT_PIN_MSG:
{
btnCTEnterPIN->Enabled = true;
ShowHintLabel( edtCTPIN, "Please enter PIN code" );
}
break;
case MW_ML_BT_CONNECT_MSG:
{
switch( (E_BT_PAGEIDX) Message.WParam )
{
case PAGEIDX_BT_CT:
{
ReDrawCTFields( DRAM_MASK_CT_DISCOVERED_LIST |
DRAM_MASK_CT_CONNECT_LIST |
DRAM_MASK_CT_ACL_STATUS |
DRAM_MASK_CT_BUTTON );
sbCT->Panels->Items[0]->Text = (AnsiString)" Connect from remote BT device";
}
break;
case PAGEIDX_BT_TT:
{
m_sBTTTRes = m_cBT_TT_Obj.Get_TTResult();
ReDrawTTFields( DRAM_MASK_TT_ACL_STATUS |
DRAM_MASK_TT_BUTTON );
sbTT->Panels->Items[0]->Text = (AnsiString)" Connect from remote BT device";
}
break;
}
}
break;
case WM_ML_BT_DISCONNECT_MSG:
{
switch( (E_BT_PAGEIDX) Message.WParam )
{
case PAGEIDX_BT_CT:
{
ReDrawCTFields( DRAM_MASK_CT_DISCOVERED_LIST |
DRAM_MASK_CT_CONNECT_LIST |
DRAM_MASK_CT_ACL_STATUS |
DRAM_MASK_CT_BUTTON );
sbCT->Panels->Items[0]->Text = (AnsiString)" Disconnect from remote BT device";
}
break;
case PAGEIDX_BT_TT:
{
m_sBTTTRes = m_cBT_TT_Obj.Get_TTResult();
ReDrawTTFields( DRAM_MASK_TT_ACL_STATUS |
DRAM_MASK_TT_BUTTON );
sbTT->Panels->Items[0]->Text = (AnsiString)" Disconnect from remote BT device";
}
break;
}
}
break;
case WM_ML_BT_TT_TX_STATUS:
{
unsigned int ui_pkt_length = (unsigned int) Message.WParam;
unsigned int ui_used_time;
if (BT_TT_VER_0 == m_eTtVer)
{
S_TIME time;
time = ::Get_CurrentTime();
int msec = DifferenceMiniSec(&m_sTTTxStartTime, &time);
ui_used_time = (unsigned int) msec;
}
else
{
ui_used_time = (unsigned int) Message.LParam;
}
if (0 == ui_used_time)
{
return;
}
int data_len = edtTTDataLen->Text.ToInt();
float tx_throughput = 1000.0 * ui_pkt_length / ui_used_time;
int count = ui_pkt_length/data_len;
char str[64];
sprintf(str, "%.3f", tx_throughput);
stTTTxCount->Caption = IntToStr(count);
stTTTxThroughput->Caption = (AnsiString) str;
if (count >= edtTTPacketCount->Text.ToInt())
{
CurrentPageReset();
}
}
break;
case WM_ML_BT_TT_RX_STATUS:
{
unsigned int ui_pkt_length = (unsigned int) Message.WParam;
unsigned int ui_used_time;
if (BT_TT_VER_0 == m_eTtVer)
{
S_TIME time;
time = ::Get_CurrentTime();
int msec = DifferenceMiniSec(&m_sTTRxStartTime, &time);
ui_used_time = (unsigned int) msec;
}
else
{
ui_used_time = (unsigned int) Message.LParam;
}
if (0 == ui_used_time)
{
return;
}
// int data_len = edtTTDataLen->Text.ToInt();
float rx_throughput = 1000.0 * ui_pkt_length / ui_used_time;
char str[64];
sprintf(str, "%.3f", rx_throughput);
stTTRxBytes->Caption = IntToStr(ui_pkt_length);
stTTRxThroughput->Caption = (AnsiString) str;
}
break;
default:
this->WndProc( Message );
break;
}
}
//===========================================================================
//////////////////////////// Form event handler //////////////////////////
//===========================================================================
void __fastcall TfrmBT::FormCreate(TObject *Sender)
{
m_bFirstFormShow = true;
// allocate memory
m_pHCILog = new TStringList;
m_pRFLog = new TStringList;
m_pPKTLog = new TStringList;
m_pSCTLog = new TStringList;
m_pCTLog = new TStringList;
m_pTTLog = new TStringList;
AllocateVector();
if( rbHCICategory->Checked )
{
cbHCICategory->Enabled = true;
cbHCIGroup->Enabled = false;
}
else
{
cbHCICategory->Enabled = false;
cbHCIGroup->Enabled = true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -