📄 form_fm.cpp
字号:
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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 + -