www.pudn.com > mo_gps.zip > frmDocument.frm
VERSION 5.00
Object = "{9BD6A640-CE75-11D1-AF04-204C4F4F5020}#2.0#0"; "mo20.ocx"
Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0"; "COMCTL32.OCX"
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "Comdlg32.ocx"
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form frmMain
BackColor = &H00000000&
Caption = "Mapobjects GPS DEMO"
ClientHeight = 8355
ClientLeft = 885
ClientTop = 2190
ClientWidth = 14655
FillColor = &H00000080&
Icon = "frmDocument.frx":0000
LinkTopic = "Form1"
ScaleHeight = 555.842
ScaleMode = 0 'User
ScaleWidth = 973.956
Begin ComctlLib.Toolbar tlbMain
Align = 1 'Align Top
Height = 660
Left = 0
TabIndex = 29
Top = 0
Width = 14655
_ExtentX = 25850
_ExtentY = 1164
ButtonWidth = 1032
ButtonHeight = 1005
Appearance = 1
ImageList = "ImageList2"
_Version = 327682
BeginProperty Buttons {0713E452-850A-101B-AFC0-4210102A8DA7}
NumButtons = 14
BeginProperty Button1 {0713F354-850A-101B-AFC0-4210102A8DA7}
Key = "fileopen"
Object.ToolTipText = "Open an existing NMEA file..."
Object.Tag = ""
ImageIndex = 3
EndProperty
BeginProperty Button2 {0713F354-850A-101B-AFC0-4210102A8DA7}
Key = "fileplay"
Object.ToolTipText = "Play NMEA file"
Object.Tag = ""
ImageIndex = 1
EndProperty
BeginProperty Button3 {0713F354-850A-101B-AFC0-4210102A8DA7}
Key = ""
Object.Tag = ""
Style = 3
MixedState = -1 'True
EndProperty
BeginProperty Button4 {0713F354-850A-101B-AFC0-4210102A8DA7}
Key = "gpsconnect"
Object.ToolTipText = "Open COM port..."
Object.Tag = ""
ImageIndex = 2
EndProperty
BeginProperty Button5 {0713F354-850A-101B-AFC0-4210102A8DA7}
Key = "gpsdisconnect"
Object.ToolTipText = "Close COM port"
Object.Tag = ""
ImageIndex = 4
EndProperty
BeginProperty Button6 {0713F354-850A-101B-AFC0-4210102A8DA7}
Key = ""
Object.Tag = ""
Style = 3
MixedState = -1 'True
EndProperty
BeginProperty Button7 {0713F354-850A-101B-AFC0-4210102A8DA7}
Key = "zoomin"
Object.ToolTipText = "Zoom In"
Object.Tag = ""
ImageIndex = 10
Style = 2
EndProperty
BeginProperty Button8 {0713F354-850A-101B-AFC0-4210102A8DA7}
Key = "zoomout"
Object.ToolTipText = "Zoom Out"
Object.Tag = ""
ImageIndex = 11
Style = 2
EndProperty
BeginProperty Button9 {0713F354-850A-101B-AFC0-4210102A8DA7}
Key = "pan"
Object.ToolTipText = "Pan the map control"
Object.Tag = ""
ImageIndex = 6
Style = 2
EndProperty
BeginProperty Button10 {0713F354-850A-101B-AFC0-4210102A8DA7}
Key = "target"
Object.ToolTipText = "Locate target on map display"
Object.Tag = ""
ImageIndex = 7
Style = 2
EndProperty
BeginProperty Button11 {0713F354-850A-101B-AFC0-4210102A8DA7}
Key = ""
Object.Tag = ""
Style = 3
MixedState = -1 'True
EndProperty
BeginProperty Button12 {0713F354-850A-101B-AFC0-4210102A8DA7}
Key = "extent"
Object.ToolTipText = "Zoom to full map extent"
Object.Tag = ""
ImageIndex = 8
EndProperty
BeginProperty Button13 {0713F354-850A-101B-AFC0-4210102A8DA7}
Key = ""
Object.Tag = ""
Style = 3
MixedState = -1 'True
EndProperty
BeginProperty Button14 {0713F354-850A-101B-AFC0-4210102A8DA7}
Key = "Stop"
Object.ToolTipText = "Stop Moving"
Object.Tag = ""
ImageIndex = 9
EndProperty
EndProperty
BorderStyle = 1
Begin VB.CheckBox Check1
Caption = "View OP Viewshed"
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 420
Left = 6555
Picture = "frmDocument.frx":030A
TabIndex = 55
TabStop = 0 'False
Top = 105
Value = 1 'Checked
Width = 1695
End
Begin VB.TextBox Text1
Appearance = 0 'Flat
BackColor = &H00C0C0C0&
BorderStyle = 0 'None
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000FF&
Height = 312
Left = 8250
Locked = -1 'True
TabIndex = 54
Text = "Visible From Observation Point"
Top = 75
Visible = 0 'False
Width = 3972
End
End
Begin MSCommLib.MSComm MSComm1
Left = 8115
Top = 7095
_ExtentX = 1005
_ExtentY = 1005
_Version = 393216
DTREnable = -1 'True
End
Begin MSComDlg.CommonDialog dlgCommonDialog
Left = 5625
Top = 7125
_ExtentX = 847
_ExtentY = 847
_Version = 393216
End
Begin VB.PictureBox Picture1
Appearance = 0 'Flat
BackColor = &H00000000&
ForeColor = &H80000008&
Height = 405
Left = 105
ScaleHeight = 25
ScaleMode = 0 'User
ScaleWidth = 387.192
TabIndex = 36
Top = 7665
Width = 11820
Begin VB.Line progLine
BorderColor = &H000040C0&
BorderWidth = 4
X1 = 0
X2 = 0
Y1 = 0
Y2 = 25
End
Begin VB.Shape progFill
BackColor = &H00FF0000&
BackStyle = 1 'Opaque
BorderStyle = 6 'Inside Solid
FillStyle = 3 'Vertical Line
Height = 405
Left = 60
Top = -15
Visible = 0 'False
Width = 13380
End
End
Begin VB.PictureBox NMEABar
Appearance = 0 'Flat
BackColor = &H00000000&
ClipControls = 0 'False
ForeColor = &H80000008&
Height = 1500
Index = 7
Left = 2910
ScaleHeight = -98
ScaleMode = 0 'User
ScaleTop = 100
ScaleWidth = 18
TabIndex = 7
Top = 990
Width = 300
Begin VB.Shape Fill
BackColor = &H0000FFFF&
BackStyle = 1 'Opaque
FillStyle = 2 'Horizontal Line
Height = 1785
Index = 7
Left = -60
Top = 1410
Width = 345
End
End
Begin VB.PictureBox NMEABar
Appearance = 0 'Flat
BackColor = &H00000000&
ClipControls = 0 'False
ForeColor = &H80000008&
Height = 1500
Index = 6
Left = 2550
ScaleHeight = -98
ScaleMode = 0 'User
ScaleTop = 100
ScaleWidth = 18
TabIndex = 6
Top = 990
Width = 300
Begin VB.Shape Fill
BackColor = &H0000FFFF&
BackStyle = 1 'Opaque
FillStyle = 2 'Horizontal Line
Height = 1785
Index = 6
Left = -60
Top = 1410
Width = 345
End
End
Begin VB.PictureBox NMEABar
Appearance = 0 'Flat
BackColor = &H00000000&
ClipControls = 0 'False
ForeColor = &H80000008&
Height = 1500
Index = 5
Left = 2190
ScaleHeight = -98
ScaleMode = 0 'User
ScaleTop = 100
ScaleWidth = 18
TabIndex = 5
Top = 990
Width = 300
Begin VB.Shape Fill
BackColor = &H0000FFFF&
BackStyle = 1 'Opaque
FillStyle = 2 'Horizontal Line
Height = 1785
Index = 5
Left = -60
Top = 1410
Width = 345
End
End
Begin VB.PictureBox NMEABar
Appearance = 0 'Flat
BackColor = &H00000000&
ClipControls = 0 'False
ForeColor = &H80000008&
Height = 1500
Index = 4
Left = 1830
ScaleHeight = -98
ScaleMode = 0 'User
ScaleTop = 100
ScaleWidth = 18
TabIndex = 4
Top = 990
Width = 300
Begin VB.Shape Fill
BackColor = &H0000FFFF&
BackStyle = 1 'Opaque
FillStyle = 2 'Horizontal Line
Height = 1788
Index = 4
Left = -72
Top = 1416
Width = 348
End
End
Begin VB.PictureBox NMEABar
Appearance = 0 'Flat
BackColor = &H00000000&
ClipControls = 0 'False
ForeColor = &H80000008&
Height = 1500
Index = 3
Left = 1470
ScaleHeight = -98
ScaleMode = 0 'User
ScaleTop = 100
ScaleWidth = 18
TabIndex = 3
Top = 990
Width = 300
Begin VB.Shape Fill
BackColor = &H0000FFFF&
BackStyle = 1 'Opaque
FillStyle = 2 'Horizontal Line
Height = 1788
Index = 3
Left = -72
Top = 1428
Width = 348
End
End
Begin VB.PictureBox NMEABar
Appearance = 0 'Flat
BackColor = &H00000000&
ClipControls = 0 'False
ForeColor = &H80000008&
Height = 1500
Index = 2
Left = 1110
ScaleHeight = -98
ScaleMode = 0 'User
ScaleTop = 100
ScaleWidth = 18
TabIndex = 2
Top = 990
Width = 300
Begin VB.Shape Fill
BackColor = &H0000FFFF&
BackStyle = 1 'Opaque
FillStyle = 2 'Horizontal Line
Height = 1785
Index = 2
Left = -60
Top = 1410
Width = 345
End
End
Begin VB.PictureBox NMEABar
Appearance = 0 'Flat
BackColor = &H00000000&
ClipControls = 0 'False
ForeColor = &H80000008&
Height = 1500
Index = 1
Left = 750
ScaleHeight = -98
ScaleMode = 0 'User
ScaleTop = 100
ScaleWidth = 18
TabIndex = 1
Top = 990
Width = 300
Begin VB.Shape Fill
BackColor = &H0000FFFF&
BackStyle = 1 'Opaque
FillStyle = 2 'Horizontal Line
Height = 2388
Index = 1
Left = -120
Top = 1428
Width = 468
End
End
Begin VB.PictureBox NMEABar
Appearance = 0 'Flat
BackColor = &H00000000&
ClipControls = 0 'False
ForeColor = &H80000008&
Height = 1500
Index = 0
Left = 390
ScaleHeight = -98
ScaleMode = 0 'User
ScaleTop = 100
ScaleWidth = 18
TabIndex = 0
Top = 990
Width = 300
Begin VB.Shape Fill
BackColor = &H0000FFFF&
BackStyle = 1 'Opaque
FillStyle = 2 'Horizontal Line
Height = 1788
Index = 0
Left = -84
Top = 1416
Width = 348
End
End
Begin MapObjects2.Map mapDisp
Height = 6300
Left = 3630
TabIndex = 28
Top = 915
Width = 8175
_Version = 131072
_ExtentX = 14420
_ExtentY = 11112
_StockProps = 225
BorderStyle = 1
Appearance = 1
ScrollBars = 0 'False
BackColor = 0
Contents = "frmDocument.frx":0494
End
Begin ComctlLib.ImageList ImageList2
Left = 4815
Top = 7185
_ExtentX = 794
_ExtentY = 794
BackColor = -2147483626
ImageWidth = 32
ImageHeight = 32
MaskColor = 8421376
_Version = 327682
BeginProperty Images {0713E8C2-850A-101B-AFC0-4210102A8DA7}
NumListImages = 11
BeginProperty ListImage1 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":04AE
Key = ""
EndProperty
BeginProperty ListImage2 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":2310
Key = ""
EndProperty
BeginProperty ListImage3 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":444A
Key = ""
EndProperty
BeginProperty ListImage4 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":4AC4
Key = ""
EndProperty
BeginProperty ListImage5 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":66D6
Key = ""
EndProperty
BeginProperty ListImage6 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":67E8
Key = ""
EndProperty
BeginProperty ListImage7 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":68FA
Key = ""
EndProperty
BeginProperty ListImage8 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":8F64
Key = ""
EndProperty
BeginProperty ListImage9 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":9076
Key = ""
EndProperty
BeginProperty ListImage10 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":9188
Key = ""
EndProperty
BeginProperty ListImage11 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":96DA
Key = ""
EndProperty
EndProperty
End
Begin VB.Label lblTarget
BackColor = &H00000000&
Caption = "Target:"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000C0C0&
Height = 480
Left = 11970
TabIndex = 53
Top = 5700
Width = 2250
End
Begin VB.Label lblBackAzimuth
BackColor = &H00000000&
Caption = "Back Azimuth:"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000C0C0&
Height = 225
Left = 11955
TabIndex = 52
Top = 6450
Width = 2280
End
Begin VB.Label lblAzimuth
BackColor = &H00000000&
Caption = "Azimuth:"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000C0C0&
Height = 225
Left = 11970
TabIndex = 51
Top = 6705
Width = 2220
End
Begin VB.Label lblDistance
BackColor = &H00000000&
Caption = "Distance:"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000C0C0&
Height = 315
Left = 11955
TabIndex = 50
Top = 6165
Width = 2295
End
Begin VB.Label Label4
Alignment = 2 'Center
BackColor = &H00000000&
Caption = "Target Info"
BeginProperty Font
Name = "Verdana"
Size = 13.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00FFFFFF&
Height = 390
Left = 12225
TabIndex = 49
Top = 5325
Width = 1800
End
Begin VB.Shape Shape5
BorderColor = &H00FFFFFF&
BorderWidth = 2
Height = 1470
Left = 11910
Shape = 4 'Rounded Rectangle
Top = 5625
Width = 2415
End
Begin VB.Label labSV
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "test"
BeginProperty Font
Name = "Lucida Console"
Size = 6.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 135
Index = 0
Left = 300
TabIndex = 15
Top = 5835
Width = 300
End
Begin VB.Label labSV
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "test"
BeginProperty Font
Name = "Lucida Console"
Size = 6.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 135
Index = 1
Left = 300
TabIndex = 14
Top = 6000
Width = 300
End
Begin VB.Label labSV
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "test"
BeginProperty Font
Name = "Lucida Console"
Size = 6.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 135
Index = 2
Left = 600
TabIndex = 13
Top = 5865
Width = 300
End
Begin VB.Label labSV
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "test"
BeginProperty Font
Name = "Lucida Console"
Size = 6.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 135
Index = 3
Left = 660
TabIndex = 12
Top = 6015
Width = 300
End
Begin VB.Label labSV
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "test"
BeginProperty Font
Name = "Lucida Console"
Size = 6.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 135
Index = 4
Left = 285
TabIndex = 11
Top = 6120
Width = 300
End
Begin VB.Label labSV
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "test"
BeginProperty Font
Name = "Lucida Console"
Size = 6.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 135
Index = 5
Left = 840
TabIndex = 10
Top = 6270
Width = 300
End
Begin VB.Label labSV
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "test"
BeginProperty Font
Name = "Lucida Console"
Size = 6.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 135
Index = 6
Left = 390
TabIndex = 9
Top = 6435
Width = 300
End
Begin VB.Label labSV
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "test"
BeginProperty Font
Name = "Lucida Console"
Size = 6.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 135
Index = 7
Left = 420
TabIndex = 8
Top = 6240
Width = 300
End
Begin VB.Label lblEl
BackStyle = 0 'Transparent
Caption = "ELEVATION"
BeginProperty Font
Name = "Verdana"
Size = 9
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000FFFF&
Height = 240
Left = 2295
TabIndex = 48
Top = 4605
Width = 1230
End
Begin VB.Shape lblDegree
BorderColor = &H0000FFFF&
Height = 75
Index = 2
Left = 1935
Shape = 3 'Circle
Top = 4830
Width = 60
End
Begin VB.Shape lblDegree
BorderColor = &H0000FFFF&
Height = 75
Index = 1
Left = 2685
Shape = 3 'Circle
Top = 4830
Width = 60
End
Begin VB.Shape lblDegree
BorderColor = &H0000FFFF&
Height = 75
Index = 0
Left = 3390
Shape = 3 'Circle
Top = 4830
Width = 60
End
Begin VB.Label lbl90
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "90"
BeginProperty Font
Name = "Verdana"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = -1 'True
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000FFFF&
Height = 195
Left = 1695
TabIndex = 47
Top = 4890
Width = 210
End
Begin VB.Label lblZero
AutoSize = -1 'True
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "0"
BeginProperty Font
Name = "Verdana"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = -1 'True
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000FFFF&
Height = 195
Left = 3255
TabIndex = 46
Top = 4875
Width = 105
End
Begin VB.Label lbl45
AutoSize = -1 'True
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "45"
BeginProperty Font
Name = "Verdana"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = -1 'True
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000FFFF&
Height = 195
Left = 2460
TabIndex = 45
Top = 4875
Width = 210
End
Begin VB.Label Label5
Alignment = 2 'Center
BackColor = &H00000000&
Caption = "GPS Data"
BeginProperty Font
Name = "Verdana"
Size = 13.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00FFFFFF&
Height = 315
Left = 12375
TabIndex = 44
Top = 750
Width = 1710
End
Begin VB.Shape Shape6
BorderColor = &H00FFFFFF&
BorderWidth = 2
Height = 4215
Left = 11940
Shape = 4 'Rounded Rectangle
Top = 885
Width = 2460
End
Begin VB.Label lblPDOP
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "PDOP:"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H008080FF&
Height = 255
Left = 12030
TabIndex = 43
Top = 3480
Width = 1380
End
Begin VB.Label lblDate
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "Date:"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00FFC0FF&
Height = 450
Left = 12030
TabIndex = 42
Top = 4635
Width = 2445
End
Begin VB.Label lblUTC
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "Time:"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00FFC0FF&
Height = 270
Left = 12030
TabIndex = 41
Top = 4380
Width = 2370
End
Begin VB.Label lblSpeed
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "Speed:"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00E1AF73&
Height = 270
Left = 12090
TabIndex = 40
Top = 1860
Width = 2175
End
Begin VB.Label lblMagVar
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "Magnetic Deviation:"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0080C0FF&
Height = 480
Left = 12090
TabIndex = 39
Top = 2580
Width = 2250
End
Begin VB.Label lblSatsInUse
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "Sats In Use:"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0080FF80&
Height = 285
Left = 12030
TabIndex = 38
Top = 4110
Width = 2040
End
Begin VB.Label lblAltitude
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "Altitude:"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00E1AF73&
Height = 255
Left = 12090
TabIndex = 37
Top = 1590
Width = 2175
End
Begin ComctlLib.ImageList ImageList1
Left = 6720
Top = 7095
_ExtentX = 1005
_ExtentY = 1005
BackColor = -2147483643
ImageWidth = 16
ImageHeight = 16
MaskColor = 12632256
UseMaskColor = 0 'False
_Version = 327682
BeginProperty Images {0713E8C2-850A-101B-AFC0-4210102A8DA7}
NumListImages = 9
BeginProperty ListImage1 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":9C2C
Key = ""
EndProperty
BeginProperty ListImage2 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":A16E
Key = ""
EndProperty
BeginProperty ListImage3 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":A4C0
Key = ""
EndProperty
BeginProperty ListImage4 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":A812
Key = ""
EndProperty
BeginProperty ListImage5 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":AB64
Key = ""
EndProperty
BeginProperty ListImage6 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":AC76
Key = ""
EndProperty
BeginProperty ListImage7 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":AD88
Key = ""
EndProperty
BeginProperty ListImage8 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":AE82
Key = ""
EndProperty
BeginProperty ListImage9 {0713E8C3-850A-101B-AFC0-4210102A8DA7}
Picture = "frmDocument.frx":AF94
Key = ""
EndProperty
EndProperty
End
Begin VB.Label lblVDOP
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "VDOP: 00.0"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H008080FF&
Height = 330
Left = 12030
TabIndex = 35
Top = 3015
Width = 1950
End
Begin VB.Label lblHDOP
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "HDOP: 00.0"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H008080FF&
Height = 255
Left = 12030
TabIndex = 34
Top = 3255
Width = 1875
End
Begin VB.Label lblFix
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "Fix Status: NA"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0080FF80&
Height = 270
Left = 12030
TabIndex = 33
Top = 3735
Width = 2325
End
Begin VB.Label lblGeoidal
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "Geoidal Separation: -000.0 M"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0080C0FF&
Height = 465
Left = 12090
TabIndex = 32
Top = 2100
Width = 2340
End
Begin VB.Label lblY
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "Y: 00.00000"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00E1AF73&
Height = 240
Left = 12090
TabIndex = 31
Top = 1335
Width = 2220
End
Begin VB.Label lblX
BackColor = &H00000000&
BackStyle = 0 'Transparent
Caption = "X: -000.000000"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00E1AF73&
Height = 255
Left = 12090
TabIndex = 30
Top = 1080
Width = 2205
End
Begin VB.Label labSNR
BackColor = &H00000000&
Caption = "Label4"
BeginProperty Font
Name = "Verdana"
Size = 7.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000C000&
Height = 240
Index = 7
Left = 2955
TabIndex = 27
Top = 2505
Width = 255
End
Begin VB.Label labSNR
BackColor = &H00000000&
Caption = "Label4"
BeginProperty Font
Name = "Verdana"
Size = 7.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000C000&
Height = 240
Index = 6
Left = 2595
TabIndex = 26
Top = 2505
Width = 255
End
Begin VB.Label labSNR
BackColor = &H00000000&
Caption = "Label4"
BeginProperty Font
Name = "Verdana"
Size = 7.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000C000&
Height = 240
Index = 5
Left = 2235
TabIndex = 25
Top = 2505
Width = 255
End
Begin VB.Label labSNR
BackColor = &H00000000&
Caption = "Label4"
BeginProperty Font
Name = "Verdana"
Size = 7.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000C000&
Height = 240
Index = 4
Left = 1875
TabIndex = 24
Top = 2505
Width = 255
End
Begin VB.Label labSNR
BackColor = &H00000000&
Caption = "Label4"
BeginProperty Font
Name = "Verdana"
Size = 7.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000C000&
Height = 240
Index = 3
Left = 1515
TabIndex = 23
Top = 2505
Width = 255
End
Begin VB.Label labSNR
BackColor = &H00000000&
Caption = "Label4"
BeginProperty Font
Name = "Verdana"
Size = 7.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000C000&
Height = 240
Index = 2
Left = 1155
TabIndex = 22
Top = 2505
Width = 255
End
Begin VB.Label labSNR
BackColor = &H00000000&
Caption = "Label4"
BeginProperty Font
Name = "Verdana"
Size = 7.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000C000&
Height = 240
Index = 1
Left = 795
TabIndex = 21
Top = 2505
Width = 255
End
Begin VB.Label labSNR
BackColor = &H00000000&
Caption = "Label4"
BeginProperty Font
Name = "Verdana"
Size = 7.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000C000&
Height = 240
Index = 0
Left = 435
TabIndex = 20
Top = 2505
Width = 255
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 22
X1 = 120.623
X2 = 121.421
Y1 = 241.497
Y2 = 242.295
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 21
X1 = 119.626
X2 = 124.411
Y1 = 248.482
Y2 = 248.482
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 20
X1 = 118.629
X2 = 124.212
Y1 = 253.472
Y2 = 253.472
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 19
X1 = 116.635
X2 = 128.598
Y1 = 260.457
Y2 = 260.457
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 18
X1 = 112.648
X2 = 130.991
Y1 = 268.241
Y2 = 267.443
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 17
X1 = 108.66
X2 = 136.507
Y1 = 274.428
Y2 = 274.428
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 3
Index = 16
X1 = 105.67
X2 = 138.301
Y1 = 282.412
Y2 = 282.412
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 4
Index = 15
X1 = 100.685
X2 = 142.089
Y1 = 290.395
Y2 = 290.395
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 14
X1 = 113.645
X2 = 129.595
Y1 = 297.38
Y2 = 297.38
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 13
X1 = 114.642
X2 = 130.592
Y1 = 306.362
Y2 = 306.362
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 12
X1 = 113.645
X2 = 129.595
Y1 = 314.345
Y2 = 314.345
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 11
X1 = 114.642
X2 = 130.592
Y1 = 322.328
Y2 = 322.328
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 10
X1 = 115.639
X2 = 131.589
Y1 = 330.312
Y2 = 330.312
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 9
X1 = 114.642
X2 = 130.592
Y1 = 338.295
Y2 = 338.295
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 8
X1 = 114.642
X2 = 130.592
Y1 = 346.279
Y2 = 346.279
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 7
X1 = 114.642
X2 = 130.592
Y1 = 354.262
Y2 = 354.262
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 6
X1 = 114.642
X2 = 130.592
Y1 = 362.245
Y2 = 362.245
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 5
X1 = 114.642
X2 = 130.592
Y1 = 370.229
Y2 = 370.229
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 4
X1 = 114.642
X2 = 130.592
Y1 = 378.212
Y2 = 378.212
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 3
X1 = 114.642
X2 = 130.592
Y1 = 386.195
Y2 = 386.195
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 2
X1 = 114.642
X2 = 130.592
Y1 = 394.179
Y2 = 394.179
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 1
X1 = 114.642
X2 = 130.592
Y1 = 402.162
Y2 = 402.162
End
Begin VB.Line norLine
BorderColor = &H00FFFFFF&
BorderWidth = 2
Index = 0
X1 = 114.642
X2 = 130.592
Y1 = 410.146
Y2 = 410.146
End
Begin VB.Label Label1
BackColor = &H00000000&
Caption = "Satellite Geometry"
BeginProperty Font
Name = "Verdana"
Size = 13.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00FFFFFF&
Height = 345
Left = 420
TabIndex = 17
Top = 2715
Width = 2910
End
Begin VB.Shape Shape4
BorderColor = &H00FFFFFF&
BorderWidth = 2
Height = 3735
Left = 150
Shape = 4 'Rounded Rectangle
Top = 2970
Width = 3375
End
Begin VB.Label Label3
BackColor = &H00000000&
Caption = "Signal to Noise Ratio"
BeginProperty Font
Name = "Verdana"
Size = 13.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00FFFFFF&
Height = 360
Left = 240
TabIndex = 16
Top = 645
Width = 3345
End
Begin VB.Shape Shape1
BorderColor = &H00FFFFFF&
BorderWidth = 2
Height = 1935
Left = 105
Shape = 4 'Rounded Rectangle
Top = 840
Width = 3375
End
Begin VB.Shape Shape2
BorderColor = &H00808080&
BorderWidth = 3
Height = 1530
Left = 1080
Shape = 3 'Circle
Top = 4095
Width = 1530
End
Begin VB.Line Line1
BorderColor = &H000000C0&
BorderStyle = 3 'Dot
X1 = 121.62
X2 = 121.62
Y1 = 221.538
Y2 = 425.114
End
Begin VB.Line Line2
BorderColor = &H000000C0&
BorderStyle = 3 'Dot
X1 = 21.931
X2 = 224.299
Y1 = 324.324
Y2 = 324.324
End
Begin VB.Shape Shape3
BackColor = &H00000F01&
BackStyle = 1 'Opaque
BorderColor = &H00808080&
BorderWidth = 3
Height = 3060
Left = 315
Shape = 3 'Circle
Top = 3345
Width = 3060
End
Begin VB.Label Label2
AutoSize = -1 'True
BackColor = &H00000000&
Caption = "NORTH"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000C0&
Height = 270
Index = 0
Left = 1515
TabIndex = 18
Top = 3045
Width = 855
End
Begin VB.Label Label2
AutoSize = -1 'True
BackColor = &H00000000&
Caption = "SOUTH"
BeginProperty Font
Name = "Verdana"
Size = 10.5
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000C0&
Height = 270
Index = 1
Left = 1515
TabIndex = 19
Top = 6420
Width = 840
End
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim sArray() As String ' global array to hold NMEA sentences (strings)
Dim sCnt As Integer ' integer to hold NMEA sentence count
Public pnt As MapObjects2.Point ' recorded point (GPS)
Dim lineSeg As MapObjects2.Line ' line to target
Dim targetPt As MapObjects2.Point ' target point
Public demLayer As New MapObjects2.ImageLayer
Public OPLayer As MapObjects2.MapLayer
Public VSLayer As MapObjects2.MapLayer
Dim Movement As Boolean
'
Public Function NMEAtoScreenY(Elevation As Byte, Azimuth As Integer, ySize As Integer) As Integer
'This function converts elevation and azimuth to pixels (Y-coord)
'O.C. Ray Bivens, Dec 98
Const DegreestoRadians = 0.01744
Dim Length As Double
Dim ChangeSign As Integer
Dim Res1 As Integer
Dim Res2 As Double
Length = Abs(Elevation - 90) * Cos(Azimuth * DegreestoRadians)
ChangeSign = CInt(Length * -1)
Res1 = Abs(ChangeSign + 90)
Res2 = 180 / ySize
NMEAtoScreenY = CInt(Res1 / Res2)
End Function
Public Function NMEAtoScreenX(Elevation As Byte, Azimuth As Integer, xSize As Integer) As Integer
'This function converts elevation and azimuth to pixels (X-coord)
'O.C. Ray Bivens, Dec 98
Const DegreestoRadians = 0.01744
Dim Length As Double
Dim ChangeSign As Integer
Dim Res1 As Integer
Dim Res2 As Double
Length = Abs(Elevation - 90) * Sin(Azimuth * DegreestoRadians)
ChangeSign = CDbl(Length)
Res1 = Abs(ChangeSign + 90)
Res2 = 180 / xSize
NMEAtoScreenX = CInt(Res1 / Res2)
End Function
Function RotateX(Xpos As Integer, Ypos As Integer, RotDegrees As Single, xCenter As Integer, yCenter As Integer) As Integer
' This will rotate the given Xcoord
Dim yTemp As Integer
Dim xTemp As Integer
Dim RotCosin As Double
Dim RotSin As Double
Dim newX As Integer
Dim pi As Double
Dim rotation As Double
pi = 4 * Atn(1)
rotation = RotDegrees * pi / 180
RotCosin = Cos(rotation)
RotSin = Sin(rotation)
yTemp = Ypos - yCenter
xTemp = Xpos - xCenter
newX = ((xTemp * RotCosin) - (yTemp * RotSin)) + xCenter
RotateX = newX
End Function
Function RotateY(Xpos As Integer, Ypos As Integer, RotDegrees As Single, xCenter As Integer, yCenter As Integer) As Integer
' This will rotate the given Ycoord
Dim yTemp As Integer
Dim xTemp As Integer
Dim RotCosin As Double
Dim RotSin As Double
Dim newY As Integer
Dim pi As Double
Dim rotation As Double
pi = 4 * Atn(1)
rotation = RotDegrees * pi / 180
RotCosin = Cos(rotation)
RotSin = Sin(rotation)
xTemp = Xpos - xCenter
yTemp = Ypos - yCenter
newY = ((yTemp * RotCosin) + (xTemp * RotSin) + yCenter)
RotateY = newY
End Function
Sub RotateArrow(Degrees As Single)
'Rotates graphics on the screen (North arrow)
Dim n As Integer
Dim skip As Integer
skip = 409
For n = 0 To 14
DoEvents
norLine(n).X1 = RotateX(112, skip, Degrees, 120, 322)
norLine(n).Y1 = RotateY(112, skip, Degrees, 120, 322)
norLine(n).X2 = RotateX(128, skip, Degrees, 120, 322)
norLine(n).Y2 = RotateY(128, skip, Degrees, 120, 322)
skip = skip - 8
Next n
DoEvents
With norLine(15)
.X1 = RotateX(104, 289, Degrees, 120, 322)
.Y1 = RotateY(104, 289, Degrees, 120, 322)
.X2 = RotateX(136, 289, Degrees, 120, 322)
.Y2 = RotateY(136, 289, Degrees, 120, 322)
End With
With norLine(16)
.X1 = RotateX(104, 281, Degrees, 120, 322)
.Y1 = RotateY(104, 281, Degrees, 120, 322)
.X2 = RotateX(136, 281, Degrees, 120, 322)
.Y2 = RotateY(136, 281, Degrees, 120, 322)
End With
With norLine(17)
.X1 = RotateX(106, 273, Degrees, 120, 322)
.Y1 = RotateY(106, 273, Degrees, 120, 322)
.X2 = RotateX(134, 273, Degrees, 120, 322)
.Y2 = RotateY(134, 273, Degrees, 120, 322)
End With
With norLine(18)
.X1 = RotateX(108, 265, Degrees, 120, 322)
.Y1 = RotateY(108, 265, Degrees, 120, 322)
.X2 = RotateX(132, 265, Degrees, 120, 322)
.Y2 = RotateY(132, 265, Degrees, 120, 322)
End With
With norLine(19)
.X1 = RotateX(110, 257, Degrees, 120, 322)
.Y1 = RotateY(110, 257, Degrees, 120, 322)
.X2 = RotateX(130, 257, Degrees, 120, 322)
.Y2 = RotateY(130, 257, Degrees, 120, 322)
End With
With norLine(20)
.X1 = RotateX(112, 249, Degrees, 120, 322)
.Y1 = RotateY(112, 249, Degrees, 120, 322)
.X2 = RotateX(128, 249, Degrees, 120, 322)
.Y2 = RotateY(128, 249, Degrees, 120, 322)
End With
With norLine(21)
.X1 = RotateX(118, 241, Degrees, 120, 322)
.Y1 = RotateY(118, 241, Degrees, 120, 322)
.X2 = RotateX(122, 241, Degrees, 120, 322)
.Y2 = RotateY(122, 241, Degrees, 120, 322)
End With
With norLine(22)
.X1 = RotateX(119, 233, Degrees, 120, 322)
.Y1 = RotateY(119, 233, Degrees, 120, 322)
.X2 = RotateX(121, 233, Degrees, 120, 322)
.Y2 = RotateY(121, 233, Degrees, 120, 322)
End With
End Sub
Private Sub playNMEA(sArray As Variant)
'play the NMEA file or stream from GPS...
Dim gsv As GPGSV
Dim rmc As GPRMC
Dim gga As GPGGA
Dim gsa As GPGSA
Dim Utils As New CParseUtils
Dim Sentence As Integer
Dim pcsUTM As New MapObjects2.ProjCoordSys
Dim gcsGeo As New MapObjects2.GeoCoordSys
Dim hLine As MapObjects2.Line, vLine As MapObjects2.Line
Dim hPoints As MapObjects2.Points, vPoints As MapObjects2.Points
Dim hPntA As MapObjects2.Point, vPntA As MapObjects2.Point
Dim hPntB As MapObjects2.Point, vPntB As MapObjects2.Point
Dim ptbuffer As MapObjects2.Polygon
Dim pts As MapObjects2.Points
Dim oEvent As MapObjects2.GeoEvent
Dim iAzimuth As Integer
Dim n As Integer ' control var...
Dim VSRecs As MapObjects2.Recordset 'viewshed test
Dim i As Integer
For i = 0 To 7
labSV(i).Visible = True
Next
On Error Resume Next
tlbMain.Buttons("target").Enabled = True
For Sentence = 0 To sCnt - 1
If Movement = True Then
If Utils.Parse(sArray(Sentence), 1) = "$GPGSV" Then
Set gsv = New GPGSV
With gsv
.Sentence = sArray(Sentence)
If .MessageNumber = 1 Then
DoEvents
Fill(0).Top = .SNR(0)
Fill(1).Top = .SNR(1)
Fill(2).Top = .SNR(2)
Fill(3).Top = .SNR(3)
labSNR(0) = .PRN(0)
labSNR(1) = .PRN(1)
labSNR(2) = .PRN(2)
labSNR(3) = .PRN(3)
labSV(0).Left = NMEAtoScreenX(.Elevation(0), .Azimuth(0), 202) + 15
labSV(0).Top = NMEAtoScreenY(.Elevation(0), .Azimuth(0), 204) + 212
labSV(0).Caption = Chr(32) & Chr(32) & .PRN(0) & vbCrLf & Chr(149) & " " & .Azimuth(0) & Chr(176) & vbCrLf & Chr(32) & Chr(32) & Chr(32) & .Elevation(0) & Chr(176)
labSV(1).Left = NMEAtoScreenX(.Elevation(1), .Azimuth(1), 202) + 15
labSV(1).Top = NMEAtoScreenY(.Elevation(1), .Azimuth(1), 204) + 212
labSV(1).Caption = Chr(32) & Chr(32) & .PRN(1) & vbCrLf & Chr(149) & " " & .Azimuth(1) & Chr(176) & vbCrLf & Chr(32) & Chr(32) & Chr(32) & .Elevation(1) & Chr(176)
labSV(2).Left = NMEAtoScreenX(.Elevation(2), .Azimuth(2), 202) + 15
labSV(2).Top = NMEAtoScreenY(.Elevation(2), .Azimuth(2), 204) + 212
labSV(2).Caption = Chr(32) & Chr(32) & .PRN(2) & vbCrLf & Chr(149) & " " & .Azimuth(2) & Chr(176) & vbCrLf & Chr(32) & Chr(32) & Chr(32) & .Elevation(2) & Chr(176)
labSV(3).Left = NMEAtoScreenX(.Elevation(3), .Azimuth(3), 202) + 15
labSV(3).Top = NMEAtoScreenY(.Elevation(3), .Azimuth(3), 204) + 212
labSV(3).Caption = Chr(32) & Chr(32) & .PRN(3) & vbCrLf & Chr(149) & " " & .Azimuth(3) & Chr(176) & vbCrLf & Chr(32) & Chr(32) & Chr(32) & .Elevation(3) & Chr(176)
' change sat color to red if no signal...
For n = 0 To 3
If Int(.SNR(n)) = 0 Then
labSV(n).ForeColor = RGB(255, 0, 0)
Else
labSV(n).ForeColor = RGB(0, 255, 0)
End If
Next n
End If
If .MessageNumber = 2 Then
DoEvents
Fill(4).Top = .SNR(0)
Fill(5).Top = .SNR(1)
Fill(6).Top = .SNR(2)
Fill(7).Top = .SNR(3)
labSNR(4) = .PRN(0)
labSNR(5) = .PRN(1)
labSNR(6) = .PRN(2)
labSNR(7) = .PRN(3)
labSV(4).Left = NMEAtoScreenX(.Elevation(0), .Azimuth(0), 202) + 15
labSV(4).Top = NMEAtoScreenY(.Elevation(0), .Azimuth(0), 204) + 212
labSV(4).Caption = Chr(32) & Chr(32) & .PRN(0) & vbCrLf & Chr(149) & " " & .Azimuth(0) & Chr(176) & vbCrLf & Chr(32) & Chr(32) & Chr(32) & .Elevation(0) & Chr(176)
labSV(5).Left = NMEAtoScreenX(.Elevation(1), .Azimuth(1), 202) + 15
labSV(5).Top = NMEAtoScreenY(.Elevation(1), .Azimuth(1), 204) + 212
labSV(5).Caption = Chr(32) & Chr(32) & .PRN(1) & vbCrLf & Chr(149) & " " & .Azimuth(1) & Chr(176) & vbCrLf & Chr(32) & Chr(32) & Chr(32) & .Elevation(1) & Chr(176)
labSV(6).Left = NMEAtoScreenX(.Elevation(2), .Azimuth(2), 202) + 15
labSV(6).Top = NMEAtoScreenY(.Elevation(2), .Azimuth(2), 204) + 212
labSV(6).Caption = Chr(32) & Chr(32) & .PRN(2) & vbCrLf & Chr(149) & " " & .Azimuth(2) & Chr(176) & vbCrLf & Chr(32) & Chr(32) & Chr(32) & .Elevation(2) & Chr(176)
labSV(7).Left = NMEAtoScreenX(.Elevation(3), .Azimuth(3), 202) + 15
labSV(7).Top = NMEAtoScreenY(.Elevation(3), .Azimuth(3), 204) + 212
labSV(7).Caption = Chr(32) & Chr(32) & .PRN(3) & vbCrLf & Chr(149) & " " & .Azimuth(3) & Chr(176) & vbCrLf & Chr(32) & Chr(32) & Chr(32) & .Elevation(3) & Chr(176)
' change sat color to red if no signal...
For n = 0 To 3
If Int(.SNR(n)) = 0 Then
labSV(n + 4).ForeColor = RGB(255, 0, 0)
Else
labSV(n + 4).ForeColor = RGB(0, 255, 0)
End If
Next n
End If
End With
End If
If Utils.Parse(sArray(Sentence), 1) = "$GPRMC" Then
Set rmc = New GPRMC
DoEvents
With rmc
.Sentence = sArray(Sentence)
RotateArrow (.TrackMadeGood)
lblX.Caption = "X: " & Format(DM2DD(.Longitude), "000.0000") & " " & .LonHemis
lblY.Caption = "Y: " & Format(DM2DD(.Latitude), "00.0000") & " " & .LatHemis
Set pnt = New MapObjects2.Point
pnt.X = DM2DD(.Longitude)
pnt.Y = DM2DD(.Latitude)
' transform the point to a new coordinate system...
pcsUTM.Type = moProjCS_WGS1972UTM_10N
gcsGeo.Type = moGeoCS_Clarke1866
Set pnt = pcsUTM.Transform(gcsGeo, pnt)
''''''''''''''''draw stuff on the map control'''''''''''''''''''''''''''''
If mapDisp.TrackingLayer.EventCount < 4 Then 'if events don't exist, create them...
Set hPntA = New MapObjects2.Point
hPntA.X = mapDisp.FullExtent.Left * 2
hPntA.Y = pnt.Y
Set hPntB = New MapObjects2.Point
hPntB.X = mapDisp.FullExtent.Right * 2
hPntB.Y = pnt.Y
Set hPoints = New MapObjects2.Points
With hPoints
.Add hPntA
.Add hPntB
End With
Set hLine = New MapObjects2.Line
Set vPntA = New MapObjects2.Point
vPntA.X = pnt.X
vPntA.Y = mapDisp.FullExtent.Top * 2
Set vPntB = New MapObjects2.Point
vPntB.X = pnt.X
vPntB.Y = mapDisp.FullExtent.Bottom * 2
Set vPoints = New MapObjects2.Points
With vPoints
.Add vPntA
.Add vPntB
End With
Set vLine = New MapObjects2.Line
hLine.Parts.Add hPoints ' horizontal line
vLine.Parts.Add vPoints ' vert line
Set ptbuffer = pnt.Buffer(1500)
With mapDisp.TrackingLayer
.AddEvent ptbuffer, 0
.AddEvent hLine, 1
.AddEvent vLine, 1
.AddEvent pnt, 2
End With
Else
With mapDisp.TrackingLayer ' if events exist, move them...
.Event(0).MoveTo pnt.X, pnt.Y
.Event(1).MoveTo pnt.X, pnt.Y
.Event(2).MoveTo pnt.X, pnt.Y
.Event(3).MoveTo pnt.X, pnt.Y
End With
End If
'target point...
If Not targetPt Is Nothing Then
Set lineSeg = New MapObjects2.Line
Set pts = New MapObjects2.Points
DoEvents
If Not pnt Is Nothing Then
With pts
.Add pnt
.Add targetPt
End With
lineSeg.Parts.Add pts
Set oEvent = mapDisp.TrackingLayer.FindEvent("TargetLine")
If Not oEvent Is Nothing Then
mapDisp.TrackingLayer.RemoveEvent oEvent.Index
End If
With mapDisp.TrackingLayer
.AddEvent lineSeg, 3
.Event(.EventCount - 1).Tag = "TargetLine"
End With
iAzimuth = Azimuth(pnt, targetPt)
lblBackAzimuth = "Back Azimuth: " & Format(BackAzimuth(iAzimuth), "00#") & Chr(176)
lblAzimuth = "Azimuth: " & Format(iAzimuth, "00#") & Chr(176)
lblDistance = "Distance: " & Format(pnt.DistanceTo(targetPt), "#") & " M"
lblTarget = "TGT: (" & Fix(targetPt.X) & ", " & Fix(targetPt.Y) & ")"
End If
Set pts = Nothing
Set oEvent = Nothing
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'check if in OP's viewshed
Set VSRecs = VSLayer.SearchByDistance(pnt, 0, "")
If VSRecs.Count > 0 Then
Text1.Visible = True
Else
Text1.Visible = False
End If
''''''''''''''''''''''''''
lblMagVar.Caption = "Magnetic Variation: " & .MagneticVariation & " " & .MagDeviation
lblSpeed.Caption = "Speed: " & Fix(.Speed * 1.15) & " MPH"
lblUTC.Caption = "Time (ZULU): " & .UTC
lblDate.Caption = "Date (ZULU): " & .UTDate
End With
End If
If Utils.Parse(sArray(Sentence), 1) = "$GPGGA" Then
Set gga = New GPGGA
DoEvents
With gga
.Sentence = sArray(Sentence)
lblGeoidal.Caption = "Geoidal Separation: " & .Separation & " " & .SeparationUnits
lblAltitude = "Altitude: " & .Altitude & " " & .AltitudeUnits
lblSatsInUse = "SVs In Use: " & .SatsInUse
End With
End If
If Utils.Parse(sArray(Sentence), 1) = "$GPGSA" Then
Set gsa = New GPGSA
DoEvents
With gsa
.Sentence = sArray(Sentence)
lblFix.Caption = "Fix Status: " & .FixStatus
lblHDOP.Caption = "HDOP: " & .HDOP
lblVDOP.Caption = "VDOP: " & .VDOP
lblPDOP.Caption = "PDOP: " & .PDOP
End With
End If
With progLine
.X1 = Sentence / sCnt * Picture1.ScaleWidth
.X2 = Sentence / sCnt * Picture1.ScaleWidth
End With
progFill.Visible = True
progFill.Width = Sentence / sCnt * Picture1.ScaleWidth
'test ''''''''''
Dim ext As MapObjects2.Rectangle
Dim poly As MapObjects2.Polygon
Set poly = pnt.Buffer(3000)
Set ext = poly.Extent
Set frmMicro.mapMicro.Extent = ext
Set poly = Nothing
Set ext = Nothing
''''''''''
End If ''test Movement
Next Sentence
With progLine
.X1 = 0
.X2 = 0
End With
progFill.Width = 0
Set Utils = Nothing
Set gsv = Nothing
Set rmc = Nothing
Set gga = Nothing
Set gsa = Nothing
Set pcsUTM = Nothing
Set gcsGeo = Nothing
Set hLine = Nothing
Set vLine = Nothing
Set hPoints = Nothing
Set vPoints = Nothing
Set hPntA = Nothing
Set vPntA = Nothing
Set hPntB = Nothing
Set vPntB = Nothing
Set ptbuffer = Nothing
With tlbMain
.Buttons(1).Enabled = True
.Buttons(2).Enabled = False
.Buttons(4).Enabled = True
End With
tlbMain.Buttons("target").Enabled = False
End Sub
Private Sub FileOpen()
' read NMEA file into a global array to be parsed later...
Dim sFile As String
Dim Sentence
On Error GoTo errorhandle
With dlgCommonDialog
.Filter = "All Files (*.*)|*.*"
.ShowOpen
If Len(.FileName) = 0 Then
Exit Sub
End If
sFile = .FileName
End With
Open sFile For Input As #1
sCnt = 0
'read file into global array...
Do While Not EOF(1)
Line Input #1, Sentence
ReDim Preserve sArray(sCnt)
sArray(sCnt) = Sentence
sCnt = sCnt + 1
Loop
Close #1
With tlbMain
.Buttons(4).Enabled = False
.Buttons(2).Enabled = True
End With
Exit Sub
errorhandle:
Close #1
' quick and dirty error-handling...
MsgBox "Error opening file."
End Sub
Private Sub Command1_Click()
Load frmMicro
frmMicro.Show
End Sub
Private Sub Check1_Click()
VSLayer.Visible = Not VSLayer.Visible
OPLayer.Visible = VSLayer.Visible
mapDisp.Refresh
End Sub
Private Sub Form_Load()
Dim oConnect As New DataConnection
Dim oDataset As GeoDataset
Dim sName As String
Dim pcsUTM As New MapObjects2.ProjCoordSys
Dim rect As New MapObjects2.Rectangle
tlbMain.Buttons("target").Enabled = False
Movement = True
With rect
.Left = 1006605.4625 '1005931 '
.Right = 1046173.92916667 '1059888
.Top = 3817990.77326389 '3820298 '
.Bottom = 3776856.05479167 ''3768059 '
End With
'load DEM
demLayer.File = App.Path & "\data\c_socal.sid"
mapDisp.Layers.Add demLayer
'load viewshed
oConnect.Database = App.Path & "\data\"
If Not oConnect.Connect Then Exit Sub
sName = "op_visible.shp"
Set oDataset = oConnect.FindGeoDataset(sName)
If oDataset Is Nothing Then Exit Sub
Set VSLayer = New MapLayer
VSLayer.GeoDataset = oDataset
VSLayer.Visible = True
With VSLayer.Symbol
.SymbolType = moFillSymbol
.Style = moDiagonalCrossFill
.Color = moGray
.Outline = True
.OutlineColor = moMaroon
End With
mapDisp.Layers.Add VSLayer
'load Obs point
sName = "op.shp"
Set oDataset = oConnect.FindGeoDataset(sName)
If oDataset Is Nothing Then Exit Sub
Set OPLayer = New MapLayer
With OPLayer
.GeoDataset = oDataset
.Symbol.Color = RGB(250, 5, 152)
.Symbol.Size = mapDisp.Extent.Width / 7000
.Symbol.Style = moTrueTypeMarker
.Symbol.Font = "verdana" '215 "ESRI Environmental & Icons"
.Symbol.CharacterIndex = 215 ' "240"
End With
mapDisp.Layers.Add OPLayer
pcsUTM.Type = moProjCS_WGS1972UTM_10N
mapDisp.CoordinateSystem = pcsUTM
Set mapDisp.Extent = rect
With tlbMain
.Buttons(1).Enabled = True
.Buttons(2).Enabled = False
.Buttons(4).Enabled = True
.Buttons(5).Enabled = False
End With
With mapDisp.TrackingLayer
.SymbolCount = 6
.Symbol(0).SymbolType = moFillSymbol
.Symbol(0).Style = moTransparentFill
.Symbol(0).Size = 2
.Symbol(0).OutlineColor = moBlue
.Symbol(1).SymbolType = moLineSymbol
.Symbol(1).Style = moSolidLine
.Symbol(1).Size = 2
.Symbol(1).Color = moBlack
.Symbol(2).SymbolType = moPointSymbol
.Symbol(2).Style = moCrossMarker
.Symbol(2).Size = 12
.Symbol(2).Color = moWhite
.Symbol(3).SymbolType = moLineSymbol
.Symbol(3).Style = moSolidLine
.Symbol(3).Size = 2
.Symbol(3).Color = moWhite
.Symbol(4).SymbolType = moPointSymbol
.Symbol(4).Style = moTrueTypeMarker
.Symbol(4).Font = "Wingdings 2"
.Symbol(4).CharacterIndex = 201
'.Symbol(4).Style = moCrossMarker
.Symbol(4).Size = 22
.Symbol(4).Color = moBlack
.Symbol(5).SymbolType = moFillSymbol
.Symbol(5).Style = moTransparentFill
.Symbol(5).Size = 2
.Symbol(5).OutlineColor = moRed
End With
Dim i As Integer
For i = 0 To 7
labSV(i).Visible = False
Next
Set rect = Nothing
Set demLayer = Nothing
Set pcsUTM = Nothing
End Sub
Private Sub Form_Unload(Cancel As Integer)
If MSComm1.PortOpen Then
Cancel = True
MsgBox "You must close the COM port before exiting."
Else
Unload frmSettings
Set pnt = Nothing
Set lineSeg = Nothing
Set targetPt = Nothing
End
End If
End Sub
Private Sub mapDisp_AfterTrackingLayerDraw(ByVal hDC As stdole.OLE_HANDLE)
' If Not lineSeg Is Nothing Then
' Dim textsym As New MapObjects2.TextSymbol
' Dim fnt As New StdFont
' fnt.Name = "Lucida Console"
' 'fnt.Size = 7
' fnt.Bold = True
' Set textsym.Font = fnt
' With textsym
' .Color = moBlack
' .Height = 500
' .HorizontalAlignment = moAlignLeft
' .VerticalAlignment = moAlignCenter
' End With
' On Error Resume Next
' mapDisp.DrawText " " & Azimuth(pnt, targetPt) & Chr(176), lineSeg, textsym
' With textsym
' .HorizontalAlignment = moAlignRight
' .VerticalAlignment = moAlignCenter
' End With
' mapDisp.DrawText " " & BackAzimuth(Azimuth(pnt, targetPt)) & Chr(176) & " ", lineSeg, textsym
' Set textsym = Nothing
' Set fnt = Nothing
' End If
End Sub
Private Sub mapDisp_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim rect As MapObjects2.Rectangle
Dim targetBuffer As MapObjects2.Polygon
If tlbMain.Buttons("zoomin").Value = tbrPressed Then
Set rect = mapDisp.TrackRectangle
If Not rect Is Nothing Then
Set mapDisp.Extent = rect
Set rect = Nothing
End If
End If
If tlbMain.Buttons("zoomout").Value = tbrPressed Then
Set rect = mapDisp.Extent
rect.ScaleRectangle 2
Set mapDisp.Extent = rect
End If
If tlbMain.Buttons("pan").Value = tbrPressed Then
With mapDisp
.MousePointer = moPanning
.Pan
.MousePointer = moPan
End With
End If
If tlbMain.Buttons("target").Value = tbrPressed Then
Set targetPt = mapDisp.ToMapPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY)
'Set targetPt = mapDisp.ToMapPoint(X, Y)
'mapDisp.FlashShape targetPt, 4
Set targetBuffer = targetPt.Buffer(600)
With mapDisp.TrackingLayer
If .EventCount < 6 Then
.AddEvent targetPt, 4
.AddEvent targetBuffer, 5
.Event(4).Tag = "TargetPoint"
Else
.Event(4).MoveTo targetPt.X, targetPt.Y
.Event(5).MoveTo targetPt.X, targetPt.Y
End If
End With
End If
End Sub
Private Sub MSComm1_OnComm()
Dim InString As String
Dim Utils As New CParseUtils
Dim tempStr As String
Dim n As Integer
Dim cnt As Integer
Dim sArray() As String
InString = MSComm1.Input
cnt = Utils.CountParts(InString, Chr(10))
For n = 0 To cnt - 1
tempStr = Utils.Parse(InString, n, Chr(10))
ReDim Preserve sArray(n)
sArray(n) = tempStr
Next n
Set Utils = Nothing
sCnt = cnt
Call playNMEA(sArray)
End Sub
Private Sub tlbMain_ButtonClick(ByVal Button As ComctlLib.Button)
Select Case Button.Key
Case "fileopen"
Call FileOpen
Case "fileplay"
With tlbMain
.Buttons(1).Enabled = False
.Buttons(4).Enabled = False
End With
Call playNMEA(sArray)
Case "gpsconnect"
frmSettings.Show
Case "gpsdisconnect"
MSComm1.PortOpen = False
With tlbMain
.Buttons(5).Enabled = False
.Buttons(4).Enabled = True
.Buttons(1).Enabled = True
End With
Case "zoomin"
mapDisp.MousePointer = moZoomIn
Case "pan"
mapDisp.MousePointer = moPan
Case "extent"
Set mapDisp.Extent = mapDisp.FullExtent
Case "target"
mapDisp.MousePointer = moCross
Case "Stop"
Movement = False
End Select
End Sub
Public Function DM2DD(DegreeMinutes As String) As Double
'Converts Degree Minutes to Decimal Degrees. Should NOT BE
'used in other programs or other regions. This is a quick-fix
'for converting NMEA DM strings to DD. Only works when latitude
'is positive (N) and longitude is negative (W).
Dim Utils As New CParseUtils
Dim sDegree As String
Dim sMinute As String
If IsNumeric(DegreeMinutes) And Utils.CountParts(DegreeMinutes, ".") = 2 Then
If Len(Utils.Parse(DegreeMinutes, 1, ".")) = 4 Then
DM2DD = CByte(Left(Utils.Parse(DegreeMinutes, 1, "."), 2)) + (CDbl(Right(DegreeMinutes, Len(DegreeMinutes) - 2)) / 60)
End If
If Len(Utils.Parse(DegreeMinutes, 1, ".")) = 5 Then
DM2DD = CByte(Left(Utils.Parse(DegreeMinutes, 1, "."), 3)) + (CDbl(Right(DegreeMinutes, Len(DegreeMinutes) - 3)) / 60)
DM2DD = DM2DD * -1
End If
End If
Set Utils = Nothing
End Function
Private Function Azimuth(StartPoint As MapObjects2.Point, EndPoint As MapObjects2.Point) As Integer
' Given a starting point and an ending point, this function
' will return an angle in degrees from north, assuming
' that 'UP' is north on the map control.
' Ray Bivens Jan 99
Dim pointP As MapObjects2.Point
Dim opposite As Double, adjacent As Double
Dim pi As Double
Dim Ratio As Double
Dim Angle As Double
Dim Degrees As Double
Dim calcAngle As Double
pi = 4 * Atn(1)
Set pointP = New MapObjects2.Point
With pointP
.X = StartPoint.X
.Y = EndPoint.Y
End With
opposite = pointP.DistanceTo(EndPoint)
adjacent = StartPoint.DistanceTo(pointP)
Ratio = opposite / adjacent
Angle = Atn(Ratio)
Degrees = Angle * 180 / pi
If EndPoint.X > pnt.X And EndPoint.Y < pnt.Y Then
calcAngle = 90 - Degrees + 90
ElseIf EndPoint.X < pnt.X And EndPoint.Y < pnt.Y Then
calcAngle = Degrees + 180
ElseIf EndPoint.X < pnt.X And EndPoint.Y > pnt.Y Then
calcAngle = 90 - Degrees + 270
Else
calcAngle = Degrees
End If
Azimuth = CInt(calcAngle)
Set pointP = Nothing
End Function
Private Function BackAzimuth(Azimuth As Integer) As Integer
' Convert azimuth to back azimuth...
If Azimuth >= 180 Then
BackAzimuth = Azimuth - 180
Else
BackAzimuth = Azimuth + 180
End If
End Function