📄 gps.cs
字号:
using System;
using OpenNETCF.IO.Serial;
using OpenNETCF.Win32;
using OpenNETCF.Threading;
using System.Text;
using System.Collections;
using System.Threading;
using System.IO;
using System.Globalization;
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 ThreadEx 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);
gpsdata="$GPGLL,4338.144,N,07957.435,W,052216,A*39";
nmea(gpsdata);
gpsdata="$GPGLL,4338.129,N,07957.498,W,052218,A*3B";
nmea(gpsdata);
gpsdata="$GPBOD,,T,,M,,*47";
nmea(gpsdata);
gpsdata="$PGRME,76.0,M,32.5,M,82.7,M*16";
nmea(gpsdata);
gpsdata="$PGRMZ,111,f,2*1B";
nmea(gpsdata);
gpsdata="$GPRTE,1,1,c,*37";
nmea(gpsdata);
gpsdata="$GPGSV,3,1,12,03,51,271,00,08,15,353,00,15,59,213,00,16,38,209,00*7D";
nmea(gpsdata);
gpsdata="$GPGSV,3,2,12,18,43,139,45,19,20,286,00,21,59,095,46,22,21,169,38*7E";
nmea(gpsdata);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -