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

📄 form_wifimcr.cpp

📁 MTK 手机软件开发 META 源代码,开发环境: C++ Builder
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        Application->MessageBox( "Execution Failure : Load MAC control register setting from file", "FAILURE", MB_OK );
        return;
    }
    strcpy( str, OpenDialog->FileName.c_str() );

    ok = m_WIFI_MAC_Obj.REQ_Read_From_File( str, m_sWiFiCap.host_interface );

    if( !ok )
    {
        sbWiFiMCR->Panels->Items[0]->Text = (AnsiString) "  Load MAC control register setting from file fail";
        Application->MessageBox( "Execution Failure : Load MAC control register setting from file", "FAILURE", MB_OK );
        return;
    }

    for(int i=0; i<WIFI_MCR_TYPE_NUM; i++ )
    {
        for(int j=0; j<WIFI_MCR_MAX_NUM; j++ )
        {
            m_sMCR_Setting[i][j].value = m_WIFI_MAC_Obj.Get_MCR_Setting_Value( i, j );
        }
    }

    if( WNDRV_HOST_INTERFACE_HPI == m_sWiFiCap.host_interface )
    {
        for(int i=0; i<WIFI_MCR16_TYPE_NUM; i++ )
        {
            for(int j=0; j<WIFI_MCR16_MAX_NUM; j++ )
            {
                m_sMCR16_Setting[i][j].value = m_WIFI_MAC_Obj.Get_MCR16_Setting_Value( i, j );
            }
        }
    }
    
    ReDrawFields( DRAW_MCR_COMMON | DRAW_MCR_HIF );
    sbWiFiMCR->Panels->Items[0]->Text = (AnsiString) "  Load MAC control register setting from file successfully";

}

//---------------------------------------------------------------------------
void __fastcall TfrmWiFiMCR::btnWriteToRegisterClick(TObject *Sender)
{
    if( ! CheckFields() )
    {
        sbWiFiMCR->Panels->Items[0]->Text = (AnsiString) "  Write MAC register fail";
        Application->MessageBox( "Execution Failure : Write MAC register", "FAILURE", MB_OK );
        return;
    }

    Compose_MCR_Parameter();
    Compose_MCR_Data();
    CurrentPageLock();
    m_WIFI_MAC_Obj.ConfirmCallback  = ::ConfirmCallback_WriteReg;
    m_WIFI_MAC_Obj.REQ_Write_MCR_Setting_To_Reg_Start( m_sMCR );
    sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Write MAC register progressing";
}

//---------------------------------------------------------------------------
void TfrmWiFiMCR::ConfirmCallback_WriteReg( void )
{
    int state = m_WIFI_MAC_Obj.Get_ConfirmState();

    switch( state )
    {
        case STATE_MAC_OK:
        {
            m_iCount = 0;
            switch( m_sWiFiCap.host_interface )
            {
                case WNDRV_HOST_INTERFACE_SDIO:
                {
                    Compose_SDIO_Parameter( WIFI_HIF_SDIO_SPECIFIC );
                    Compose_SDIO_Data( WIFI_HIF_SDIO_SPECIFIC );
                    m_WIFI_MAC_Obj.ConfirmCallback  = ::ConfirmCallback_WriteHIF;
                    m_WIFI_MAC_Obj.REQ_Write_MCR_Setting_To_Reg_Start( m_sMCR );
                }
                break;

	        case WNDRV_HOST_INTERFACE_HPI:
                {
                    Compose_HPI_Parameter( WIFI_HIF_HPI_SPECIFIC );
                    Compose_HPI_Data( WIFI_HIF_HPI_SPECIFIC );
                    m_WIFI_MAC_Obj.ConfirmCallback  = ::ConfirmCallback_WriteHIF;
                    m_WIFI_MAC_Obj.REQ_Write_MCR16_Setting_To_Reg_Start( m_sMCR16 );
                }
                break;

	        case WNDRV_HOST_INTERFACE_SPI:
                {
                    Compose_SPI_Parameter( WIFI_HIF_SPI_SPECIFIC );
                    Compose_SPI_Data( WIFI_HIF_SPI_SPECIFIC );
                    m_WIFI_MAC_Obj.ConfirmCallback  = ::ConfirmCallback_WriteHIF;
                    m_WIFI_MAC_Obj.REQ_Write_MCR_Setting_To_Reg_Start( m_sMCR );
                }
                break;

                default:
                    sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Write MAC register successfully";
                break;
            }

        }
        break;

        case STATE_MAC_FAIL:
        {
            sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Write MAC register fail";
            Application->MessageBox( "Execution Timeout : Write MAC register", "FAIL", MB_OK );
            CurrentPageReset();
        }
        break;

        case STATE_MAC_TIMEOUT:
        {
            sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Write MAC register timeout";
            Application->MessageBox( "Execution Timeout : Write MAC register", "TIMEOUT", MB_OK );
            CurrentPageReset();
        }
        break;

        case STATE_MAC_STOP:
        {
            sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Write MAC register stop";
            CurrentPageReset();
        }
        break;
    }

}


