📄 gps.cs
字号:
//==========================================================================================
//
// OpenNETCF.IO.Serial.GPS
// Copyright (c) 2003-2006, OpenNETCF.org
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the OpenNETCF.org Shared Source License.
//
// This library is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the OpenNETCF.org Shared Source License
// for more details.
//
// You should have received a copy of the OpenNETCF.org Shared Source License
// along with this library; if not, email licensing@opennetcf.org to request a copy.
//
// If you wish to contact the OpenNETCF Advisory Board to discuss licensing, please
// email licensing@opennetcf.org.
//
// For general enquiries, email enquiries@opennetcf.org or visit our website at:
// http://www.opennetcf.org
//
//==========================================================================================
using System;
using OpenNETCF.IO.Serial;
using System.Threading;
using System.Text;
using System.Collections;
using System.IO;
using System.Globalization;
using Microsoft.Win32;
namespace OpenNETCF.IO.Serial.GPS
{
public class GPS
{
#region private members
Port cp=null;
string comport="COM1:";
BaudRates baudrate=BaudRates.CBR_4800;
BaudRates minbaudrate = BaudRates.CBR_4800;
BaudRates maxbaudrate = BaudRates.CBR_19200;
string strreceived="";
int sentencecount=0;
bool InitDistance = false;
private States state=States.Stopped;
private bool autodiscovery=false;
private Thread thrd=null;
private bool traceon=false;
private string tracefile=@"\gpslog.txt";
private bool demomodeon=false;
private string demofile=@"gpsdemo.txt";
string lasterror="";
private Position waypoint=null;
decimal distancetowaypoint=0;
decimal bearingtowaypoint=0;
decimal coursecorrection=0;
// Position dilution of precision
// The best value is near to 0
decimal pdop=50; // The max if it's not present
// Horizontal dilution of precision
// The best value is near to 0
decimal hdop=50; // The max if it's not present
// Vertical dilution of precision
// The best value is near to 0
decimal vdop=50; // The max if it's not present
// Maximum Allowable HDOP Error
// The best value is near to 0
decimal hdopmaxerror=6;
//number of satellites in view
int nbsatinview=0;
//number of satellites used
int nbsatused=0;
// Fix mode Auto,Manual
Fix_Mode fixmode=OpenNETCF.IO.Serial.GPS.Fix_Mode.Auto;
// Fix indicator NotSet,_2D,_3D
Fix_Indicator fixindicator=OpenNETCF.IO.Serial.GPS.Fix_Indicator.NotSet;
// Fix type NotSet, NoAltitude, WithAltitude
Fix_Type fixtype=OpenNETCF.IO.Serial.GPS.Fix_Type.NotSet;
// Fix typemode NotSet, SPS, DSPS, PPS, RTK
Fix_TypeMode fixtypemode=OpenNETCF.IO.Serial.GPS.Fix_TypeMode.NotSet;
#endregion
#region public members
public void DebugIt()
{
reset_gps_vars();
string gpsdata="";
try
{
nmea("$GPGSA,A,3,06,10,,,17,,,24,,30,,,3.9,3.7,1.0*39");
nmea("$GPGSA,A,3,16,15,21,18,,,,,,,,,25.0,11.6,22.1*0B");
nmea("$GPGSA,A,3,16,15,21,18,06,,,,,,,,6.9,4.0,5.6*35");
nmea("$GPRMC,130405.647,A,4333.2855,N,00130.5644,E,0.00,,040205,,*14");
nmea("$GPGSV,3,3,10,09,18,139,36,04,08,034,00*7D");
gpsdata="$GPGLL,4339.015,N,07953.247,W,051936,A*30";
nmea(gpsdata);
gpsdata="$GPGLL,4339.015,N,07953.247,W,051938,A*3E";
nmea(gpsdata);
gpsdata="$GPGLL,4339.015,N,07953.247,W,051940,A*31";
nmea(gpsdata);
gpsdata="$GPGLL,4339.015,N,07953.247,W,051942,A*33";
nmea(gpsdata);
gpsdata="$GPGLL,4339.015,N,07953.247,W,051944,A*35";
nmea(gpsdata);
gpsdata="$GPGLL,4339.015,N,07953.247,W,051946,A*37";
nmea(gpsdata);
gpsdata="$GPGLL,4339.015,N,07953.247,W,051948,A*39";
nmea(gpsdata);
gpsdata="$GPGLL,4339.015,N,07953.247,W,051950,A*30";
nmea(gpsdata);
gpsdata="$GPGLL,4339.015,N,07953.247,W,051952,A*32";
nmea(gpsdata);
gpsdata="$GPGLL,4339.015,N,07953.247,W,051954,A*34";
nmea(gpsdata);
gpsdata="$GPGLL,4339.015,N,07953.247,W,051956,A*36";
nmea(gpsdata);
gpsdata="$GPGLL,4339.015,N,07953.247,W,051958,A*38";
nmea(gpsdata);
gpsdata="$GPGLL,4339.048,N,07953.247,W,052000,A*37";
nmea(gpsdata);
gpsdata="$GPGLL,4339.096,N,07953.247,W,052002,A*36";
nmea(gpsdata);
gpsdata="$GPGLL,4339.144,N,07953.247,W,052004,A*3E";
nmea(gpsdata);
gpsdata="$GPGLL,4339.117,N,07953.323,W,052006,A*39";
nmea(gpsdata);
gpsdata="$GPGLL,4339.103,N,07953.386,W,052008,A*3D";
nmea(gpsdata);
gpsdata="$GPGLL,4339.088,N,07953.449,W,052010,A*32";
nmea(gpsdata);
gpsdata="$GPGLL,4339.073,N,07953.513,W,052012,A*3A";
nmea(gpsdata);
gpsdata="$GPGLL,4339.058,N,07953.576,W,052014,A*36";
nmea(gpsdata);
gpsdata="$GPGLL,4339.043,N,07953.639,W,052016,A*36";
nmea(gpsdata);
gpsdata="$GPGLL,4339.028,N,07953.702,W,052018,A*3C";
nmea(gpsdata);
gpsdata="$GPGLL,4339.013,N,07953.766,W,052020,A*3D";
nmea(gpsdata);
gpsdata="$GPGLL,4338.998,N,07953.829,W,052022,A*30";
nmea(gpsdata);
gpsdata="$GPGLL,4338.983,N,07953.892,W,052024,A*3C";
nmea(gpsdata);
gpsdata="$GPGLL,4338.968,N,07953.956,W,052026,A*32";
nmea(gpsdata);
gpsdata="$GPGLL,4338.953,N,07954.019,W,052028,A*31";
nmea(gpsdata);
gpsdata="$GPGLL,4338.938,N,07954.082,W,052030,A*37";
nmea(gpsdata);
gpsdata="$GPGLL,4338.923,N,07954.145,W,052032,A*35";
nmea(gpsdata);
gpsdata="$GPGLL,4338.908,N,07954.209,W,052034,A*31";
nmea(gpsdata);
gpsdata="$GPGLL,4338.893,N,07954.272,W,052036,A*3C";
nmea(gpsdata);
gpsdata="$GPGLL,4338.878,N,07954.335,W,052038,A*35";
nmea(gpsdata);
gpsdata="$GPGLL,4338.863,N,07954.399,W,052040,A*36";
nmea(gpsdata);
gpsdata="$GPGLL,4338.848,N,07954.462,W,052042,A*3E";
nmea(gpsdata);
gpsdata="$GPGLL,4338.833,N,07954.525,W,052044,A*36";
nmea(gpsdata);
gpsdata="$GPGLL,4338.818,N,07954.588,W,052046,A*3A";
nmea(gpsdata);
gpsdata="$GPGLL,4338.803,N,07954.652,W,052048,A*3A";
nmea(gpsdata);
gpsdata="$GPGLL,4338.788,N,07954.715,W,052050,A*3D";
nmea(gpsdata);
gpsdata="$GPGLL,4338.773,N,07954.778,W,052052,A*30";
nmea(gpsdata);
gpsdata="$GPGLL,4338.758,N,07954.841,W,052054,A*3A";
nmea(gpsdata);
gpsdata="$GPGLL,4338.743,N,07954.905,W,052056,A*33";
nmea(gpsdata);
gpsdata="$GPGLL,4338.728,N,07954.968,W,052058,A*3B";
nmea(gpsdata);
gpsdata="$GPGLL,4338.713,N,07955.031,W,052100,A*3B";
nmea(gpsdata);
gpsdata="$GPGLL,4338.698,N,07955.095,W,052102,A*35";
nmea(gpsdata);
gpsdata="$GPGLL,4338.683,N,07955.158,W,052104,A*39";
nmea(gpsdata);
gpsdata="$GPGLL,4338.668,N,07955.221,W,052106,A*33";
nmea(gpsdata);
gpsdata="$GPGLL,4338.653,N,07955.284,W,052108,A*3A";
nmea(gpsdata);
gpsdata="$GPGLL,4338.638,N,07955.348,W,052110,A*3F";
nmea(gpsdata);
gpsdata="$GPGLL,4338.623,N,07955.411,W,052112,A*3C";
nmea(gpsdata);
gpsdata="$GPGLL,4338.609,N,07955.474,W,052114,A*31";
nmea(gpsdata);
gpsdata="$GPGLL,4338.594,N,07955.537,W,052116,A*32";
nmea(gpsdata);
gpsdata="$GPGLL,4338.579,N,07955.601,W,052118,A*39";
nmea(gpsdata);
gpsdata="$GPGLL,4338.564,N,07955.664,W,052120,A*3D";
nmea(gpsdata);
gpsdata="$GPGLL,4338.549,N,07955.727,W,052122,A*36";
nmea(gpsdata);
gpsdata="$GPGLL,4338.534,N,07955.791,W,052124,A*37";
nmea(gpsdata);
gpsdata="$GPGLL,4338.519,N,07955.854,W,052126,A*3C";
nmea(gpsdata);
gpsdata="$GPGLL,4338.504,N,07955.917,W,052128,A*38";
nmea(gpsdata);
gpsdata="$GPGLL,4338.489,N,07955.980,W,052130,A*3B";
nmea(gpsdata);
gpsdata="$GPGLL,4338.474,N,07956.044,W,052132,A*39";
nmea(gpsdata);
gpsdata="$GPGLL,4338.459,N,07956.107,W,052134,A*36";
nmea(gpsdata);
gpsdata="$GPGLL,4338.444,N,07956.170,W,052136,A*38";
nmea(gpsdata);
gpsdata="$GPGLL,4338.429,N,07956.233,W,052138,A*39";
nmea(gpsdata);
gpsdata="$GPGLL,4338.414,N,07956.297,W,052140,A*36";
nmea(gpsdata);
gpsdata="$GPGLL,4338.399,N,07956.360,W,052142,A*3F";
nmea(gpsdata);
gpsdata="$GPGLL,4338.384,N,07956.423,W,052144,A*35";
nmea(gpsdata);
gpsdata="$GPGLL,4338.369,N,07956.486,W,052146,A*3B";
nmea(gpsdata);
gpsdata="$GPGLL,4338.354,N,07956.550,W,052148,A*31";
nmea(gpsdata);
gpsdata="$GPGLL,4338.339,N,07956.613,W,052150,A*37";
nmea(gpsdata);
gpsdata="$GPGLL,4338.324,N,07956.676,W,052152,A*3A";
nmea(gpsdata);
gpsdata="$GPGLL,4338.309,N,07956.739,W,052154,A*39";
nmea(gpsdata);
gpsdata="$GPGLL,4338.294,N,07956.803,W,052156,A*38";
nmea(gpsdata);
gpsdata="$GPGLL,4338.279,N,07956.866,W,052158,A*36";
nmea(gpsdata);
gpsdata="$GPGLL,4338.264,N,07956.929,W,052200,A*3E";
nmea(gpsdata);
gpsdata="$GPGLL,4338.249,N,07956.992,W,052202,A*33";
nmea(gpsdata);
gpsdata="$GPGLL,4338.234,N,07957.056,W,052204,A*3F";
nmea(gpsdata);
gpsdata="$GPGLL,4338.218,N,07957.119,W,052206,A*39";
nmea(gpsdata);
gpsdata="$GPGLL,4338.203,N,07957.182,W,052208,A*3F";
nmea(gpsdata);
gpsdata="$GPGLL,4338.188,N,07957.245,W,052210,A*3E";
nmea(gpsdata);
gpsdata="$GPGLL,4338.173,N,07957.309,W,052212,A*31";
nmea(gpsdata);
gpsdata="$GPGLL,4338.158,N,07957.372,W,052214,A*32";
nmea(gpsdata);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -