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

📄 form_wifialc2400m.cpp

📁 MTK 手机软件开发 META 源代码,开发环境: C++ Builder
💻 CPP
📖 第 1 页 / 共 3 页
字号:
   lblHint->Caption = hint;
   lblHint->Visible = true;
   HintTimer->Enabled = true;
}

//---------------------------------------------------------------------------
void __fastcall TfrmWiFiALC2400M::edtTxAlcCCKCheck(TObject *Sender)
{
    unsigned char  uc_data;
    AnsiString  text;
    TEdit *edit = (TEdit*)Sender;
    char  hint[] = " value shall be 0~255 ";

    text = edit->Text;
    if (!IsValidWiFiTxAlcCCK(text, uc_data))
    {
        ShowHintLabel(edit, hint);
        edit->SetFocus();
        return;
    }

    m_sWiFiAlcPower2400M.txAlcCCK[edit->Tag] = uc_data;
}

//---------------------------------------------------------------------------
void __fastcall TfrmWiFiALC2400M::edtTxOutputPowerDbCCKCheck(
      TObject *Sender)
{
    unsigned char  uc_data;
    AnsiString  text;
    TEdit *edit = (TEdit*)Sender;
    char  hint[] = " value shall be 0~255 ";

    text = edit->Text;
    if (!IsValidWiFiTxOutputPowerDbCCK(text, uc_data))
    {
        ShowHintLabel(edit, hint);
        edit->SetFocus();
        return;
    }

    m_sWiFiAlcPower2400M.txOutputPowerDBCCK[edit->Tag] = uc_data;
}

//---------------------------------------------------------------------------
void __fastcall TfrmWiFiALC2400M::edtTxAlcOFDMCheck(TObject *Sender)
{
    unsigned char  uc_data;
    AnsiString  text;
    TEdit *edit = (TEdit*)Sender;
    char  hint[] = " value shall be 0~255 ";

    text = edit->Text;
    if (!IsValidWiFiTxAlcOFDM(text, uc_data))
    {
        ShowHintLabel(edit, hint);
        edit->SetFocus();
        return;
    }

    m_sWiFiAlcPower2400M.txAlcOFDM[m_pnlOFDMTxRate->Tag][edit->Tag] = uc_data;
}

//---------------------------------------------------------------------------
void __fastcall TfrmWiFiALC2400M::edtTxOutputPowerDbOFDMCheck(
      TObject *Sender)
{
    unsigned char  uc_data;
    AnsiString  text;
    TEdit *edit = (TEdit*)Sender;
    char  hint[] = " value shall be 0~255 ";

    text = edit->Text;
    if (!IsValidWiFiTxOutputPowerDbOFDM(text, uc_data))
    {
        ShowHintLabel(edit, hint);
        edit->SetFocus();
        return;
    }

    m_sWiFiAlcPower2400M.txOutputPowerDBOFDM[m_pnlOFDMTxRate->Tag][edit->Tag] = uc_data;
}


//---------------------------------------------------------------------------
void __fastcall TfrmWiFiALC2400M::btnOFDMTxRateClick(TObject *Sender)
{
    TButton *btn = (TButton *) Sender;
    m_pnlOFDMTxRate->Tag = btn->Tag;
    m_pnlOFDMTxRate->Caption = "TX Rate " + IntToStr(btn->Tag);
    for (int i=0; i<WIFI_ALC_2400M_TX_RATE_NUM; i++)
    {
        if (i != btn->Tag )
        {
            m_edtOFDMTxAlcOffset[i]->Visible = true;
            m_edtOFDMTxOutputPowerOffset[i]->Visible = true;
        }
        else
        {
            m_edtOFDMTxAlcOffset[i]->Visible = false;
            m_edtOFDMTxOutputPowerOffset[i]->Visible = false;
        }
    }
    ReDrawFields(DRAW_MASK_WIFI_ALC2400M_OFDM_ALC | DRAW_MASK_WIFI_ALC2400M_OFDM_POWER);
}

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

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

    m_cWIFI_ALC_Obj.ConfirmCallback = ::CNF_ReadAlc2400MFromNVRAM;
    m_cWIFI_ALC_Obj.REQ_Read_From_NVRAM_Start( );

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

