Exemple #1
0
// Build the menu
void CMenuJoystick::Build()
{
	// Make sure to call the base class
	CMenuBase::Build();	

//	m_pClientDE->CPrint("CMenuJoystick::Build called!"); // BLB TEMP
	
	CreateTitle("interface\\mainmenus\\options.pcx", IDS_MENU_TITLE_OPTIONS, m_pMainMenus->GetTitlePos());		
	SetOptionPos(m_pMainMenus->GetOptionsPos());
	SetItemSpacing(5);
	SetScrollWrap(DFALSE);	
	UseArrows(DTRUE, 300);

	m_bUseJoystick=g_pBloodClientShell->IsUseJoystick();

	// check if the joystick has been disabled by the advanced menu console variables
	HCONSOLEVAR hVar = m_pClientDE->GetConsoleVar( "joystickdisable");
	if (hVar != NULL) 
	{
		if (m_pClientDE->GetVarValueFloat(hVar) == 1) 
		{
			m_bUseJoystick = DFALSE;
			g_pBloodClientShell->SetUseJoystick(FALSE);
		}
	}

	// read in the JOYSTICK.CFG file
	m_pClientDE->ReadConfigFile ("joystick.cfg");

	UpdateData(DFALSE);
	BuildAxisMenus();	

	// Update the enable/disable status of the controls
	UpdateEnable();
}
Exemple #2
0
//---------------------------------------------------------------------------
void __fastcall TCmdOptDialog::FormShow(TObject *Sender)
{
    OpenCmd->Text=Cmds[0];
    CloseCmd->Text=Cmds[1];
    ChkOpenCmd->Checked=CmdEna[0];;
    ChkCloseCmd->Checked=CmdEna[1];;
    UpdateEnable();
}
Exemple #3
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::RefPosTypePChange(TObject *Sender)
{
	TEdit *edit[]={RefPos1,RefPos2,RefPos3};
	double pos[3];
	GetPos(RefPosTypeF,edit,pos);
	SetPos(RefPosTypeP->ItemIndex,edit,pos);
	RefPosTypeF=RefPosTypeP->ItemIndex;
	UpdateEnable();
}
Exemple #4
0
// callback on button-options -----------------------------------------------
void __fastcall TMainWindow::BtnOptionsClick(TObject *Sender)
{
    int rnxfile=RnxFile;
    if (ConvOptDialog->ShowModal()!=mrOk) return;
    if (RnxFile!=rnxfile) {
        SetOutFiles(InFile->Text);
    }
    UpdateEnable();
}
// connect to external sources ----------------------------------------------
void __fastcall TPlot::Connect(void)
{
    AnsiString s;
    char *cmd,*path,buff[MAXSTRPATH],*name[2]={"",""},*p;
    int i,mode=STR_MODE_R;
    
    trace(3,"Connect\n");
    
    if (ConnectState) return;
    
    for (i=0;i<2;i++) {
        if      (RtStream[i]==STR_NONE    ) continue;
        else if (RtStream[i]==STR_SERIAL  ) path=StrPaths[i][0].c_str();
        else if (RtStream[i]==STR_FILE    ) path=StrPaths[i][2].c_str();
        else if (RtStream[i]<=STR_NTRIPCLI) path=StrPaths[i][1].c_str();
        else continue;
        
        if (RtStream[i]==STR_FILE||!SolData[i].cyclic||SolData[i].nmax!=RtBuffSize+1) {
            Clear();
            initsolbuf(SolData+i,1,RtBuffSize+1);
        }
        if (RtStream[i]==STR_SERIAL) mode|=STR_MODE_W;
        
        strcpy(buff,path);
        if ((p=strstr(buff,"::"))) *p='\0';
        if ((p=strstr(buff,"/:"))) *p='\0';
        if ((p=strstr(buff,"@"))) name[i]=p+1; else name[i]=buff;
        
        if (!stropen(Stream+i,RtStream[i],mode,path)) {
            ShowMsg(s.sprintf("connect error: %s",name));
            ShowLegend(NULL);
            trace(1,"stream open error: ch=%d type=%d path=%s\n",i+1,RtStream[i],path);
            continue;
        }
        strsettimeout(Stream+i,RtTimeOutTime,RtReConnTime);
        
        if (StrCmdEna[i][0]) {
            cmd=StrCmds[i][0].c_str();
            strwrite(Stream+i,(unsigned char *)cmd,strlen(cmd));
        }
        ConnectState=1;
    }
    if (!ConnectState) return;
    
    if (Title!="") Caption=Title;
    else Caption=s.sprintf("CONNECT %s %s",name[0],name[1]);
    
    BtnConnect->Down=true;
    BtnSol1   ->Down=*name[0];
    BtnSol2   ->Down=*name[1];
    BtnSol12  ->Down=false;
    BtnShowTrack->Down=true;
    BtnFixHoriz->Down=true;
    UpdateEnable();
    UpdateTime();
    UpdatePlot();
}
Exemple #6
0
// The right key was pressed
void CMenuJoystick::OnRight()
{
	// Call the base class
	CMenuBase::OnRight();

	UpdateData();

	// Update the enable/disable status of the controls
	UpdateEnable();	
}
//---------------------------------------------------------------------------
void __fastcall TConvDialog::FormShow(TObject *Sender)
{
	AnsiString s;
	Conversion->Checked=ConvEna;
	InFormat ->ItemIndex=ConvInp;
	OutFormat->ItemIndex=ConvOut;
	OutMsgs->Text=ConvMsg;
	Options->Text=ConvOpt;
	UpdateEnable();
}
//---------------------------------------------------------------------------
void __fastcall TConvOptDialog::FormShow(TObject *Sender)
{
	AnsiString s;
	RnxVer->ItemIndex=MainWindow->RnxVer;
	RnxFile->Checked=MainWindow->RnxFile;
	RnxCode->Text=MainWindow->RnxCode;
	RunBy->Text=MainWindow->RunBy;
	Marker->Text=MainWindow->Marker;
	MarkerNo->Text=MainWindow->MarkerNo;
	MarkerType->Text=MainWindow->MarkerType;
	Name0->Text=MainWindow->Name[0];
	Name1->Text=MainWindow->Name[1];
	Rec0->Text=MainWindow->Rec[0];
	Rec1->Text=MainWindow->Rec[1];
	Rec2->Text=MainWindow->Rec[2];
	Ant0->Text=MainWindow->Ant[0];
	Ant1->Text=MainWindow->Ant[1];
	Ant2->Text=MainWindow->Ant[2];
	AppPos0->Text=s.sprintf("%.4f",MainWindow->AppPos[0]);
	AppPos1->Text=s.sprintf("%.4f",MainWindow->AppPos[1]);
	AppPos2->Text=s.sprintf("%.4f",MainWindow->AppPos[2]);
	AntDel0->Text=s.sprintf("%.4f",MainWindow->AntDel[0]);
	AntDel1->Text=s.sprintf("%.4f",MainWindow->AntDel[1]);
	AntDel2->Text=s.sprintf("%.4f",MainWindow->AntDel[2]);
	Comment0->Text=MainWindow->Comment[0];
	Comment1->Text=MainWindow->Comment[1];
	RcvOption->Text=MainWindow->RcvOption;
	for (int i=0;i<6;i++) CodeMask[i]=MainWindow->CodeMask[i];
	AutoPos->Checked=MainWindow->AutoPos;
	ScanObs->Checked=MainWindow->ScanObs;
	OutIono->Checked=MainWindow->OutIono;
	OutTime->Checked=MainWindow->OutTime;
	OutLeaps->Checked=MainWindow->OutLeaps;

	Nav1->Checked=MainWindow->NavSys&SYS_GPS;
	Nav2->Checked=MainWindow->NavSys&SYS_GLO;
	Nav3->Checked=MainWindow->NavSys&SYS_GAL;
	Nav4->Checked=MainWindow->NavSys&SYS_QZS;
	Nav5->Checked=MainWindow->NavSys&SYS_SBS;
	Nav6->Checked=MainWindow->NavSys&SYS_CMP;
	Obs1->Checked=MainWindow->ObsType&OBSTYPE_PR;
	Obs2->Checked=MainWindow->ObsType&OBSTYPE_CP;
	Obs3->Checked=MainWindow->ObsType&OBSTYPE_DOP;
	Obs4->Checked=MainWindow->ObsType&OBSTYPE_SNR;
	Freq1->Checked=MainWindow->FreqType&FREQTYPE_L1;
	Freq2->Checked=MainWindow->FreqType&FREQTYPE_L2;
	Freq3->Checked=MainWindow->FreqType&FREQTYPE_L5;
	Freq4->Checked=MainWindow->FreqType&FREQTYPE_L6;
	Freq5->Checked=MainWindow->FreqType&FREQTYPE_L7;
	Freq6->Checked=MainWindow->FreqType&FREQTYPE_L8;
	ExSats->Text=MainWindow->ExSats;
	TraceLevel->ItemIndex=MainWindow->TraceLevel;
	
	UpdateEnable();
}
//---------------------------------------------------------------------------
__fastcall TConvOptDialog::TConvOptDialog(TComponent* Owner)
	: TForm(Owner)
{
	AnsiString s;
	int glo=MAXPRNGLO,gal=MAXPRNGAL,qzs=MAXPRNQZS,cmp=MAXPRNCMP;
	if (glo<=0) Nav2->Enabled=false;
	if (gal<=0) Nav3->Enabled=false;
	if (qzs<=0) Nav4->Enabled=false;
	if (cmp<=0) Nav6->Enabled=false;
	
	UpdateEnable();
}
Exemple #10
0
//---------------------------------------------------------------------------
__fastcall TOptDialog::TOptDialog(TComponent* Owner)
	: TForm(Owner)
{
	AnsiString label,s;
	int freq[]={1,2,5,6,7,8},nglo=MAXPRNGLO,ngal=MAXPRNGAL,nqzs=MAXPRNQZS;
	int ncmp=MAXPRNCMP;
	PrcOpt=prcopt_default;
	SolOpt=solopt_default;
	UpdateEnable();
	PosFont=new TFont;
	
	Freq->Items->Clear();
	for (int i=0;i<NFREQ;i++) {
		label=label+(i>0?"+":"")+s.sprintf("L%d",freq[i]);
		Freq->Items->Add(label);
	}
	if (nglo<=0) NavSys2->Enabled=false;
	if (ngal<=0) NavSys3->Enabled=false;
	if (nqzs<=0) NavSys4->Enabled=false;
	if (ncmp<=0) NavSys6->Enabled=false;
	UpdateEnable();
}
Exemple #11
0
//---------------------------------------------------------------------------
void __fastcall TLogStrDialog::FormShow(TObject *Sender)
{
	Stream1C ->Checked  =StreamC[0];
	Stream2C ->Checked  =StreamC[1];
	Stream3C ->Checked  =StreamC[2];
	Stream1  ->ItemIndex=Stream[0];
	Stream2  ->ItemIndex=Stream[1];
	Stream3  ->ItemIndex=Stream[2];
	FilePath1->Text     =GetFilePath(Paths[0][2]);
	FilePath2->Text     =GetFilePath(Paths[1][2]);
	FilePath3->Text     =GetFilePath(Paths[2][2]);
	SwapIntv ->Text     =SwapInterval;
	TimeTagC ->Checked  =LogTimeTag;
	UpdateEnable();
}
Exemple #12
0
//---------------------------------------------------------------------------
void __fastcall TSpanDialog::FormShow(TObject *Sender)
{
	char ts[64],te[64];
	AnsiString s;
	TimeStartF->Checked=TimeEna[0];
	TimeEndF  ->Checked=TimeEna[1];
	TimeIntF  ->Checked=TimeEna[2];
	time2str(TimeStart,ts,0); ts[10]='\0';
	time2str(TimeEnd,  te,0); te[10]='\0';
	TimeY1->Text=ts;
	TimeH1->Text=ts+11;
	TimeY2->Text=te;
	TimeH2->Text=te+11;
	EditTimeInt->Text=s.sprintf("%g",TimeInt);
	UpdateEnable();
}
Exemple #13
0
//---------------------------------------------------------------------------
void __fastcall TFileOptDialog::FormShow(TObject *Sender)
{
    AnsiString s;
    double speed=1.0,start=0.0,intv=0.0;
    char buff[1024];
    char *p;
    strcpy(buff,Path.c_str());

    ChkTimeTag->Caption=Opt?"TimeTag":"Time";
    TimeSpeed->Visible=!Opt;
    TimeStart->Visible=!Opt;
    Label1   ->Caption=Opt?"Output File Path":"Input File Path";
    Label2   ->Visible=!Opt;
    Label3   ->Visible=!Opt;
    Label4   ->Visible=Opt;
    Label5   ->Visible=Opt;
    SwapIntv ->Visible=Opt;
    BtnKey   ->Visible=Opt;
    ChkTimeTag->Checked=false;
    SwapIntv ->Text="";
    if (!Opt) {
        for (p=buff; p=strstr(p,"::"); p+=2) {
            if      (*(p+2)=='T') ChkTimeTag->Checked=true;
            else if (*(p+2)=='+') sscanf(p+2,"+%lf",&start);
            else if (*(p+2)=='x') sscanf(p+2,"x%lf",&speed);
        }
        if (start<=0.0) start=0.0;
        if (speed<=0.0) speed=1.0;
        TimeSpeed->Text=s.sprintf("x%g",speed);
        TimeStart->Text=s.sprintf("%g", start);
        if ((p=strstr(buff,"::"))) *p='\0';
        FilePath->Text=buff;
    }
    else {
        for (p=buff; p=strstr(p,"::"); p+=2) {
            if      (*(p+2)=='T') ChkTimeTag->Checked=true;
            else if (*(p+2)=='S') sscanf(p+2,"S=%lf",&intv);
        }
        if (intv>0.0) SwapIntv->Text=s.sprintf("%.3g",intv);
        if ((p=strstr(buff,"::"))) *p='\0';
        FilePath->Text=buff;
    }
    UpdateEnable();
}
//---------------------------------------------------------------------------
void __fastcall TFtpOptDialog::FormShow(TObject *Sender)
{
	AnsiString s,cap[]={"FTP Option","HTTP Option"};
	char buff[2048],*p,*q;
	char *addr,*file="",*user="",*passwd="";
	int topts[4]={0,3600,0,0};
	
	Caption=cap[Opt];
	
	strcpy(buff,Path.c_str());
    
    if ((p=strchr(buff,'/'))) {
        if ((q=strstr(p+1,"::"))) {
            *q='\0';
            sscanf(q+2,"T=%d,%d,%d,%d",topts,topts+1,topts+2,topts+3);
        }
        file=p+1;
        *p='\0';
    }
    if ((p=strrchr(buff,'@'))) {
        *p++='\0';
        if ((q=strchr(buff,':'))) {
             *q='\0'; passwd=q+1;
        }
        *q='\0'; user=buff;
    }
    else p=buff;
    addr=p;	
	
	Addr->Text=s.sprintf("%s/%s",addr,file);
	User->Text=user;
	Passwd->Text=passwd;
	PathOffset   ->Text=s.sprintf("%.2g",topts[0]/3600.0);
	Interval     ->Text=s.sprintf("%.2g",topts[1]/3600.0);
	Offset       ->Text=s.sprintf("%.2g",topts[2]/3600.0);
	RetryInterval->Text=s.sprintf("%d",topts[3]);
	Addr->Items->Clear();
	for (int i=0;i<MAXHIST;i++) {
		if (History[i]!="") Addr->Items->Add(History[i]);
	}
	UpdateEnable();
}
Exemple #15
0
//---------------------------------------------------------------------------
void __fastcall TInputStrDialog::FormShow(TObject *Sender)
{
	AnsiString s;
	StreamC1  ->Checked  =StreamC[0];
	StreamC2  ->Checked  =StreamC[1];
	StreamC3  ->Checked  =StreamC[2];
	Stream1   ->ItemIndex=Stream[0];
	Stream2   ->ItemIndex=Stream[1];
	Stream3   ->ItemIndex=Stream[2];
	Format1   ->ItemIndex=Format[0];
	Format2   ->ItemIndex=Format[1]<NRcv?Format[1]:NRcv+Format[1]-STRFMT_SP3;
	Format3   ->ItemIndex=Format[2]<NRcv?Format[2]:NRcv+Format[2]-STRFMT_SP3;
	FilePath1 ->Text     =GetFilePath(Paths[0][2]);
	FilePath2 ->Text     =GetFilePath(Paths[1][2]);
	FilePath3 ->Text     =GetFilePath(Paths[2][2]);
	NmeaReqL  ->ItemIndex=NmeaReq;
	TimeTagC  ->Checked  =TimeTag;
	TimeSpeedL->Text     =TimeSpeed;
	TimeStartE->Text     =TimeStart;
	NmeaPos1  ->Text     =s.sprintf("%.9f",NmeaPos[0]);
	NmeaPos2  ->Text     =s.sprintf("%.9f",NmeaPos[1]);
	UpdateEnable();
}
Exemple #16
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::NavSys2Click(TObject *Sender)
{
	UpdateEnable();
}
Exemple #17
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::SolFormatChange(TObject *Sender)
{
	UpdateEnable();
}
Exemple #18
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::SetOpt(void)
{
	AnsiString FieldSep_Text=FieldSep->Text;
	TEdit *editu[]={RovPos1,RovPos2,RovPos3};
	TEdit *editr[]={RefPos1,RefPos2,RefPos3};
	
	PrcOpt.mode      =PosMode     ->ItemIndex;
	PrcOpt.nf        =Freq        ->ItemIndex+1;
	PrcOpt.elmin     =str2dbl(ElMask ->Text)*D2R;
	PrcOpt.dynamics  =DynamicModel->ItemIndex;
	PrcOpt.tidecorr  =TideCorr    ->ItemIndex;
	PrcOpt.ionoopt   =IonoOpt     ->ItemIndex;
	PrcOpt.tropopt   =TropOpt     ->ItemIndex;
	PrcOpt.sateph    =SatEphem    ->ItemIndex;
	PrcOpt.modear    =AmbRes      ->ItemIndex;
	PrcOpt.glomodear =GloAmbRes   ->ItemIndex;
	PrcOpt.thresar[0]=str2dbl(ValidThresAR->Text);
	PrcOpt.maxout    =OutCntResetAmb->Text.ToInt();
	PrcOpt.minlock   =LockCntFixAmb->Text.ToInt();
	PrcOpt.minfix    =FixCntHoldAmb->Text.ToInt();
	PrcOpt.elmaskar  =str2dbl(ElMaskAR   ->Text)*D2R;
	PrcOpt.elmaskhold=str2dbl(ElMaskHold ->Text)*D2R;
	PrcOpt.maxtdiff  =str2dbl(MaxAgeDiff ->Text);
	PrcOpt.maxgdop   =str2dbl(RejectGdop ->Text);
	PrcOpt.maxinno   =str2dbl(RejectThres->Text);
	PrcOpt.thresslip =str2dbl(SlipThres  ->Text);
	PrcOpt.niter     =NumIter     ->Text.ToInt();
	PrcOpt.syncsol   =SyncSol     ->ItemIndex;
	ExSats			 =ExSatsE	  ->Text;
	PrcOpt.navsys    =0;
	if (NavSys1->Checked) PrcOpt.navsys|=SYS_GPS;
	if (NavSys2->Checked) PrcOpt.navsys|=SYS_GLO;
	if (NavSys3->Checked) PrcOpt.navsys|=SYS_GAL;
	if (NavSys4->Checked) PrcOpt.navsys|=SYS_QZS;
	if (NavSys5->Checked) PrcOpt.navsys|=SYS_SBS;
	if (NavSys6->Checked) PrcOpt.navsys|=SYS_CMP;
	PrcOpt.posopt[0] =PosOpt1   ->Checked;
	PrcOpt.posopt[1] =PosOpt2   ->Checked;
	PrcOpt.posopt[2] =PosOpt3   ->Checked;
	PrcOpt.posopt[3] =PosOpt4   ->Checked;
	PrcOpt.posopt[4] =PosOpt5   ->Checked;
	
	SolOpt.posf      =SolFormat   ->ItemIndex;
	SolOpt.timef     =TimeFormat->ItemIndex==0?0:1;
	SolOpt.times     =TimeFormat->ItemIndex==0?0:TimeFormat->ItemIndex-1;
	SolOpt.timeu     =(int)str2dbl(TimeDecimal->Text);
	SolOpt.degf      =LatLonFormat->ItemIndex;
	strcpy(SolOpt.sep,FieldSep_Text.c_str());
	SolOpt.outhead   =OutputHead  ->ItemIndex;
	SolOpt.outopt    =OutputOpt   ->ItemIndex;
	SolOpt.datum     =OutputDatum ->ItemIndex;
	SolOpt.height    =OutputHeight->ItemIndex;
	SolOpt.geoid     =OutputGeoid ->ItemIndex;
	SolOpt.nmeaintv[0]=str2dbl(NmeaIntv1->Text);
	SolOpt.nmeaintv[1]=str2dbl(NmeaIntv2->Text);
	DebugStatusF     =DebugStatus ->ItemIndex;
	DebugTraceF      =DebugTrace  ->ItemIndex;
	
	BaselineC        =BaselineConst->Checked;
	Baseline[0]      =str2dbl(BaselineLen->Text);
	Baseline[1]      =str2dbl(BaselineSig->Text);
	
	PrcOpt.eratio[0] =str2dbl(MeasErrR1 ->Text);
	PrcOpt.eratio[1] =str2dbl(MeasErrR2 ->Text);
	PrcOpt.err[1]    =str2dbl(MeasErr2  ->Text);
	PrcOpt.err[2]    =str2dbl(MeasErr3  ->Text);
	PrcOpt.err[3]    =str2dbl(MeasErr4  ->Text);
	PrcOpt.err[4]    =str2dbl(MeasErr5  ->Text);
	PrcOpt.prn[0]    =str2dbl(PrNoise1  ->Text);
	PrcOpt.prn[1]    =str2dbl(PrNoise2  ->Text);
	PrcOpt.prn[2]    =str2dbl(PrNoise3  ->Text);
	PrcOpt.prn[3]    =str2dbl(PrNoise4  ->Text);
	PrcOpt.prn[4]    =str2dbl(PrNoise5  ->Text);
	PrcOpt.sclkstab  =str2dbl(SatClkStab->Text);
	
	RovPosTypeF      =RovPosTypeP ->ItemIndex;
	RefPosTypeF      =RefPosTypeP ->ItemIndex;
	RovAntPcvF       =RovAntPcv   ->Checked;
	RefAntPcvF       =RefAntPcv   ->Checked;
	RovAntF          =RovAnt      ->Text;
	RefAntF          =RefAnt      ->Text;
	RovAntDel[0]     =str2dbl(RovAntE   ->Text);
	RovAntDel[1]     =str2dbl(RovAntN   ->Text);
	RovAntDel[2]     =str2dbl(RovAntU   ->Text);
	RefAntDel[0]     =str2dbl(RefAntE   ->Text);
	RefAntDel[1]     =str2dbl(RefAntN   ->Text);
	RefAntDel[2]     =str2dbl(RefAntU   ->Text);
	GetPos(RovPosTypeP->ItemIndex,editu,RovPos);
	GetPos(RefPosTypeP->ItemIndex,editr,RefPos);
	
	SatPcvFileF      =SatPcvFile  ->Text;
	AntPcvFileF      =AntPcvFile  ->Text;
	StaPosFileF      =StaPosFile  ->Text;
	GeoidDataFileF   =GeoidDataFile->Text;
	DCBFileF         =DCBFile     ->Text;
	EOPFileF         =EOPFile     ->Text;
	TLEFileF         =TLEFile     ->Text;
	TLESatFileF      =TLESatFile  ->Text;
	LocalDirectory   =LocalDir    ->Text;
	
	SvrCycle	     =SvrCycleE   ->Text.ToInt();
	TimeoutTime      =TimeoutTimeE->Text.ToInt();
	ReconTime        =ReconTimeE  ->Text.ToInt();
	NmeaCycle	     =NmeaCycleE  ->Text.ToInt();
	FileSwapMargin   =FileSwapMarginE->Text.ToInt();
	SvrBuffSize      =SvrBuffSizeE->Text.ToInt();
	SolBuffSize      =SolBuffSizeE->Text.ToInt();
	SavedSol         =SavedSolE   ->Text.ToInt();
	NavSelect        =NavSelectS  ->ItemIndex;
	PrcOpt.sbassatsel=SbasSatE    ->Text.ToInt();
	ProxyAddr        =ProxyAddrE  ->Text;
	MoniPort         =MoniPortE   ->Text.ToInt();
	PanelStack       =PanelStackE ->ItemIndex;
	PosFont->Assign(FontLabel->Font);
	UpdateEnable();
}
Exemple #19
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::LoadOpt(AnsiString file)
{
    int itype[]={STR_SERIAL,STR_TCPCLI,STR_TCPSVR,STR_NTRIPCLI,STR_FILE,STR_FTP,STR_HTTP};
    int otype[]={STR_SERIAL,STR_TCPCLI,STR_TCPSVR,STR_NTRIPSVR,STR_FILE};
	TEdit *editu[]={RovPos1,RovPos2,RovPos3};
	TEdit *editr[]={RefPos1,RefPos2,RefPos3};
	AnsiString s;
	char buff[1024]="",*p,id[32];
	int sat;
	prcopt_t prcopt=prcopt_default;
	solopt_t solopt=solopt_default;
	filopt_t filopt={""};
	
	resetsysopts();
	if (!loadopts(file.c_str(),sysopts)||
	    !loadopts(file.c_str(),rcvopts)) return;
	getsysopts(&prcopt,&solopt,&filopt);
	
	for (int i=0;i<8;i++) {
		MainForm->StreamC[i]=strtype[i]!=STR_NONE;
		MainForm->Stream[i]=STR_NONE;
		for (int j=0;j<(i<3?7:5);j++) {
			if (strtype[i]!=(i<3?itype[j]:otype[j])) continue;
			MainForm->Stream[i]=j;
			break;
		}
		if (i<5) MainForm->Format[i]=strfmt[i];
		
		if (strtype[i]==STR_SERIAL) {
			MainForm->Paths[i][0]=strpath[i];
		}
		else if (strtype[i]==STR_FILE) {
			MainForm->Paths[i][2]=strpath[i];
		}
		else if (strtype[i]<=STR_NTRIPCLI) {
			MainForm->Paths[i][1]=strpath[i];
		}
		else if (strtype[i]<=STR_HTTP) {
			MainForm->Paths[i][3]=strpath[i];
		}
	}
	MainForm->NmeaReq=nmeareq;
	MainForm->NmeaPos[0]=nmeapos[0];
	MainForm->NmeaPos[1]=nmeapos[1];
	
	SbasSatE     ->Text         =s.sprintf("%d",prcopt.sbassatsel);
	
	PosMode		 ->ItemIndex	=prcopt.mode;
	Freq		 ->ItemIndex	=prcopt.nf>NFREQ-1?NFREQ-1:prcopt.nf-1;
	Solution	 ->ItemIndex	=prcopt.soltype;
	ElMask		 ->Text			=s.sprintf("%.0f",prcopt.elmin*R2D);
	DynamicModel ->ItemIndex	=prcopt.dynamics;
	TideCorr	 ->ItemIndex	=prcopt.tidecorr;
	IonoOpt		 ->ItemIndex	=prcopt.ionoopt;
	TropOpt		 ->ItemIndex	=prcopt.tropopt;
	SatEphem	 ->ItemIndex	=prcopt.sateph;
	ExSatsE	     ->Text			="";
	for (sat=1,p=buff;sat<=MAXSAT;sat++) {
		if (!prcopt.exsats[sat-1]) continue;
		satno2id(sat,id);
		p+=sprintf(p,"%s%s%s",p==buff?"":" ",prcopt.exsats[sat-1]==2?"+":"",id);
	}
	ExSatsE		 ->Text			=buff;
	NavSys1	     ->Checked		=prcopt.navsys&SYS_GPS;
	NavSys2	     ->Checked		=prcopt.navsys&SYS_GLO;
	NavSys3	     ->Checked		=prcopt.navsys&SYS_GAL;
	NavSys4	     ->Checked		=prcopt.navsys&SYS_QZS;
	NavSys5	     ->Checked		=prcopt.navsys&SYS_SBS;
	NavSys6	     ->Checked		=prcopt.navsys&SYS_CMP;
	PosOpt1		 ->Checked		=prcopt.posopt[0];
	PosOpt2		 ->Checked		=prcopt.posopt[1];
	PosOpt3		 ->Checked		=prcopt.posopt[2];
	PosOpt4		 ->Checked		=prcopt.posopt[3];
	PosOpt5		 ->Checked		=prcopt.posopt[4];
	
	AmbRes		 ->ItemIndex	=prcopt.modear;
	GloAmbRes	 ->ItemIndex	=prcopt.glomodear;
	ValidThresAR ->Text			=s.sprintf("%.1f",prcopt.thresar[0]);
	OutCntResetAmb->Text		=s.sprintf("%d"  ,prcopt.maxout   );
	FixCntHoldAmb->Text			=s.sprintf("%d"  ,prcopt.minfix   );
	LockCntFixAmb->Text			=s.sprintf("%d"  ,prcopt.minlock  );
	ElMaskAR	 ->Text			=s.sprintf("%.0f",prcopt.elmaskar*R2D);
	ElMaskHold	 ->Text			=s.sprintf("%.0f",prcopt.elmaskhold*R2D);
	MaxAgeDiff	 ->Text			=s.sprintf("%.1f",prcopt.maxtdiff );
	RejectGdop   ->Text			=s.sprintf("%.1f",prcopt.maxgdop  );
	RejectThres  ->Text			=s.sprintf("%.1f",prcopt.maxinno  );
	SlipThres	 ->Text			=s.sprintf("%.3f",prcopt.thresslip);
	NumIter		 ->Text			=s.sprintf("%d",  prcopt.niter    );
	SyncSol		 ->ItemIndex	=prcopt.syncsol;
	BaselineLen	 ->Text			=s.sprintf("%.3f",prcopt.baseline[0]);
	BaselineSig	 ->Text			=s.sprintf("%.3f",prcopt.baseline[1]);
	BaselineConst->Checked		=prcopt.baseline[0]>0.0;
	
	SolFormat	 ->ItemIndex	=solopt.posf;
	TimeFormat	 ->ItemIndex	=solopt.timef==0?0:solopt.times+1;
	TimeDecimal	 ->Text			=s.sprintf("%d",solopt.timeu);
	LatLonFormat ->ItemIndex	=solopt.degf;
	FieldSep	 ->Text			=solopt.sep;
	OutputHead	 ->ItemIndex	=solopt.outhead;
	OutputOpt	 ->ItemIndex	=solopt.outopt;
	OutputDatum  ->ItemIndex	=solopt.datum;
	OutputHeight ->ItemIndex	=solopt.height;
	OutputGeoid  ->ItemIndex	=solopt.geoid;
	NmeaIntv1	 ->Text			=s.sprintf("%.2g",solopt.nmeaintv[0]);
	NmeaIntv2	 ->Text			=s.sprintf("%.2g",solopt.nmeaintv[1]);
	DebugTrace	 ->ItemIndex	=solopt.trace;
	DebugStatus	 ->ItemIndex	=solopt.sstat;
	
	MeasErrR1	 ->Text			=s.sprintf("%.1f",prcopt.eratio[0]);
	MeasErrR2	 ->Text			=s.sprintf("%.3f",prcopt.eratio[1]);
	MeasErr2	 ->Text			=s.sprintf("%.3f",prcopt.err[1]);
	MeasErr3	 ->Text			=s.sprintf("%.3f",prcopt.err[2]);
	MeasErr4	 ->Text			=s.sprintf("%.3f",prcopt.err[3]);
	MeasErr5	 ->Text			=s.sprintf("%.3f",prcopt.err[4]);
	SatClkStab	 ->Text			=s.sprintf("%.2E",prcopt.sclkstab);
	PrNoise1	 ->Text			=s.sprintf("%.2E",prcopt.prn[0]);
	PrNoise2	 ->Text			=s.sprintf("%.2E",prcopt.prn[1]);
	PrNoise3	 ->Text			=s.sprintf("%.2E",prcopt.prn[2]);
	PrNoise4	 ->Text			=s.sprintf("%.2E",prcopt.prn[3]);
	PrNoise5	 ->Text			=s.sprintf("%.2E",prcopt.prn[4]);
	
	RovAntPcv	 ->Checked		=*prcopt.anttype[0];
	RefAntPcv	 ->Checked		=*prcopt.anttype[1];
	RovAnt		 ->Text			=prcopt.anttype[0];
	RefAnt		 ->Text			=prcopt.anttype[1];
	RovAntE		 ->Text			=s.sprintf("%.4f",prcopt.antdel[0][0]);
	RovAntN		 ->Text			=s.sprintf("%.4f",prcopt.antdel[0][1]);
	RovAntU		 ->Text			=s.sprintf("%.4f",prcopt.antdel[0][2]);
	RefAntE		 ->Text			=s.sprintf("%.4f",prcopt.antdel[1][0]);
	RefAntN		 ->Text			=s.sprintf("%.4f",prcopt.antdel[1][1]);
	RefAntU		 ->Text			=s.sprintf("%.4f",prcopt.antdel[1][2]);
	
	RovPosTypeP	 ->ItemIndex	=prcopt.rovpos==0?0:3;
	RefPosTypeP	 ->ItemIndex	=prcopt.refpos==0?0:3;
	
	RovPosTypeF					=RovPosTypeP->ItemIndex;
	RefPosTypeF					=RefPosTypeP->ItemIndex;
	SetPos(RovPosTypeP->ItemIndex,editu,prcopt.ru);
	SetPos(RefPosTypeP->ItemIndex,editr,prcopt.rb);
	
	SatPcvFile ->Text			=filopt.satantp;
	AntPcvFile ->Text			=filopt.rcvantp;
	StaPosFile ->Text			=filopt.stapos;
	GeoidDataFile->Text			=filopt.geoid;
	DCBFile    ->Text			=filopt.dcb;
	LocalDir   ->Text			=filopt.tempdir;
	
	ReadAntList();
	UpdateEnable();
}
Exemple #20
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::DgpsCorrLChange(TObject *Sender)
{
	UpdateEnable();
}
Exemple #21
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::GetOpt(void)
{
	TEdit *editu[]={RovPos1,RovPos2,RovPos3};
	TEdit *editr[]={RefPos1,RefPos2,RefPos3};
	AnsiString s;
	
	PosMode		 ->ItemIndex=PrcOpt.mode;
	Freq		 ->ItemIndex=PrcOpt.nf-1>NFREQ-1?NFREQ-1:PrcOpt.nf-1;
	ElMask		 ->Text     =s.sprintf("%.0f",PrcOpt.elmin*R2D);
	DynamicModel ->ItemIndex=PrcOpt.dynamics;
	TideCorr	 ->ItemIndex=PrcOpt.tidecorr;
	IonoOpt		 ->ItemIndex=PrcOpt.ionoopt;
	TropOpt		 ->ItemIndex=PrcOpt.tropopt;
	SatEphem	 ->ItemIndex=PrcOpt.sateph;
	AmbRes		 ->ItemIndex=PrcOpt.modear;
	GloAmbRes	 ->ItemIndex=PrcOpt.glomodear;
	ValidThresAR ->Text     =s.sprintf("%.1f",PrcOpt.thresar[0]);
	OutCntResetAmb->Text    =s.sprintf("%d",  PrcOpt.maxout);
	LockCntFixAmb->Text     =s.sprintf("%d",  PrcOpt.minlock);
	FixCntHoldAmb->Text     =s.sprintf("%d",  PrcOpt.minfix);
	ElMaskAR	 ->Text     =s.sprintf("%.0f",PrcOpt.elmaskar*R2D);
	ElMaskHold	 ->Text     =s.sprintf("%.0f",PrcOpt.elmaskhold*R2D);
	MaxAgeDiff	 ->Text     =s.sprintf("%.1f",PrcOpt.maxtdiff);
	RejectGdop   ->Text     =s.sprintf("%.1f",PrcOpt.maxgdop);
	RejectThres  ->Text     =s.sprintf("%.1f",PrcOpt.maxinno);
	SlipThres	 ->Text     =s.sprintf("%.3f",PrcOpt.thresslip);
	NumIter		 ->Text     =s.sprintf("%d",  PrcOpt.niter);
	SyncSol		 ->ItemIndex=PrcOpt.syncsol;
	ExSatsE		 ->Text     =ExSats;
	NavSys1		 ->Checked  =PrcOpt.navsys&SYS_GPS;
	NavSys2		 ->Checked  =PrcOpt.navsys&SYS_GLO;
	NavSys3		 ->Checked  =PrcOpt.navsys&SYS_GAL;
	NavSys4		 ->Checked  =PrcOpt.navsys&SYS_QZS;
	NavSys5		 ->Checked  =PrcOpt.navsys&SYS_SBS;
	NavSys6		 ->Checked  =PrcOpt.navsys&SYS_CMP;
	PosOpt1		 ->Checked  =PrcOpt.posopt[0];
	PosOpt2		 ->Checked  =PrcOpt.posopt[1];
	PosOpt3		 ->Checked  =PrcOpt.posopt[2];
	PosOpt4		 ->Checked  =PrcOpt.posopt[3];
	PosOpt5		 ->Checked  =PrcOpt.posopt[4];
	
	SolFormat	 ->ItemIndex=SolOpt.posf;
	TimeFormat	 ->ItemIndex=SolOpt.timef==0?0:SolOpt.times+1;
	TimeDecimal	 ->Text     =s.sprintf("%d",SolOpt.timeu);
	LatLonFormat ->ItemIndex=SolOpt.degf;
	FieldSep	 ->Text     =SolOpt.sep;
	OutputHead	 ->ItemIndex=SolOpt.outhead;
	OutputOpt	 ->ItemIndex=SolOpt.outopt;
	OutputDatum  ->ItemIndex=SolOpt.datum;
	OutputHeight ->ItemIndex=SolOpt.height;
	OutputGeoid  ->ItemIndex=SolOpt.geoid;
	NmeaIntv1    ->Text     =s.sprintf("%.2g",SolOpt.nmeaintv[0]);
	NmeaIntv2    ->Text     =s.sprintf("%.2g",SolOpt.nmeaintv[1]);
	DebugStatus	 ->ItemIndex=DebugStatusF;
	DebugTrace	 ->ItemIndex=DebugTraceF;
	
	BaselineConst->Checked  =BaselineC;
	BaselineLen->Text       =s.sprintf("%.3f",Baseline[0]);
	BaselineSig->Text       =s.sprintf("%.3f",Baseline[1]);
	
	MeasErrR1	 ->Text     =s.sprintf("%.1f",PrcOpt.eratio[0]);
	MeasErrR2	 ->Text     =s.sprintf("%.1f",PrcOpt.eratio[1]);
	MeasErr2	 ->Text     =s.sprintf("%.3f",PrcOpt.err[1]);
	MeasErr3	 ->Text     =s.sprintf("%.3f",PrcOpt.err[2]);
	MeasErr4	 ->Text     =s.sprintf("%.3f",PrcOpt.err[3]);
	MeasErr5	 ->Text     =s.sprintf("%.3f",PrcOpt.err[4]);
	PrNoise1	 ->Text     =s.sprintf("%.2E",PrcOpt.prn[0]);
	PrNoise2	 ->Text     =s.sprintf("%.2E",PrcOpt.prn[1]);
	PrNoise3	 ->Text     =s.sprintf("%.2E",PrcOpt.prn[2]);
	PrNoise4	 ->Text     =s.sprintf("%.2E",PrcOpt.prn[3]);
	PrNoise5	 ->Text     =s.sprintf("%.2E",PrcOpt.prn[4]);
	SatClkStab	 ->Text     =s.sprintf("%.2E",PrcOpt.sclkstab);
	
	RovPosTypeP	 ->ItemIndex=RovPosTypeF;
	RefPosTypeP	 ->ItemIndex=RefPosTypeF;
	RovAntPcv	 ->Checked  =RovAntPcvF;
	RefAntPcv	 ->Checked  =RefAntPcvF;
	RovAnt		 ->Text     =RovAntF;
	RefAnt		 ->Text     =RefAntF;
	RovAntE		 ->Text     =s.sprintf("%.4f",RovAntDel[0]);
	RovAntN		 ->Text     =s.sprintf("%.4f",RovAntDel[1]);
	RovAntU		 ->Text     =s.sprintf("%.4f",RovAntDel[2]);
	RefAntE		 ->Text     =s.sprintf("%.4f",RefAntDel[0]);
	RefAntN		 ->Text     =s.sprintf("%.4f",RefAntDel[1]);
	RefAntU		 ->Text     =s.sprintf("%.4f",RefAntDel[2]);
	SetPos(RovPosTypeP->ItemIndex,editu,RovPos);
	SetPos(RefPosTypeP->ItemIndex,editr,RefPos);
	
	SatPcvFile	 ->Text     =SatPcvFileF;
	AntPcvFile	 ->Text     =AntPcvFileF;
	StaPosFile	 ->Text     =StaPosFileF;
	GeoidDataFile->Text     =GeoidDataFileF;
	DCBFile      ->Text     =DCBFileF;
	EOPFile      ->Text     =EOPFileF;
	TLEFile      ->Text     =TLEFileF;
	TLESatFile   ->Text     =TLESatFileF;
	LocalDir	 ->Text     =LocalDirectory;
	ReadAntList();
	
	SvrCycleE	 ->Text     =s.sprintf("%d",SvrCycle);
	TimeoutTimeE ->Text     =s.sprintf("%d",TimeoutTime);
	ReconTimeE   ->Text     =s.sprintf("%d",ReconTime);
	NmeaCycleE   ->Text     =s.sprintf("%d",NmeaCycle);
	FileSwapMarginE->Text   =s.sprintf("%d",FileSwapMargin);
	SvrBuffSizeE ->Text     =s.sprintf("%d",SvrBuffSize);
	SolBuffSizeE ->Text     =s.sprintf("%d",SolBuffSize);
	SavedSolE    ->Text     =s.sprintf("%d",SavedSol);
	NavSelectS   ->ItemIndex=NavSelect;
	SbasSatE     ->Text     =s.sprintf("%d",PrcOpt.sbassatsel);
	ProxyAddrE   ->Text     =ProxyAddr;
	MoniPortE    ->Text     =s.sprintf("%d",MoniPort);
	SolBuffSizeE ->Text     =s.sprintf("%d",SolBuffSize);
	PanelStackE  ->ItemIndex=PanelStack;
	
	FontLabel->Font->Assign(PosFont);
	FontLabel->Caption=FontLabel->Font->Name+s.sprintf(" %dpt",FontLabel->Font->Size);
	UpdateEnable();
}
Exemple #22
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::OutputHeightClick(TObject *Sender)
{
	UpdateEnable();
}
Exemple #23
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::NmeaReqCClick(TObject *Sender)
{
	UpdateEnable();
}
Exemple #24
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::IntpRefObsClick(TObject *Sender)
{
	UpdateEnable();
}
Exemple #25
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::RefPosClick(TObject *Sender)
{
	UpdateEnable();
}
Exemple #26
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::SatClkCorrClick(TObject *Sender)
{
	UpdateEnable();
}
Exemple #27
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::RovAntPcvClick(TObject *Sender)
{
	UpdateEnable();
}
Exemple #28
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::AmbResChange(TObject *Sender)
{
	UpdateEnable();
}
Exemple #29
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::PosModeChange(TObject *Sender)
{
	UpdateEnable();
}
Exemple #30
0
//---------------------------------------------------------------------------
void __fastcall TOptDialog::BaselineConstClick(TObject *Sender)
{
	UpdateEnable();
}