Esempio n. 1
0
// ---------------------------------------------------------------------------
// 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;
};
Esempio n. 2
0
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);
}