//---------------------------------------------------------------------------
void TfrmWiFiMCR::ConfirmCallback_WriteHIF( void )
{
    int state = m_WIFI_MAC_Obj.Get_ConfirmState();

    switch( state )
    {
        case STATE_MAC_OK:
        {
            m_iCount++;

            switch( m_sWiFiCap.host_interface )
            {
                case WNDRV_HOST_INTERFACE_SDIO:
                {
                    if( WIFI_HIF_SDIO_PORT4 >= m_iCount )
                    {
                        Compose_SDIO_Parameter( (E_WIFI_HIF_SDIO) m_iCount );
                        Compose_SDIO_Data( (E_WIFI_HIF_SDIO) m_iCount );
                        m_WIFI_MAC_Obj.ConfirmCallback  = ::ConfirmCallback_WriteHIF;
                        m_WIFI_MAC_Obj.REQ_Write_MCR_Setting_To_Reg_Start( m_sMCR );
                    }
                    else
                    {
                        sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Write MAC register successfully";
                    }
                }
                break;

                case WNDRV_HOST_INTERFACE_HPI:
                {
                    if( WIFI_HIF_HPI_PORT == m_iCount )
                    {
                        Compose_HPI_Parameter( WIFI_HIF_HPI_PORT );
                        Compose_HPI_Data( WIFI_HIF_HPI_PORT );
                        m_WIFI_MAC_Obj.ConfirmCallback  = ::ConfirmCallback_WriteHIF;
                        m_WIFI_MAC_Obj.REQ_Write_MCR16_Setting_To_Reg_Start( m_sMCR16 );
                     }
                     else
                     {
                         sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Write MAC register successfully";
                         CurrentPageReset();
                     }
                }
                break;

                case WNDRV_HOST_INTERFACE_SPI:
                {
                    if( WIFI_HIF_SPI_PORT3 >= m_iCount )
                    {
                        Compose_SPI_Parameter( (E_WIFI_HIF_SPI) m_iCount );
                        Compose_SPI_Data( (E_WIFI_HIF_SPI) m_iCount );
                        m_WIFI_MAC_Obj.ConfirmCallback  = ::ConfirmCallback_WriteHIF;
                        m_WIFI_MAC_Obj.REQ_Write_MCR_Setting_To_Reg_Start( m_sMCR );
                    }
                    else
                    {
                        sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Write MAC register successfully";
                    }
                }
                break;
            }
        }
        break;

        case STATE_MAC_FAIL:
        {
            sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Write MAC register fail";
            Application->MessageBox( "Execution Timeout : Write MAC register", "FAIL", MB_OK );
            CurrentPageReset();
        }
        break;

        case STATE_MAC_TIMEOUT:
        {
            sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Write MAC register timeout";
            Application->MessageBox( "Execution Timeout : Write MAC register", "TIMEOUT", MB_OK );
            CurrentPageReset();
        }
        break;

        case STATE_MAC_STOP:
        {
            sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Write MAC register stop";
            CurrentPageReset();
        }
        break;
    }

}


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void __fastcall TfrmWiFiMCR::btnReadFromRegisterClick(TObject *Sender)
{
    CurrentPageLock();
    Compose_MCR_Parameter();
    Compose_MCR_Data();
    m_WIFI_MAC_Obj.ConfirmCallback  = ::ConfirmCallback_ReadReg;
    m_WIFI_MAC_Obj.REQ_Read_MCR_Setting_From_Reg_Start( m_sMCR );
    sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Read MAC register successfully";
}

