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

📄 form_fm.cpp

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

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void __fastcall TfrmFM::m_btnSearchPreStationClick(TObject *Sender)
{
    S_FM_SEARCH_STATION_T search_station;
    short freq;
    search_station.s_if_cnt_delta.m_u4IfCntDelta = m_cbIfCounterDelta->Text.ToInt();
    search_station.s_rssi_thrsh.m_u4RssiThreshold = m_cbRssiThreshold->ItemIndex + 1;
    AnsiString_To_FM_Freq(m_edtStation->Text, freq);
    search_station.s_freq_range.m_i2StartFreq = freq - 1;
    search_station.s_freq_range.m_i2StopFreq  = FM_MIN_FREQ * FM_FREQ_SCALE;

    m_cFM_RADIO_Obj.ConfirmCallback = ::CNF_FM_SearchNextStation;
    m_cFM_RADIO_Obj.REQ_SearchFreq_Start(search_station);
    m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Search previous station progressing";
    CurrentPageLock();
}

//---------------------------------------------------------------------------
void TfrmFM::CNF_FM_SearchPreStation(void)
{
    E_METAAPP_RESULT_T state = m_cFM_RADIO_Obj.Get_ConfirmState();

    switch (state)
    {
        case METAAPP_SUCCESS:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Search previous station successfully";
        }
        break;

        case METAAPP_FAIL:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Search previous station fail";
            Application->MessageBox("Execution Failure : Search previous station", "FAILURE", MB_OK );
        }
        break;

        case METAAPP_TIMEOUT:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Search previous station timeout";
            Application->MessageBox("Execution Timeout : Search previous station", "TIMEOUT", MB_OK );
        }
        break;

        case METAAPP_STOP:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Search previous station stop";
        }
        break;

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

//===========================================================================
void __fastcall TfrmFM::m_btnSetAudioClick(TObject *Sender)
{
    S_FM_AUDIO_T audio;

    audio.s_mono_stereo_blend.m_u2MonoOrStereo = m_cbMode->ItemIndex;  // 0: mono, 1: stereo
    audio.s_mono_stereo_blend.m_u2SblendOnOrOff = m_cbStereoBlend->Checked && m_cbStereoBlend->Enabled;
    audio.s_soft_mute_onoff.m_bOnOff = m_cbSoftMute->Checked;
    //audio.s_soft_mute_level.m_ucStage = m_cbSoftMuteLevel->ItemIndex + 1;
    audio.s_stereo_blend_level.m_ucStage = m_cbStereoBlendLevel->ItemIndex + 1;

    m_cFM_RADIO_Obj.ConfirmCallback = ::CNF_FM_SetAudio;
    m_cFM_RADIO_Obj.REQ_SetAudio_Start(audio);

    m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Set audio parameter progressing";
    CurrentPageLock();
}

//---------------------------------------------------------------------------
void TfrmFM::CNF_FM_SetAudio(void)
{
    E_METAAPP_RESULT_T state = m_cFM_RADIO_Obj.Get_ConfirmState();

    switch (state)
    {
        case METAAPP_SUCCESS:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Set audio parameter successfully";
        }
        break;

        case METAAPP_FAIL:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Set audio parameter fail";
            Application->MessageBox("Execution Failure : Set audio parameter", "FAILURE", MB_OK );
        }
        break;

        case METAAPP_TIMEOUT:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Set audio parameter timeout";
            Application->MessageBox("Execution Timeout : Set audio parameter", "TIMEOUT", MB_OK );
        }
        break;

        case METAAPP_STOP:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Set audio parameter stop";
        }
        break;

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

//===========================================================================
void __fastcall TfrmFM::m_btnReadClick(TObject *Sender)
{
    m_cFM_RADIO_Obj.ConfirmCallback = ::CNF_FM_ReadData;
    m_cFM_RADIO_Obj.REQ_ReadData_Start(m_edtAddr->Text.ToInt());
    m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Read data progressing";
    CurrentPageLock();
}

//---------------------------------------------------------------------------
void TfrmFM::CNF_FM_ReadData(void)
{
    E_METAAPP_RESULT_T state = m_cFM_RADIO_Obj.Get_ConfirmState();

    switch (state)
    {
        case METAAPP_SUCCESS:
        {
            m_usData = m_cFM_RADIO_Obj.Get_Data();
            ReDrawFields(DRAW_FM_REGISTER);
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Read data successfully";
        }
        break;

        case METAAPP_FAIL:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Read data fail";
            Application->MessageBox("Execution Failure : Read data", "FAILURE", MB_OK );
        }
        break;

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

        case METAAPP_STOP:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Read data stop";
        }
        break;

        default:
        {
        }
        break;
    }

    CurrentPageReset();
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void __fastcall TfrmFM::m_btnWriteClick(TObject *Sender)
{
    unsigned short data;
    unsigned short word1;
    unsigned short word0;
    word1 = m_edtWord1->Text.ToInt() & 0x00FF;
    word0 = m_edtWord0->Text.ToInt() & 0x00FF;
    data  = (word1 << 8) | word0;
    m_cFM_RADIO_Obj.ConfirmCallback = ::CNF_FM_WriteData;
    m_cFM_RADIO_Obj.REQ_WriteData_Start(m_edtAddr->Text.ToInt(), data);
    m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Write data progressing";
    CurrentPageLock();
}

