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

📄 form_wifitxprofile.cpp

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

#include <vcl.h>
#pragma hdrstop

// form
#include "form_WiFITxProfile.h"

#ifndef _FORM_MAIN_H_
#include "form_main.h"
#endif

// man
#ifndef  _MAN_FDM_H_
#include "man_fdm.h"
#endif

// misc
#ifndef  _MISC_WIFI_H_
#include "misc_wifi.h"
#endif

// WiFi
#ifndef  _MT5911_COMMON_H_
#include "mt5911_common.h"
#endif
//---------------------------------------------------------------------------
typedef enum
{
    WIFI_CHANNEL_2412M = 0,
    WIFI_CHANNEL_2417M,
    WIFI_CHANNEL_2422M,
    WIFI_CHANNEL_2427M,
    WIFI_CHANNEL_2432M,
    WIFI_CHANNEL_2437M,
    WIFI_CHANNEL_2442M,
    WIFI_CHANNEL_2447M,
    WIFI_CHANNEL_2452M,
    WIFI_CHANNEL_2457M,
    WIFI_CHANNEL_2462M,
    WIFI_CHANNEL_2467M,
    WIFI_CHANNEL_2472M,
    WIFI_CHANNEL_2484M,
    WIFI_CHANNEL_2400M_COUNT       /* Total count */
} E_WIFI_CHANNEL_2400M;

typedef enum
{
    WIFI_CHANNEL_5040M = 0,
    WIFI_CHANNEL_5060M,
    WIFI_CHANNEL_5080M,
    WIFI_CHANNEL_5170M,
    WIFI_CHANNEL_5180M,
    WIFI_CHANNEL_5190M,
    WIFI_CHANNEL_5200M,
    WIFI_CHANNEL_5210M,
    WIFI_CHANNEL_5220M,
    WIFI_CHANNEL_5230M,
    WIFI_CHANNEL_5240M,
    WIFI_CHANNEL_5260M,
    WIFI_CHANNEL_5280M,
    WIFI_CHANNEL_5300M,
    WIFI_CHANNEL_5320M,
    WIFI_CHANNEL_5500M,
    WIFI_CHANNEL_5520M,
    WIFI_CHANNEL_5540M,
    WIFI_CHANNEL_5560M,
    WIFI_CHANNEL_5580M,
    WIFI_CHANNEL_5600M,
    WIFI_CHANNEL_5620M,
    WIFI_CHANNEL_5640M,
    WIFI_CHANNEL_5660M,
    WIFI_CHANNEL_5680M,
    WIFI_CHANNEL_5700M,
    WIFI_CHANNEL_5745M,
    WIFI_CHANNEL_5765M,
    WIFI_CHANNEL_5785M,
    WIFI_CHANNEL_5805M,
    WIFI_CHANNEL_4920M,
    WIFI_CHANNEL_4940M,
    WIFI_CHANNEL_4960M,
    WIFI_CHANNEL_4980M,
    WIFI_CHANNEL_5000M_COUNT       /* Total count */
} E_WIFI_CHANNEL_5000M;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmWiFiTxProfile *frmWiFiTxProfile;

//---------------------------------------------------------------------------
static void  CNF_ReadTxPower2400MFromNVRAM( void )
{   frmWiFiTxProfile->UploadTxPower2400MFromFlashDone();
}

//---------------------------------------------------------------------------
static void CNF_WriteTxPower2400MToNVRAM( void )
{   frmWiFiTxProfile->DownloadTxPower2400MToFlashDone();
}

//---------------------------------------------------------------------------
static void CNF_ReadTxPower5000MFromNVRAM( void )
{   frmWiFiTxProfile->UploadTxPower5000MFromFlashDone();
}

//---------------------------------------------------------------------------
static void CNF_WriteTxPower5000MToNVRAM( void )
{   frmWiFiTxProfile->DownloadTxPower5000MToFlashDone();
}

//---------------------------------------------------------------------------
static void ConfirmCallback_ReadAEE( void )
{   frmWiFiTxProfile->ConfirmCallback_ReadEE();
}

//============================================================================
__fastcall TfrmWiFiTxProfile::TfrmWiFiTxProfile(TComponent* Owner)
        : TForm(Owner)
{
}

