﻿Version=6.80
NumberOfForms=1
Form1=Form1
FormWidth=238
FormHeight=268
IconFile=E:\Programme\Anywhere Software\Basic4ppc Desktop\icons\World.ico
NumberOfDesktopIncludes=2
DesktopInclude1=FormLib.dll
DesktopInclude2=GPSSerial.dll
NumberOfDeviceIncludes=2
DeviceInclude1=FormLib.dll
DeviceInclude2=GPSSerial.dll
NumberOfObjects=3
Object1=gps:GPSSerial
Object2=flb:FormLib
Object3=conv:GPSSerialConverter
NumberOfModules=0
Sub designer
addform(Form1,"UTM Soll - Ist","",220,220,220)@
addcombo(form1,cbbaud,5,205,75,22,"",255,255,255,0,0,0,True,True,6,"4800","9600","19200","38400","57600","115200",9)@
addlabel(form1,Label1,5,235,75,25,"",220,220,220,0,0,0,True,True,9,False)@
addcombo(form1,cbcom,90,205,80,22,"",255,255,255,0,0,0,True,True,12,"Com1","Com2","Com3","Com4","Com5","Com6","Com7","Com8","Com9","Com10","Com15","Com16",9)@
addlabel(form1,lbldgps,180,155,50,15," -",220,220,220,0,0,0,True,True,8,False)@
addlabel(form1,lblsat,5,180,75,15," Sat used: ",220,220,220,0,0,0,True,True,8,False)@
addlabel(form1,lblutc,90,180,80,15," UTC: ",220,220,220,0,0,0,True,True,8,False)@
addlabel(form1,lbldop,90,155,80,15," PDOP: ",220,220,220,0,0,0,True,True,8,False)@
addlabel(form1,lbldmih,180,125,50,20,"",192,192,192,0,64,128,True,True,11,False)@
addlabel(form1,lblmih,180,95,50,20,"",192,192,192,0,64,128,True,True,10,False)@
addlabel(form1,lbldh,180,65,50,20,"",255,255,255,64,0,64,True,True,11,False)@
addtextbox(form1,TextBoxhoehe,180,35,50,25,"538.20",255,255,255,0,0,0,True,True,False,10)@
addlabel(form1,lblhoehe,180,10,50,20,"Höhe",220,220,220,0,0,0,True,True,10,False)@
addlabel(form1,lblfix,5,155,75,15," Fix: ",220,220,220,0,0,0,True,True,8,False)@
addlabel(form1,lblwo,90,10,80,20,"West / Ost",220,220,220,0,0,0,True,True,10,False)@
addlabel(form1,lblns,5,10,75,20,"Nord / Süd",220,220,220,0,0,0,True,True,10,False)@
addtimer(form1,Timer1,180,240,1000)@
addbutton(form1,Button1,90,235,80,30,"Start",212,208,200,0,0,0,True,True,16)@
addlabel(form1,lblanzahl,180,180,50,15," #: ",220,220,220,0,0,0,True,True,8,False)@
addlabel(form1,lbldmiwest,90,125,80,20,"",192,192,192,0,64,128,True,True,11,False)@
addtextbox(form1,TextBoxwest,90,35,80,25,"5394246.80",255,255,255,0,0,0,True,True,False,10)@
addtextbox(form1,TextBoxnord,5,35,75,25,"578511.35",255,255,255,0,0,0,True,True,False,10)@
addlabel(form1,lbldminord,5,125,75,20,"",192,192,192,0,64,128,True,True,11,False)@
addlabel(form1,lblmiwest,90,95,80,20,"",192,192,192,0,64,128,True,True,10,False)@
addlabel(form1,lblminord,5,95,75,20,"",192,192,192,0,64,128,True,True,10,False)@
addlabel(form1,lbldwest,90,65,80,20,"",255,255,255,64,0,64,True,True,11,False)@
addlabel(form1,lbldnord,5,65,75,20,"",255,255,255,64,0,64,True,True,11,False)@
addpanel(form1,Panel1,0,30,240,170,128,128,128,True,True)@
End Sub
@EndOfDesignText@
Sub Globals
	Dim utm(0)
	Dim gga(0)
	n = 0
	nord = 0
	west = 0
	hoehe = 0
	com = ""
	baud = 0