//-----------------------------------------
void TfrmWiFiALC2400M::UploadAlc2400MFromFlashDone(void)
{
    E_METAAPP_RESULT_T state = m_cWIFI_ALC_Obj.Get_ConfirmState();

    switch( state )
    {
        case METAAPP_SUCCESS:
        {
            WiFi_ALC_2400M_S* p_alc_power = m_cWIFI_ALC_Obj.Get_AlcPower2400M();
            m_sWiFiAlcPower2400M = *p_alc_power;
            WiFi_TxALC_2400M_S* p_alc_slope = m_cWIFI_ALC_Obj.Get_AlcSlope2400M();
            m_sWiFiAlcSlope2400M = *p_alc_slope;

            ReDrawFields(DRAW_MASK_WIFI_ALC2400M_CCK_ALC     |
                         DRAW_MASK_WIFI_ALC2400M_CCK_POWER   |
                         DRAW_MASK_WIFI_ALC2400M_OFDM_ALC    |
                         DRAW_MASK_WIFI_ALC2400M_OFDM_POWER  |
                         DRAW_MASK_WIFI_ALC2400M_SLOPE);
            m_sbALC->Panels->Items[0]->Text = (AnsiString) "  Upload WiFi ALC setting from flash successfully";
        }
        break;

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

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

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

        default:
        {
        }
        break;
    }
    CurrentPageReset();
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void __fastcall TfrmWiFiALC2400M::btnDownloadToFlashClick(TObject *Sender)
{
    if (!CheckFields(CHECK_MASK_WIFI_ALC2400M_CCK_ALC    |
                     CHECK_MASK_WIFI_ALC2400M_CCK_POWER  |
                     CHECK_MASK_WIFI_ALC2400M_OFDM_ALC   |
                     CHECK_MASK_WIFI_ALC2400M_OFDM_POWER |
                     CHECK_MASK_WIFI_ALC2400M_SLOPE
                    )
       )
    {
        return;
    }
                         
    if (!NVRAMMan->Get_IsInit())
    {
        frmMainSel->mnuFDMDatabaseClick(Sender);
    }

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


    m_cWIFI_ALC_Obj.Set_AlcPower2400M(m_sWiFiAlcPower2400M);
    m_cWIFI_ALC_Obj.Set_AlcSlope2400M(m_sWiFiAlcSlope2400M);
    
    m_cWIFI_ALC_Obj.ConfirmCallback = ::CNF_WriteAlc2400MToNVRAM;
    m_cWIFI_ALC_Obj.REQ_Write_To_NVRAM_Start();

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

//---------------------------------------------------------------------------
void TfrmWiFiALC2400M::DownloadAlc2400MToFlashDone(void)
{
    E_METAAPP_RESULT_T state = m_cWIFI_ALC_Obj.Get_ConfirmState();

    switch (state)
    {
        case METAAPP_SUCCESS:
        {
            m_sbALC->Panels->Items[0]->Text = (AnsiString) "  Download WiFi ALC setting to flash successfully";
        }
        break;

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

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

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

        default:
        {
        }
        break;
    }
    CurrentPageReset();
}

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

    ok = OpenDialog->Execute();
    if (!ok)
    {
        m_sbALC->Panels->Items[0]->Text = (AnsiString) "  Load WiFi ALC setting from file fail";
        return;
    }
    strcpy(str, OpenDialog->FileName.c_str());

    ok = m_cWIFI_ALC_Obj.REQ_Read_From_File(str);
    if (!ok)
    {
        m_sbALC->Panels->Items[0]->Text = (AnsiString) "  Load WiFi ALC setting from file fail";
        Application->MessageBox( "Execution Failure : Load WiFi ALC setting from file", "FAILURE", MB_OK );
        return;
    }

    WiFi_ALC_2400M_S* p_alc_power = m_cWIFI_ALC_Obj.Get_AlcPower2400M();
    m_sWiFiAlcPower2400M = *p_alc_power;
    WiFi_TxALC_2400M_S* p_alc_slope = m_cWIFI_ALC_Obj.Get_AlcSlope2400M();
    m_sWiFiAlcSlope2400M = *p_alc_slope;

    ReDrawFields(DRAW_MASK_WIFI_ALC2400M_CCK_ALC     |
                 DRAW_MASK_WIFI_ALC2400M_CCK_POWER   |
                 DRAW_MASK_WIFI_ALC2400M_OFDM_ALC    |
                 DRAW_MASK_WIFI_ALC2400M_OFDM_POWER  |
                 DRAW_MASK_WIFI_ALC2400M_SLOPE);
                 
    m_sbALC->Panels->Items[0]->Text = (AnsiString) "  Load WiFi ALC setting from file successfully";
}

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

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

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

    m_cWIFI_ALC_Obj.Set_AlcPower2400M(m_sWiFiAlcPower2400M);
    m_cWIFI_ALC_Obj.Set_AlcSlope2400M(m_sWiFiAlcSlope2400M);

    ok = m_cWIFI_ALC_Obj.REQ_Write_To_File(str);
    if (!ok)
    {
        m_sbALC->Panels->Items[0]->Text = (AnsiString) "  Save WiFi ALC setting to file fail";
        Application->MessageBox( "Execution Failure : Save WiFi ALC setting to file", "FAILURE", MB_OK );
        return;
    }

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



void __fastcall TfrmWiFiALC2400M::m_btnApplyClick(TObject *Sender)
{
    // CCK
    for (int i=0; i<WIFI_ALC_2400M_TX_RATE_NUM; i++)
    {
        if (i != m_pnlOFDMTxRate->Tag)

⌨️ 快捷键说明

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