//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmWiFiTxProfile::FormCreate(TObject *Sender)
{
    edtCCKCHDAC[ 0] = edtCCKCHDAC00;
    edtCCKCHDAC[ 1] = edtCCKCHDAC01;
    edtCCKCHDAC[ 2] = edtCCKCHDAC02;
    edtCCKCHDAC[ 3] = edtCCKCHDAC03;
    edtCCKCHDAC[ 4] = edtCCKCHDAC04;
    edtCCKCHDAC[ 5] = edtCCKCHDAC05;
    edtCCKCHDAC[ 6] = edtCCKCHDAC06;
    edtCCKCHDAC[ 7] = edtCCKCHDAC07;
    edtCCKCHDAC[ 8] = edtCCKCHDAC08;
    edtCCKCHDAC[ 9] = edtCCKCHDAC09;
    edtCCKCHDAC[10] = edtCCKCHDAC0A;
    edtCCKCHDAC[11] = edtCCKCHDAC0B;
    edtCCKCHDAC[12] = edtCCKCHDAC0C;
    edtCCKCHDAC[13] = edtCCKCHDAC0D;

    edtOFDMCHDAC[ 0] = edtOFDMCHDAC00;
    edtOFDMCHDAC[ 1] = edtOFDMCHDAC01;
    edtOFDMCHDAC[ 2] = edtOFDMCHDAC02;
    edtOFDMCHDAC[ 3] = edtOFDMCHDAC03;
    edtOFDMCHDAC[ 4] = edtOFDMCHDAC04;
    edtOFDMCHDAC[ 5] = edtOFDMCHDAC05;
    edtOFDMCHDAC[ 6] = edtOFDMCHDAC06;
    edtOFDMCHDAC[ 7] = edtOFDMCHDAC07;
    edtOFDMCHDAC[ 8] = edtOFDMCHDAC08;
    edtOFDMCHDAC[ 9] = edtOFDMCHDAC09;
    edtOFDMCHDAC[10] = edtOFDMCHDAC0A;
    edtOFDMCHDAC[11] = edtOFDMCHDAC0B;
    edtOFDMCHDAC[12] = edtOFDMCHDAC0C;
    edtOFDMCHDAC[13] = edtOFDMCHDAC0D;

    Init();
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//---------------------------------------------------------------------------
void TfrmWiFiTxProfile::Init( void )
{
     m_bInit          = true;
}

//------------------------------------------------------------------------------
void  TfrmWiFiTxProfile::ReDrawFields( void )
{
    int  i;
    char str[256];


    if( 0 == btnTxPowerDac->Tag ) // Dec
    {
        btnTxPowerDac->Caption = "TX Power DAC (Dec)";

        for(i=0; i<NUM_TX_POWER_2400M_CH; i++)
        {
            edtCCKCHDAC[i]->Text  = IntToStr( m_sTxPwr2400M.CCKTxPWR[i] );
            edtOFDMCHDAC[i]->Text = IntToStr( m_sTxPwr2400M.OFDMTxPWR[i] );
        }
    }
    else
    {
        btnTxPowerDac->Caption = "TX Power DAC (Hex)";

        for(i=0; i<NUM_TX_POWER_2400M_CH; i++)
        {
            sprintf( str, "%X", m_sTxPwr2400M.CCKTxPWR[i] );
            edtCCKCHDAC[i]->Text = str;
            sprintf( str, "%X", m_sTxPwr2400M.OFDMTxPWR[i] );
            edtOFDMCHDAC[i]->Text = str;
        }
    }
}

//---------------------------------------------------------------------------
bool  TfrmWiFiTxProfile::CheckFields( void )
{
    int  i;
    unsigned short  usdata[NUM_TX_POWER_2400M_CH];

    AnsiString  text;

    for(i=0; i<NUM_TX_POWER_2400M_CH; i++)
    {
       // text = edtCHDAC[i]->Text;  if( !IsValidWiFiTxPowerDac( text, usdata[i] ) )         {  edtCHDACCheck(edtCHDAC[i]);   return(false);   }
    }

    return true;
}

//---------------------------------------------------------------------------
void  TfrmWiFiTxProfile::CurrentPageReset( void )
{
    btnUploadFromFlash->Enabled = true;
    btnDownloadToFlash->Enabled = true;
    btnChangeDB->Enabled = true;
    btnLoadFromFile->Enabled = true;
    btnSaveToFile->Enabled = true;
    btnLoadFromEEPROM->Enabled = true;
}

//---------------------------------------------------------------------------
void  TfrmWiFiTxProfile::CurrentPageLock( void )
{
    btnUploadFromFlash->Enabled = false;
    btnDownloadToFlash->Enabled = false;
    btnChangeDB->Enabled = false;
    btnLoadFromFile->Enabled = false;
    btnSaveToFile->Enabled = false;
    btnLoadFromEEPROM->Enabled = false;
}

//--------------------------------------------------------------------------
void  TfrmWiFiTxProfile::ShowHintLabel( TControl *sender, char* hint )
{
   TPoint pt0 = this->ClientOrigin;
   TPoint pt1 = sender->ClientOrigin;
   lblHint->Left = (pt1.x-pt0.x);
   lblHint->Top  = (pt1.y-pt0.y)+sender->Height+3;
   lblHint->Caption = hint;
   lblHint->Visible = true;
   HintTimer->Enabled = true;
}

//---------------------------------------------------------------------------
void __fastcall TfrmWiFiTxProfile::btnUploadFromFlashClick(TObject *Sender)
{
    if( ! NVRAMMan->Get_IsInit() )
    {   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;
        }
        //stNVRAMDB->Caption = frmMainSel->Get_NVRAMDBFileName();
    }

    m_WIFI_TXP_Obj.ConfirmCallback = ::CNF_ReadTxPower2400MFromNVRAM;
    m_WIFI_TXP_Obj.REQ_Read_TxPower2400M_From_NVRAM_Start( );

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

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

    switch( state )
    {
        case METAAPP_SUCCESS:
        {
            m_sTxPwr2400M = m_WIFI_TXP_Obj.Get_TxChannelDac2400M();

            ReDrawFields();
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Upload WiFi TX power setting from flash successfully";
        }
        break;

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

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

        case METAAPP_STOP:
        {
            sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Upload WiFi TX power setting from flash stop";
            Application->MessageBox( "Execution Timeout : Upload WiFi TX power from flash", "STOP", MB_OK );
        }
        break;
    }
    CurrentPageReset();
}