//---------------------------------------------------------------------------
void TfrmFM::CNF_FM_WriteData(void)
{
    E_METAAPP_RESULT_T state = m_cFM_RADIO_Obj.Get_ConfirmState();

    switch (state)
    {
        case METAAPP_SUCCESS:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Write data successfully";
        }
        break;

        case METAAPP_FAIL:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Write data fail";
            Application->MessageBox("Execution Failure : Write data", "FAILURE", MB_OK );
        }
        break;

        case METAAPP_TIMEOUT:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Write data timeout";
            Application->MessageBox("Execution Timeout : Write data", "TIMEOUT", MB_OK );
        }
        break;

        case METAAPP_STOP:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Write data stop";
        }
        break;

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

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

//---------------------------------------------------------------------------
void __fastcall TfrmFM::m_btnGetClick(TObject *Sender)
{
    m_cFM_RADIO_Obj.ConfirmCallback = ::CNF_FM_GetStatus;
    m_cFM_RADIO_Obj.REQ_Get_FM_Status_Start();
    m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Get FM status progressing";
    CurrentPageLock();
}

//---------------------------------------------------------------------------
void TfrmFM::CNF_FM_GetStatus(void)
{
    E_METAAPP_RESULT_T state = m_cFM_RADIO_Obj.Get_ConfirmState();

    switch (state)
    {
        case METAAPP_SUCCESS:
        {
            S_FM_STATUS_T* p_fm_status = m_cFM_RADIO_Obj.Get_FMStatus();
            m_sStatus = *p_fm_status;
            ReDrawFields(DRAW_FM_STATUS);
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Get FM status successfully";
        }
        break;

        case METAAPP_FAIL:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Get FM status fail";
            Application->MessageBox("Execution Failure : Get FM status", "FAILURE", MB_OK );
        }
        break;

        case METAAPP_TIMEOUT:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Get FM status timeout";
            Application->MessageBox("Execution Timeout : Get FM status", "TIMEOUT", MB_OK );
        }
        break;

        case METAAPP_STOP:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Get FM status stop";
        }
        break;

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


void __fastcall TfrmFM::m_btnResetClick(TObject *Sender)
{
    m_cFM_RADIO_Obj.ConfirmCallback = ::CNF_FM_PowerOff;
    m_cFM_RADIO_Obj.REQ_FM_Power_Off_Start();

    m_sbFM->Panels->Items[0]->Text = (AnsiString)"  Reset progressing";
    CurrentPageLock();
}

//---------------------------------------------------------------------------
void TfrmFM::CNF_FM_PowerOff(void)
{
    E_METAAPP_RESULT_T state = m_cFM_RADIO_Obj.Get_ConfirmState();

    switch (state)
    {
        case METAAPP_SUCCESS:
        {
            m_cFM_RADIO_Obj.ConfirmCallback = ::CNF_FM_PowerReset;
            m_cFM_RADIO_Obj.REQ_FM_Power_On_Start();
        }
        break;

        case METAAPP_FAIL:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  FM module radio power on fail";
            Application->MessageBox("Execution Failure : FM radio module power on", "FAILURE", MB_OK );
        }
        break;

        case METAAPP_TIMEOUT:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  FM radio module power on timeout";
            Application->MessageBox("Execution Timeout : FM radio module power on", "TIMEOUT", MB_OK );
        }
        break;

        case METAAPP_STOP:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  FM radio module power on stop";
        }
        break;

        default:
        {
        }
        break;
    }
}

//-------------------------------------------------------------------------
void TfrmFM::CNF_FM_PowerReset(void)
{
    E_METAAPP_RESULT_T state = m_cFM_RADIO_Obj.Get_ConfirmState();

    switch (state)
    {
        case METAAPP_SUCCESS:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  FM radio module power reset successfully";
        }
        break;

        case METAAPP_FAIL:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  FM radio module power on fail";
            Application->MessageBox("Execution Failure : FM radio module power on", "FAILURE", MB_OK );
        }
        break;

        case METAAPP_TIMEOUT:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  FM radio module power on timeout";
            Application->MessageBox("Execution Timeout : FM radio module power on", "TIMEOUT", MB_OK );
        }
        break;

        case METAAPP_STOP:
        {
            m_sbFM->Panels->Items[0]->Text = (AnsiString)"  FM radio module power on stop";
        }
        break;

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

//---------------------------------------------------------------------------
void __fastcall TfrmFM::m_cbModeChange(TObject *Sender)
{
    m_cbStereoBlend->Enabled = (FM_MODE_IDX_STEREO == (E_FM_MODE_IDX) m_cbMode->ItemIndex) ? true : false;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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