End Sub

Sub App_Start
	Form1.Show
	gps.New1 'GPSSerial.dll
	conv.New1
	flb.New1("Form1",B4PObject(1)) 'FormLib.dll
    flb.TextAlignment("TextBoxnord",flb.alRight)
	flb.TextAlignment("TextBoxwest",flb.alRight)
	flb.TextAlignment("TextBoxhoehe",flb.alRight)
	flb.TextAlignment("lbldnord",flb.alRight)
	flb.TextAlignment("lbldwest",flb.alRight)
	flb.TextAlignment("lbldh",flb.alRight)
	flb.TextAlignment("lblminord",flb.alRight)
	flb.TextAlignment("lblmiwest",flb.alRight)
	flb.TextAlignment("lblmih",flb.alRight)
	flb.TextAlignment("lbldminord",flb.alRight)
	flb.TextAlignment("lbldmiwest",flb.alRight)
	flb.TextAlignment("lbldmih",flb.alRight)
	cbcom.SelectedIndex = 0
	cbbaud.SelectedIndex = 0
	com = cbcom.Item(0)
	baud = cbbaud.Item(0)
	TimeFormat ("HH:mm:ss")
End Sub

Sub Timer1_Tick
	gga() = StrSplit(gps.GPGGA,",")
	If gps.GetGpsData(2000) = True Then Calc
End Sub

Sub Calc
lblfix.Text = " Fix: " & gps.FixType

Select gga(6)
	Case 0
		lbldgps.Text = " void"
	Case 1
		lbldgps.Text = " GPS"
	Case 2
		lbldgps.Text = " DGPS"
	Case 6
		lbldgps.Text = " ~" 'estimated
End Select

If gps.FixType = "2D" OR gps.FixType = "3D" Then
	utm() = Conv.WGS84LatLonToUTM(gps.Latitude,gps.Longitude)
	nord = (nord * n + (utm(1)-0.5)) / (n + 1)
	lblminord.Text = Format(nord,"F2")
	west = (west * n + (utm(3)-0.5)) / (n + 1)
	lblmiwest.Text = Format(west,"F2")
	hoehe = (hoehe * n + gps.SeaLevelAltitude) / (n + 1)
	lblmih.Text = Format(hoehe,"F2")
	lbldnord.Text = Format(TextBoxnord.Text - (utm(1)-0.5),"F2")
	lbldwest.Text = Format(TextBoxwest.Text - (utm(3)-0.5),"F2")
	lbldh.Text = Format(TextBoxhoehe.Text - gps.SeaLevelAltitude,"F2")'
	lbldminord.Text = Format(nord - (utm(1)-0.5),"F2")
	lbldmiwest.Text = Format(west - (utm(3)-0.5),"F2")
	lbldmih.Text = Format(hoehe - gps.SeaLevelAltitude,"F2")
	lbldop.Text = " PDOP: " & gps.PositionDilutionOfPrecision
	lblanzahl.Text = " #: " & n
	lblutc.Text = " UTC: " & Time(gps.Time)
	lblsat.Text = " Sat used: " & gps.SatelliteUsedCount
	n = n + 1
End If

End Sub

Sub Form1_Close
	gps.Close
	Timer1.Enabled = False
End Sub

Sub Button1_Click
	
If Button1.Text = "Start" Then
	WaitCursor(True)
	nord = 0
	west = 0
	hoehe = 0
	
	gps.Open(com,baud)
	Sleep(2000)
	
	If gps.GetGpsData(2000) = True Then
		Sleep(2000)
		Timer1.Enabled = True
		Button1.Text = "Stopp"
		WaitCursor(False)
		Else
			Msgbox("Com-Port?","Keine Daten!")
			WaitCursor(False)
			gps.Close
	End If
	Else
		Button1.Text = "Start"
		Timer1.Enabled = False
		gps.Close
		n = 0
End If

End Sub

Sub cbcom_SelectionChanged(Index,Value)
	com = Value
End Sub

Sub cbbaud_SelectionChanged (Index, Value)
	baud = Value
End Sub