//---------------------------------------------------------------------------
void  TfrmWiFiTxProfile::UploadTxPower5000MFromFlashDone( void )
{
    E_METAAPP_RESULT_T state = m_WIFI_TXP_Obj.Get_ConfirmState();
    char  str[20];
    float  fdata;



    switch( state )
    {
        case METAAPP_SUCCESS:
        {
             m_sTxPwr5000M = m_WIFI_TXP_Obj.Get_TxChannelDac5000M();
             ReDrawFields();
             sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Upload WiFi TX power setting from flash successful";
        }
        break;

        case METAAPP_FAIL:
        {
             sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Upload WiFi TX power setting fail, please check the version of load and NVRAM database are same.";
             Application->MessageBox( "Execution Failure : Upload WiFi TX power setting, 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) "  Upload WiFi TX power setting timeout";
            Application->MessageBox( "Execution Timeout : Upload WiFi TX power setting", "TIMEOUT", MB_OK );
            CurrentPageReset();
        }
        break;

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

}


//---------------------------------------------------------------------------
void __fastcall TfrmWiFiTxProfile::HintTimerTimer(TObject *Sender)
{
    HintTimer->Enabled = false;
    lblHint->Visible = false;
}

//---------------------------------------------------------------------------
void  TfrmWiFiTxProfile::WIFI_APC_Obj( CWIFIAPC  *wifi_apc_obj )
{
    //m_pWIFI_APC_2400M_Obj = wifi_apc_2400m_obj;
}

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

    ok = SaveDialog->Execute();
    if( !ok )
    {
        sbWiFiTXP->Panels->Items[0]->Text = (AnsiString) "  Save WiFi TX setting to file fail";
        return;
    }

⌨️ 快捷键说明

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