⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form_wifi.cpp

📁 MTK 手机软件开发 META 源代码,开发环境: C++ Builder
💻 CPP
📖 第 1 页 / 共 5 页
字号:

    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 + -