// --------------------------------------------------------------------------- // updates GUI data values // --------------------------------------------------------------------------- bool pnlRxLPF::UpdateGUI() { int itmp; bool bRez = true; int iDC_REGVAL; int iDC_LOCK; int iDC_CLBR_DONE; int iDC_UD; LMLL_RxLPFGetDCCalibrationData(iDC_REGVAL, iDC_LOCK, iDC_CLBR_DONE, iDC_UD); // DC_REGVAL[5:0] lbDC_REGVAL->SetLabel( wxString::Format("%i", iDC_REGVAL)); // DC_LOCK[2:0] lblDC_LOCK->SetLabel( wxString::Format("%i", iDC_LOCK)); // DC_CLBR_DONE if(iDC_CLBR_DONE) lblDC_CLBR_DONE->SetLabel("In Progress"); else lblDC_CLBR_DONE->SetLabel("Done"); // DC_UD if(iDC_UD) lblDC_UD->SetLabel("Up"); else lblDC_UD->SetLabel("Down"); // DC_CNTVAL[5:0] //cmbCalVal->SetSelection( LMLL_RxLPFGetCalVal(); cmbCalVal->SetSelection( iDC_REGVAL); // DC_START_CLBR // itmp = DC_START_CLBR_r03_b55(); // DC_LOAD // itmp = DC_LOAD_r03_b44(); // DC_SRESET // itmp = DC_SRESET_r03_b33(); // DC_ADDR[2:0] // itmp = DC_ADDR_r03_b20(); // if(itmp > 4) {itmp = 4; bRez = false;} cmbDCCalAddr->SetSelection( LMLL_RxLPFGetDCCalAddr()); // BWC_LPF[3:0] cmbLpfBw->SetSelection( LMLL_RxLPFGetLpfBw()); // EN chbPwrLpfMods->SetValue(LMLL_RxLPFGetPwrLpfMods()); // DECODE rgrDecode->SetSelection( LMLL_RxLPFGetDecode()); // BYP_EN_LPF rgrLpfByp->SetSelection( LMLL_RxLPFGetLpfByp()); // DCO_DACCAL_LPF[5:0] cmbDCOffset->SetSelection( LMLL_RxLPFGetDCOffset()); /* // TX_DACBUF_EN if (m_cMAddr == TxLpfAddr) { chbTX_DACBUF_EN->SetValue(LMLL_RxLPFGetTX_DACBUF_EN()); // chbTX_DACBUF_EN->SetValue(!chbTX_DACBUF_EN->Checked); }; */ // RCCAL_LPF[2:0] cmbRcCal->SetSelection( LMLL_RxLPFGetRcCal()); // PD_DCOCMP_LPF chbPwrDCCmpr->SetValue(LMLL_RxLPFGetPwrDCCmpr()); // chbPwrDCCmpr->SetValue(!chbPwrDCCmpr->Checked); // PD_DCODAC_LPF chbPwrDCDac->SetValue(LMLL_RxLPFGetPwrDCDac()); // chbPwrDCDac->SetValue(!chbPwrDCDac->Checked); // PD_DCOREF_LPF chbPwrDCRef->SetValue(LMLL_RxLPFGetPwrDCRef()); // chbPwrDCRef->SetValue(!chbPwrDCRef->Checked); // PD_FIL_LPF chbPwrLpf->SetValue(LMLL_RxLPFGetPwrLpf()); // chbPwrLpf->SetValue(!chbPwrLpf->Checked); if (m_frmADDC) m_frmADDC->UpdateGUI(); SetGuiDecode(); return bRez; };
bool FFTviewerFrame::SaveConfiguration() { char outbuf[80]; char newline[3]; memset(outbuf,0,sizeof(outbuf)); #define _N (sizeof(outbuf)-1) wxSprintf(newline,"\r\n"); if(g_CfgChanged) { g_CfgChanged = false; //Avoid repeated writes if(m_CFG_FileClassPtr == NULL) m_CFG_FileClassPtr = new wxFile(); m_CFG_FileClassPtr->Create(g_CfgFileName,TRUE,wxS_DEFAULT); if(!m_CFG_FileClassPtr->IsOpened()) { cout << "CFG File Open Fail" << endl; if(m_CFG_FileClassPtr != NULL) { m_CFG_FileClassPtr->Close(); delete m_CFG_FileClassPtr; m_CFG_FileClassPtr = NULL; } return(false); } wxSnprintf(outbuf,_N,"RASDRproc Version %s - NOTE: Limit to 80 column to avoid problems %s", AutoVersion::FULLVERSION_STRING,"..............................................................."); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%.12f // Center Frequency (GHz)",mSpectrum->m_RxFreq); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14g // Frequency Step",mSpectrum->m_frequencyStep); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // LPF Bandwidth (index)",LMLL_RxLPFGetLpfBw()); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // VGA1 Gain (index)",LMLL_RxFEGetRFB_TIA_RXFE()); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // VGA2 Gain (index)",LMLL_RxVGA2GetVga2G_u()); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // LNA Gain (index)",LMLL_RxFEGetG_LNA_RXFE()); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // Enable Averaging (0=no, 1=yes)",mSpectrum->chkAverage->GetValue()); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // Number of frames to average",mSpectrum->spinAvgCount->GetValue()); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // FFT log2(Samples/Frame) (N=2^integer; 10=1024, 11=2048, etc)",mSpectrum->spinFFTsamples->GetValue()); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // Sampling Frequency (MHz, integer, min=2, max=32)",mSpectrum->spinSamplingFreq->GetValue()); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // FFTOutput - Multiple Control (1=single 2=multiple suffixed)",g_NumbFFTFiles); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // FFTOutput - File Type Control (0=.csv for excel 1=General)",g_FFTFileType); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // FFTOutput - Time Standard Control (0=Local Time 1=UTC)",g_FFT_TimeStandard); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // FFTOutput - Number of Frames To Skip (integer)",g_FFTframeSkip); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // FFTOutput - Number of Frames to Write (integer)",g_FFTframesOut); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // PWROutput - Multiple Control (1=single 2=multiple suffixed)",g_NumbPWRFiles); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // PWROutput - File Type Control",g_PWRFileType); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // PWROutput - Time Standard Control (0=Local Time 1=UTC)",g_PWRTimeStandard); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // PWROutput - Recording Rate (seconds/sample)",g_PwrRecordRate); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // PWROutput - Plot Span (seconds)",g_PwrSpanSec); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // FFTOutput - Record Span (0=full range, 1=zoom/span)",g_FFTDataSource); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); /* m_CFG_FileClassPtr->Write(g_FFTfileName); m_CFG_FileClassPtr->Write(newline); */ wxSnprintf(outbuf,_N,"%-14d // Background Subtraction Code (bit encoded, try 71, bit0=en)",g_backgroundDebugCfg); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%.12f // Integration Gain",g_integrationGain); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%14.10f // DC Offset for I samples",(g_DcOffsetI == 0.0?g_avgI:g_DcOffsetI)); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%14.10f // DC Offset for Q samples",(g_DcOffsetQ == 0.0?g_avgQ:g_DcOffsetQ)); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // Unlimited Averaging (0=no, 1=yes)", g_UnlimitedAveraging); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); // RSS Integration wxSnprintf(outbuf,_N,"%-14s // RSS Server IP",g_RSS_IP); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14hu // RSS Server Port (default=8888)", g_RSS_Port); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // RSS Channels (range is 100 to 512 unless extensions enabled)", g_RSS_Channels); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // RSS Server Enabled (0=disabled, 1=enabled)", g_RSS_Enable?1:0); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); // RSS RASDR Extension wxSnprintf(outbuf,_N,"%14.10f // RSS Frequency Offset (GHz)",g_RSS_FrequencyOffset); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%-14d // RSS Extensions Enabled (0=disabled, 1=enabled)", g_RSS_Extension?1:0); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%14.10f // RSS Channel Offset Adjustment",g_RSS_Offset); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%14.10f // RSS Channel Gain Adjustment",g_RSS_Gain); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%14.10f // RSS Channel Bias Adjustment",g_RSS_Bias); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%14.9f // RSS Channel Minimum Output Value",g_RSS_MinValue); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); wxSnprintf(outbuf,_N,"%14.9f // RSS Channel Maximum Output Value",g_RSS_MaxValue); m_CFG_FileClassPtr->Write(outbuf); m_CFG_FileClassPtr->Write(newline); // m_CFG_FileClassPtr->Flush(); m_CFG_FileClassPtr->Close(); delete m_CFG_FileClassPtr; m_CFG_FileClassPtr = NULL; cout << "Configuration Saved" << endl; } return(true); }