//---------------------------------------------------------------------------
void TfrmWiFiMCR::ConfirmCallback_ReadReg( void )
{
    int state = m_WIFI_MAC_Obj.Get_ConfirmState();

    switch( state )
    {
        case STATE_MAC_OK:
        {
            m_sMCR = m_WIFI_MAC_Obj.Get_MCR();
            DeCompose_MCR_Data();
            ReDrawFields( DRAW_MCR_COMMON );

            switch( m_sWiFiCap.host_interface )
            {
                case WNDRV_HOST_INTERFACE_SDIO:
                {
                    Compose_SDIO_Parameter( WIFI_HIF_SDIO_SPECIFIC );
                    m_WIFI_MAC_Obj.ConfirmCallback  = ::ConfirmCallback_ReadHIF;
                    m_WIFI_MAC_Obj.REQ_Read_MCR_Setting_From_Reg_Start( m_sMCR );
                }
                break;

	        case WNDRV_HOST_INTERFACE_HPI:
                {
                    Compose_HPI_Parameter( WIFI_HIF_HPI_SPECIFIC );
                    m_WIFI_MAC_Obj.ConfirmCallback  = ::ConfirmCallback_ReadHIF;
                    m_WIFI_MAC_Obj.REQ_Read_MCR16_Setting_From_Reg_Start( m_sMCR16 );
                }
                break;

	        case WNDRV_HOST_INTERFACE_SPI:
                {
                    Compose_SPI_Parameter( WIFI_HIF_SPI_SPECIFIC );
                    m_WIFI_MAC_Obj.ConfirmCallback  = ::ConfirmCallback_ReadHIF;
                    m_WIFI_MAC_Obj.REQ_Read_MCR_Setting_From_Reg_Start( m_sMCR );
                }
                break;

                default:
                    sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Read MAC register successfully";
                break;
            }

        }
        break;

        case STATE_MAC_FAIL:
        {
            sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Read MAC register fail";
            Application->MessageBox( "Execution Timeout : Read MAC register", "FAIL", MB_OK );
        }
        break;

        case STATE_MAC_TIMEOUT:
        {
            sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Read MAC register timeout";
            Application->MessageBox( "Execution Timeout : Read MAC register", "TIMEOUT", MB_OK );
        }
        break;

        case STATE_MAC_STOP:
            sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Read MAC register stop";
        break;
    }
    CurrentPageReset();
}

//---------------------------------------------------------------------------
void TfrmWiFiMCR::ConfirmCallback_ReadHIF( void )
{
    int state = m_WIFI_MAC_Obj.Get_ConfirmState();

    switch( state )
    {
        case STATE_MAC_OK:
        {
            m_iCount++;

            switch( m_sWiFiCap.host_interface )
            {
                case WNDRV_HOST_INTERFACE_SDIO:
                {
                    if( WIFI_HIF_SDIO_PORT4 >= m_iCount )
                    {
                        Compose_SDIO_Parameter( (E_WIFI_HIF_SDIO) m_iCount );
                        m_WIFI_MAC_Obj.ConfirmCallback  = ::ConfirmCallback_WriteHIF;
                        m_WIFI_MAC_Obj.REQ_Write_MCR_Setting_To_Reg_Start( m_sMCR );
                    }
                    else
                    {
                        ReDrawFields( DRAW_MCR_HIF );
                        sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  Read MAC register successfully";
                        CurrentPageReset();
                    }
                }
                break;

                case WNDRV_HOST_INTERFACE_HPI:
                {
                    if( WIFI_HIF_HPI_PORT == m_iCount )
                    {
                        Compose_HPI_Parameter( WIFI_HIF_HPI_PORT );
                        Compose_HPI_Data( WIFI_HIF_HPI_PORT );
                        m_WIFI_MAC_Obj.ConfirmCallback  = ::ConfirmCallback_WriteHIF;
                        m_WIFI_MAC_Obj.REQ_Write_MCR16_Setting_To_Reg_Start( m_sMCR16 );
                     }
                     else
                     {
                         ReDrawFields( DRAW_MCR_HIF );
                         sbWiFiMCR->Panels->Items[0]->Text = (AnsiString)"  

⌨️ 快捷键说明

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