📄 form_wifi.cpp
字号:
m_uiMacAddr = 0;
m_uiMacBeginAddr = 0;
m_uiMacEndAddr = 0;
m_uiMacData = 0;
m_usMac16Data = 0;
// eeprom
m_uiEEPROMIdx = 0;
m_uiEEPROMBeginIdx = 0;
m_uiEEPROMEndIdx = 0;
m_usEEPROMData = 0;
m_iTestPageIndex = PAGEIDX_NONE;
m_iLastPageIndex = pctlToolSel->ActivePageIndex;
// dynamic allocate
m_pSCLog = new TStringList;
}
//---------------------------------------------------------------------------
void __fastcall TfrmWiFi::FormDestroy(TObject *Sender)
{
delete m_pSCLog;
DeAllocateBBCRVector();
DeAllocateMCRVector();
DeAllocateMCR16Vector();
DeAllocateEEPROMVector();
}
//--------------------------------------------------------------------------
void __fastcall TfrmWiFi::FormShow(TObject *Sender)
{
ApplyHideProperty();
frmWiFiTxProfile->WIFI_APC_Obj(&m_WIFI_APC_Obj);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWiFi::ToggleHideExecute(TObject *Sender)
{
g_bHideEnable = g_bHideEnable ? false : true;
ApplyHideProperty();
}
//---------------------------------------------------------------------------
void TfrmWiFi::ApplyHideProperty( void )
{
bool visible = g_bHideEnable ? false : true;
btnBBRegSetting->Visible = visible;
btnMACRegSetting->Visible = visible;
btnEEPROMSetting->Visible = visible;
tsSC->Visible = visible;
tsSC->TabVisible = visible;
}
//---------------------------------------------------------------------------
void __fastcall TfrmWiFi::pctlToolSelChange(TObject *Sender)
{
if( PAGEIDX_NONE != m_iTestPageIndex )
{
if(m_iTestPageIndex != pctlToolSel->ActivePageIndex &&
PAGEIDX_BB != pctlToolSel->ActivePageIndex &&
PAGEIDX_MAC != pctlToolSel->ActivePageIndex &&
PAGEIDX_EE != pctlToolSel->ActivePageIndex
)
{
pctlToolSel->ActivePageIndex = m_iLastPageIndex;
Application->MessageBox( "Cannot change page because test is progressing", "Notice", MB_OK );
return;
}
}
switch(pctlToolSel->ActivePageIndex)
{
case PAGEIDX_TXALL:
{
// if( ! m_bFirstCPTXShow )
// {
// m_bFirstCPTXShow = false;
// Display_CPTXChannelId();
// }
}
break;
case PAGEIDX_CPRX:
break;
case PAGEIDX_PS:
break;
case PAGEIDX_BB:
break;
case PAGEIDX_MAC:
break;
case PAGEIDX_EE:
break;
}
m_iLastPageIndex = pctlToolSel->ActivePageIndex;
}
//---------------------------------------------------------------------------
void TfrmWiFi::ReDrawFields( int page_idx )
{
switch( page_idx )
{
case PAGEIDX_TXALL:
ReDrawTXFields();
break;
case PAGEIDX_CPRX:
break;
case PAGEIDX_PS:
break;
case PAGEIDX_BB:
ReDrawBBFields();
break;
case PAGEIDX_MAC:
ReDrawMACFields();
break;
case PAGEIDX_EE:
ReDrawEEFields();
break;
case PAGEIDX_SC:
break;
}
}
//---------------------------------------------------------------------------
void TfrmWiFi::ReDrawTXFields(void)
{
char str[256];
E_WIFI_GENERATION wifi_802_11_idx;
unsigned int chan_idx;
if(! GetWiFiChannelIndexFromStr( cbTXChannelID->Text, cbTXTxRate->Text, wifi_802_11_idx, chan_idx ) )
{
return;
}
if( 0 == btnTXTxPowerDac->Tag ) // Dec
{
btnTXTxPowerDac->Caption = "TX power DAC (Dec)";
lblTXTxPowerDac0X->Visible = false;
if( WIFI_802_11A_IDX == wifi_802_11_idx )
{
edtTXTxPowerDAC->Text = IntToStr( m_sTxPwr5000M.TxPWR[chan_idx] );
}
else if( WIFI_802_11B_IDX == wifi_802_11_idx )
{
edtTXTxPowerDAC->Text = IntToStr( m_sTxPwr2400M.CCKTxPWR[chan_idx] );
}
else // 802.11G
{ edtTXTxPowerDAC->Text = IntToStr( m_sTxPwr2400M.OFDMTxPWR[chan_idx] );
}
}
else // Hex
{
btnTXTxPowerDac->Caption = "TX power DAC (Hex)";
lblTXTxPowerDac0X->Visible = true;
if( WIFI_802_11A_IDX == wifi_802_11_idx )
{
sprintf( str, "%X", (int)m_sTxPwr5000M.TxPWR[chan_idx] );
}
else if( WIFI_802_11B_IDX == wifi_802_11_idx )
{
sprintf( str, "%X", (int)m_sTxPwr2400M.CCKTxPWR[chan_idx] );
}
else // 802.11G
{
sprintf( str, "%X", (int)m_sTxPwr2400M.OFDMTxPWR[chan_idx] );
}
edtTXTxPowerDAC->Text = str;
}
// TX DC offset
if( 0 == btnTXIDC->Tag ) // Dec
{
btnTXIDC->Caption = "I_DC (Dec)";
lblTXIDC0x->Visible = false;
edtTXIDC->Text = IntToStr( m_sTxDcOffset.i_ch_offset );
}
else // Hex
{
btnTXIDC->Caption = "I_DC (Hex)";
lblTXIDC0x->Visible = true;
sprintf( str, "%X", (int)m_sTxDcOffset.i_ch_offset );
edtTXIDC->Text = str;
}
if( 0 == btnTXQDC->Tag ) // Dec
{
btnTXQDC->Caption = "Q_DC (Dec)";
lblTXQDC0x->Visible = false;
edtTXQDC->Text = IntToStr( m_sTxDcOffset.q_ch_offset );
}
else // Hex
{
btnTXQDC->Caption = "Q_DC (Hex)";
lblTXQDC0x->Visible = true;
sprintf( str, "%X", (int)m_sTxDcOffset.q_ch_offset );
edtTXQDC->Text = str;
}
}
//---------------------------------------------------------------------------
void TfrmWiFi::ReDrawTXOPFields( void )
{
#if 0
char str[256];
E_WIFI_GENERATION wifi_802_11_idx;
unsigned int chan_idx;
if(! GetWiFiChannelIndexFromStr( cbTXOPChannelID->Text, cbTXOPTXRate->Text, wifi_802_11_idx, chan_idx ) )
{
return;
}
if( 0 == btnTXOPTxPowerDac->Tag ) // Dec
{
btnTXOPTxPowerDac->Caption = "TX power DAC (Dec)";
lblTXOPTxPowerDac0X->Visible = false;
if( WIFI_802_11A_IDX == wifi_802_11_idx )
{
edtTXOPTxPowerDAC->Text = m_sTxPwr5000M.TxPWR[chan_idx];
}
else if( WIFI_802_11B_IDX == wifi_802_11_idx )
{
edtTXOPTxPowerDAC->Text = m_sTxPwr2400M.CCKTxPWR[chan_idx];
}
else
{
edtTXOPTxPowerDAC->Text = m_sTxPwr2400M.OFDMTxPWR[chan_idx];
}
}
else // Hex
{
btnTXOPTxPowerDac->Caption = "TX power DAC (Hex)";
lblTXOPTxPowerDac0X->Visible = true;
if( WIFI_802_11A_IDX == wifi_802_11_idx )
{
sprintf( str, "%X", (int)m_sTxPwr5000M.TxPWR[chan_idx] );
}
else if( WIFI_802_11B_IDX == wifi_802_11_idx )
{
sprintf( str, "%X", (int)m_sTxPwr2400M.CCKTxPWR[chan_idx] );
}
else // 802.11g
{
sprintf( str, "%X", (int)m_sTxPwr2400M.OFDMTxPWR[chan_idx] );
}
edtTXOPTxPowerDAC->Text = str;
}
#endif
}
//---------------------------------------------------------------------------
void TfrmWiFi::ReDrawBBFields( void )
{
char str[256];
//sprintf(str, "%08lx", m_ucBBAddr);
//sprintf(str, "%04lx", m_ucBBAddr);
//edtBBCRIndex->Text = str;
edtBBCRIndex->Text = m_uiBBIdx;
if( 0 == btnBBCRData->Tag ) // Dec
{
btnBBCRData->Caption = "CR Data (Dec)";
lblBBCRData0X->Visible = false;
edtBBCRData->Text = m_ucBBValue;
}
else // Hex
{
btnBBCRData->Caption = "CR Data (Hex)";
lblBBCRData0X->Visible = true;
sprintf( str, "%X", (int)m_ucBBValue );
edtBBCRData->Text = str;
}
}
//---------------------------------------------------------------------------
void TfrmWiFi::ReDrawMACFields( void )
{
char str[256];
//sprintf(str, "%08lx", m_ucBBAddr);
sprintf(str, "%04lx", m_uiMacAddr);
edtMACMCRAddress->Text = str;
if( btnMACMCRData->Tag==0 ) // Dec
{
btnMACMCRData->Caption = "CR Data (Dec)";
lblMACMCRData0X->Visible = false;
if( rbMAC16bits->Checked )
{
edtMACMCRData->Text = m_usMac16Data;
}
else
{ edtMACMCRData->Text = m_uiMacData;
}
}
else // Hex
{
btnMACMCRData->Caption = "CR Data (Hex)";
lblMACMCRData0X->Visible = true;
if( rbMAC16bits->Checked )
{ sprintf( str, "%X", m_usMac16Data );
}
else
{ sprintf( str, "%X", m_uiMacData );
}
edtMACMCRData->Text = str;
}
}
//---------------------------------------------------------------------------
void TfrmWiFi::ReDrawEEFields( void )
{
char str[256];
sprintf(str, "%04lx", m_uiEEPROMIdx);
// sprintf(str, "%04lx", m_sEE.eeprom[0].index);
edtEEIndex->Text = str;
if( 0 == btnEEData->Tag ) // Dec
{
btnEEData->Caption = "EEPRom data (Dec)";
lblEEData0X->Visible = false;
edtEEData->Text = IntToStr( m_sEE.eeprom[0].eeprom_data16 );
}
else // Hex
{
btnEEData->Caption = "EEPRom data (Hex)";
lblEEData0X->Visible = true;
sprintf( str, "%X", m_sEE.eeprom[0].eeprom_data16 );
edtEEData->Text = str;
}
}
//----------------------------------------------------------------------------
void TfrmWiFi::FillBBResult( bool is_title )
{
char str[256];
if( is_title )
{
memBBResult->Lines->Clear();
sprintf( str, " BB BB " );
memBBResult->Lines->Add(str);
sprintf( str, " index data " );
memBBResult->Lines->Add(str);
sprintf( str, "=======================================================" );
memBBResult->Lines->Add(str);
}
else
{
AnsiString as_bbinfo;
unsigned int bb_addr;
unsigned char bb_value;
vector<WiFi_BBReg8_S>:: iterator iter;
WiFi_BBReg8_S bbcr_first = *m_pvBBCRDisp->begin();
for( iter = m_pvBBCRDisp->begin(); iter != m_pvBBCRDisp->end(); iter++ )
// for( int i=0; i<m_sBBCR.count; i++ )
{
bb_addr = iter->index;
bb_value = iter->bbcr_data8;
if( (bb_addr-bbcr_first.index) % 8 == 0 )
{
sprintf(str, "%04ld: ", bb_addr);
as_bbinfo = str;
}
sprintf(str, "%02lx ", bb_value);
as_bbinfo += str;
// if( bb_addr % 8 == 0 && bb_addr != 0 )
if( (bb_addr-bbcr_first.index) % 8 == 7 )
{
strcpy( str, as_bbinfo.c_str() );
memBBResult->Lines->Add(str);
}
}
if( (bb_addr-bbcr_first.index) % 8 != 7 )
{
strcpy( str, as_bbinfo.c_str() );
memBBResult->Lines->Add(str);
}
}
}
//----------------------------------------------------------------------------
void TfrmWiFi::FillMACResult( bool is_title )
{
char str[256];
if( is_title )
{
memMACResult->Lines->Clear();
sprintf( str, " MAC MAC " );
memMACResult->Lines->Add(str);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -