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

📄 form_wifitxprofile.cpp

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

    strcpy( str, SaveDialog->FileName.c_str() );

    if( m_sWiFiCap.support_802_11g || m_sWiFiCap.support_802_11b )
    {
        m_WIFI_TXP_Obj.Set_TxChannelDac2400M( m_sTxPwr2400M );
        ok = m_WIFI_TXP_Obj.REQ_Write_TxPower2400M_To_File( str );
        if( !ok )
        {
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Save WiFi TX setting to file fail";
            Application->MessageBox( "Execution Failure : Save WiFi TX setting to file", "FAILURE", MB_OK );
            return;
        }
    }

   // if( m_sWiFiCap.support_802_11a )
   // {
   //     m_WIFI_TXP_Obj.Set_TxChannelDac5000M( m_sTxPwr5000M );
   //     ok = m_WIFI_TXP_Obj.REQ_Write_TxPower5000M_To_File( str );
   //     if( !ok )
   //     {
   //         sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Save WiFi TX setting to file fail";
   //         Application->MessageBox( "Execution Failure : Save WiFi TX setting to file", "FAILURE", MB_OK );
   //         return;
   //     }
   // }

    sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Save WiFi TX setting to file successfully";    
}
//---------------------------------------------------------------------------

void __fastcall TfrmWiFiTxProfile::btnLoadFromFileClick(TObject *Sender)
{
    char str[512];
    bool ok;
    float  fdata;

    ok = OpenDialog->Execute();
    if( !ok )
    {
        sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Load WiFi TX setting from file fail";
        return;
    }
    strcpy( str, OpenDialog->FileName.c_str() );
    if( m_sWiFiCap.support_802_11g || m_sWiFiCap.support_802_11b )
    {
        ok = m_WIFI_TXP_Obj.REQ_Read_TxPower2400M_From_File( str );
        if( ok )
        {
            m_sTxPwr2400M = m_WIFI_TXP_Obj.Get_TxChannelDac2400M();
        }
        else
        {
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Load WiFi TX setting from file fail";
            Application->MessageBox( "Execution Failure : Load WiFi TX setting from file", "FAILURE", MB_OK );
        }
    }

    if( m_sWiFiCap.support_802_11a )
    {
        ok = m_WIFI_TXP_Obj.REQ_Read_TxPower5000M_From_File( str );
        if( ok )
        {
            m_sTxPwr5000M = m_WIFI_TXP_Obj.Get_TxChannelDac5000M();
        }
        else
        {
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Load WiFi TX setting from file fail";
            Application->MessageBox( "Execution Failure : Load WiFi TX setting from file", "FAILURE", MB_OK );
        }
    }


    ReDrawFields();
    sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Load WiFi TX setting from file successfully";    
}
//---------------------------------------------------------------------------

void __fastcall TfrmWiFiTxProfile::btnChangeDBClick(TObject *Sender)
{
    frmMainSel->mnuFDMDatabaseClick(Sender);
    if( ! NVRAMMan->Get_IsInit() )
    {
        sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  NVRAM database file initialization fail";
        Application->MessageBox( "Execution Failure : NVRAM database file initialization fail", "FAILURE", MB_OK );
        return;
    }
    sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Change NVRAM database file successfully";    
}
//---------------------------------------------------------------------------

void __fastcall TfrmWiFiTxProfile::btnDownloadToFlashClick(TObject *Sender)
{
    if( ! NVRAMMan->Get_IsInit() )
    {  frmMainSel->mnuFDMDatabaseClick(Sender);
    }

    if( ! NVRAMMan->Get_IsInit() )
    {
        sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  NVRAM database file initialize fail";
        Application->MessageBox( "Execution Failure : NVRAM database file initialize fail", "FAILURE", MB_OK );
        return;
    }

    if( m_sWiFiCap.support_802_11g || m_sWiFiCap.support_802_11b )
    {
        m_WIFI_TXP_Obj.Set_TxChannelDac2400M( m_sTxPwr2400M );
        m_WIFI_TXP_Obj.ConfirmCallback = ::CNF_WriteTxPower2400MToNVRAM;
        m_WIFI_TXP_Obj.REQ_Write_TxPower2400M_To_NVRAM_Start();
    }
  //  else if( m_sWiFiCap.support_802_11a )
  //  {
  //      m_WIFI_TXP_Obj.Set_TxChannelDac5000M( m_sTxPwr5000M );
  //      m_WIFI_TXP_Obj.ConfirmCallback = ::CNF_WriteTxPower5000MToNVRAM;
  //      m_WIFI_TXP_Obj.REQ_Write_TxPower5000M_To_NVRAM_Start();
  //  }

    CurrentPageLock();
    sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Download WiFi TX power setting to flash progressing";
}

//---------------------------------------------------------------------------
void  TfrmWiFiTxProfile::DownloadTxPower2400MToFlashDone( void )
{
    E_METAAPP_RESULT_T state = m_WIFI_TXP_Obj.Get_ConfirmState();

    switch( state )
    {
        case METAAPP_SUCCESS:
        {
           // if( m_sWiFiCap.support_802_11a )
           // {
           //     m_WIFI_TXP_Obj.Set_TxChannelDac5000M( m_sTxPwr5000M );
           //     m_WIFI_TXP_Obj.ConfirmCallback = ::CNF_WriteTxPower5000MToNVRAM;
           //     m_WIFI_TXP_Obj.REQ_Write_TxPower5000M_To_NVRAM_Start();
           // }
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Download WiFi TX power setting to flash successfully";
            CurrentPageReset();
        }
        break;

        case METAAPP_FAIL:
        {
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Download WiFi TX power setting to flash fail, please check the version of load and NVRAM database are same.";
            Application->MessageBox( "Execution Failure : Download WiFi TX power setting to flash, please check the version of load and NVRAM database are same.", "FAILURE", MB_OK );
            CurrentPageReset();
        }
        break;

        case METAAPP_TIMEOUT:
        {
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Download WiFi TX power setting to flash timeout";
            Application->MessageBox( "Execution Timeout : Download WiFi TX power setting to flash", "TIMEOUT", MB_OK );
            CurrentPageReset();
        }
        break;

        case METAAPP_STOP:
        {
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Download WiFi TX power setting to flash stop";
            CurrentPageReset();
        }
        break;
    }


}

//---------------------------------------------------------------------------
void  TfrmWiFiTxProfile::DownloadTxPower5000MToFlashDone( void )
{
    E_METAAPP_RESULT_T state = m_WIFI_TXP_Obj.Get_ConfirmState();

    switch( state )
    {
        case METAAPP_SUCCESS:
        {
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Download TX channel power setting to flash successful";
        }
        break;

        case METAAPP_FAIL:
        {
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Download TX channel power setting to flash fail, please check the version of load and NVRAM database are same.";
            Application->MessageBox( "Execution Failure : Download TX channel power setting to flash, please check the version of load and NVRAM database are same.", "FAILURE", MB_OK );
            CurrentPageReset();

        }
        break;

        case METAAPP_TIMEOUT:
        {
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Download TX channel power setting to flash timeout";
            Application->MessageBox( "Execution Timeout : Download TX channel power setting to flash", "TIMEOUT", MB_OK );
            CurrentPageReset();
        }
        break;

        case METAAPP_STOP:
        {
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Download TX channel power setting to flash stop";
            CurrentPageReset();
        }
        break;
    }


}

void __fastcall TfrmWiFiTxProfile::FormShow(TObject *Sender)
{
    if( m_bInit )
    {
        m_bInit = false;
        m_sWiFiCap = frmMainSel->Get_FinalWiFiCap();
    }
}
//---------------------------------------------------------------------------


void __fastcall TfrmWiFiTxProfile::btnTxPowerDacClick(TObject *Sender)
{
    if( 0 == btnTxPowerDac->Tag )  // Dec-->Hex
    {    btnTxPowerDac->Tag = 1;
    }
    else  //Hex-->Dec
    {    btnTxPowerDac->Tag = 0;
    }
    ReDrawFields();
}

//--------------------------------------------------------------------------
void __fastcall TfrmWiFiTxProfile::edtCCKCHDACCheck(TObject *Sender)
{

    unsigned char  uc_data;
    AnsiString  text;
    TEdit *edit = (TEdit*)Sender;
    char  hint[] = " value shall be 0~63 ";

    text = edit->Text;
    if( 0 == btnTxPowerDac->Tag )  // Dec
    {
        if( !IsValidDecWiFiTxPowerDac( text, uc_data ) )
        {
            ShowHintLabel( edit, hint );
            edit->SetFocus();
            return;
        }
    }
    else  // Hex
    {
        if( !IsValidHexWiFiTxPowerDac( text, uc_data ) )
        {
            ShowHintLabel( edit, hint );
            edit->SetFocus();
            return;
        }
    }
    m_sTxPwr2400M.CCKTxPWR[edit->Tag] = uc_data;

}

//---------------------------------------------------------------------------

void __fastcall TfrmWiFiTxProfile::edtOFDMCHDACCheck(TObject *Sender)
{
    unsigned char  uc_data;
    AnsiString  text;
    TEdit *edit = (TEdit*)Sender;
    char  hint[] = " value shall be 0~63 ";

    text = edit->Text;
    if( 0 == btnTxPowerDac->Tag )  // Dec
    {
        if( !IsValidDecWiFiTxPowerDac( text, uc_data ) )
        {
            ShowHintLabel( edit, hint );
            edit->SetFocus();
            return;
        }
    }
    else  // Hex
    {
        if( !IsValidHexWiFiTxPowerDac( text, uc_data ) )
        {
            ShowHintLabel( edit, hint );
            edit->SetFocus();
            return;
        }
    }
    m_sTxPwr2400M.OFDMTxPWR[edit->Tag] = uc_data;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void TfrmWiFiTxProfile::Compose_EEPROM_Parameter( void )
{

    m_sEE.count = 14;

    for (unsigned int i=0; i<m_sEE.count; i++)
    {
        m_sEE.eeprom[i].index = ADDR_MT5911_EEPROM_2_4G_CCK_TX_POWER + i;
    }
}

//--------------------------------------------------------------------------
void __fastcall TfrmWiFiTxProfile::btnLoadFromEEPROMClick(TObject *Sender)
{
    CurrentPageLock();

    Compose_EEPROM_Parameter();

    m_WIFI_EE_Obj.ConfirmCallback  = ::ConfirmCallback_ReadAEE;
    m_WIFI_EE_Obj.REQ_Read_From_EE_Start( m_sEE );

    sbWiFiTXP->Panels->Items[0]->Text = (AnsiString)"  Load WiFi TX power from EEPROM progressing";
}

//-----------------------------------------------
void TfrmWiFiTxProfile::ConfirmCallback_ReadEE( void )
{
    E_METAAPP_RESULT_T state = m_WIFI_EE_Obj.Get_ConfirmState();

    switch (state)
    {
        case METAAPP_SUCCESS:
        {
            m_sEE = m_WIFI_EE_Obj.Get_EE();
            WiFiTxPowerEEToNVRAM();
            ReDrawFields();
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString)"  Load WiFi TX power from EEPROM successfully";
        }
        break;

        case METAAPP_FAIL:
        {
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString)"  Load WiFi TX power from EEPROM fail";
            Application->MessageBox( "Execution Timeout : Load WiFi TX power from EEPROM", "FAIL", MB_OK );
        }
        break;

        case METAAPP_TIMEOUT:
        {
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString)"  Load WiFi TX power from EEPROM timeout";
            Application->MessageBox( "Execution Timeout : Load WiFi TX power from EEPROM", "TIMEOUT", MB_OK );
        }
        break;

        case METAAPP_STOP:
        {
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString)"  Load WiFi TX power from EEPROM stop";
        }
        break;
    }
    CurrentPageReset();
}

//--------------------------------------------------------------------------
void TfrmWiFiTxProfile::WiFiTxPowerEEToNVRAM( void )
{
    int i;
    for(i=0; i<NUM_TX_POWER_2400M_CH/2; i++)
    {
        m_sTxPwr2400M.CCKTxPWR[2*i]   = (unsigned char) m_sEE.eeprom[i].eeprom_data16 & 0x00FF;
        m_sTxPwr2400M.CCKTxPWR[2*i+1] = (unsigned char) ((m_sEE.eeprom[i].eeprom_data16 & 0xFF00)>>8);
    }

    for(i=0; i<NUM_TX_POWER_2400M_CH/2; i++)
    {
        m_sTxPwr2400M.OFDMTxPWR[2*i]   = (unsigned char) m_sEE.eeprom[i+NUM_TX_POWER_2400M_CH/2].eeprom_data16 & 0x00FF ;
        m_sTxPwr2400M.OFDMTxPWR[2*i+1] = (unsigned char) ((m_sEE.eeprom[i+NUM_TX_POWER_2400M_CH/2].eeprom_data16 & 0xFF00)>>8);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -