资源简介
完整GPS数据包解析类;GPRMC,GPGGA,GPGSV,GPGLL,GPVTG,GPGSA
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Nuctech.GPS.Adapter
{
///
/// 使用说明:
/// 1、设置本地时区
/// 2、注册事件:OnGPSRecvAndAnalysisSuccessedEvent
/// 3、调用(完整数据包)解析接口(可以多组传入):GPSDataParse(string gpsMsg)
/// 【3】调用(追加方式)解析接口(可以多组传入):GPSDataParseAppend(string gpsMsg)
/// 4、解析函数按照:GPRMC有效数据频率触发事件OnGPSRecvAndAnalysisSuccessedEvent
/// 5、也可自行获取Gps_Info属性
///
public class GPS_Globle
{
#region 事件
///
/// 解析后的GPS数据
///
public static event GPSDataReadyEventHandler OnGPSRecvAndAnalysisSuccessedEvent;
///
/// 未解析的原始GPS数据
///
public static event GPSOrigionDataReadyEventHandler OnGPSOrigionDataReadyEvent;
#endregion
#region 私有属性
private static string mBuffer = ““;
private static int msgCount = 0;
private static List dataLength = new List();
private static List origionData = new List();
#endregion
#region 公有属性及对外接口
private static GPS_Infomation _Gps_Info = new GPS_Infomation();
///
/// GPS详细信息
///
public static GPS_Infomation Gps_Info
{
get { return _Gps_Info; }
set { _Gps_Info = value; }
}
///
/// GPS数据是否有效
/// 只截取完整的数据包判断
///
/// 完整数据包
///
public static bool IsEffective(string msg)
{
bool flag_Head_OK = false;
bool flag_End_OK = false;
if (msg.IndexOf(“$GP“) == 0 || msg.IndexOf(“GP“) == 0)
flag_Head_OK = true;
string[] msgA = msg.Split(new char[] { ‘‘ });
//if (dataLength.Contains(string.Format(“{0}={1}“ msgA[0] msgA.Length)) == false)
//{
// dataLength.Add(string.Format(“{0}={1}“ msgA[0] msgA.Length));
// Console.WriteLine(string.Format(“{0}={1}“ msgA[0] msgA.Length));
//}
msgA[0] = msgA[0].Replace(“$“ ““);
if (msgA[0] == “GPRMC“ && msgA[msgA.Length - 1].IndexOf(“*“) > -1)
flag_End_OK = true;
if (msgA[0] == “GPVTG“ && msgA[msgA.Length - 1].IndexOf(“*“) > -1)
flag_End_OK = true;
if (msgA[0] == “GPGGA“ && msgA[msgA.Length - 1].IndexOf(“*“) > -1)
flag_End_OK = true;
if (msgA[0] == “GPGSV“ && msgA[msgA.Length - 1].IndexOf(“*“) > -1)
flag_End_OK = true;
if (msgA[0] == “GPGSA“ && msgA[msgA.Length - 1].IndexOf(“*“) > -1)
flag_End_OK = true;
if (msgA[0] == “GPGLL“
- 上一篇:C# 命名管道 异步通信的
- 下一篇:C#做一个悬浮窗口程序
相关资源
- C# 实现GPS交互
- C#编写伪距单点定位,BD+GPS,有详细注
- c# GPS坐标与火星坐标互转
- C#版GPS单点定位
- GPS仿真软件 gps模拟器 NMEA0183仿真软件
- VS2012编译RTKLIB——GNSS定位开源库
- C#读取GPSn文件
- Web车辆监控系统网站源代码
- python3 GPS数据纠偏类适用谷歌、高德、
- gps时间转换268436
- C# 编写的 蓝牙GPS定位软件 可通过蓝牙
- C#实现GPS时间的计算GPS周和秒
- 基于C#的GPS数据采集源码
- C#单点定位
- C#实现的GPS实时跟踪系统
- CORS参考站数据读取
- 使用C#绘制星空图
- 利用c#语言计算卫星的位置代码
- C#串口获取GPS信息
- GPS卫星坐标计算C#
- rinex数据读取
- c#gps原代码
- GPSTXT文件C#读写分割管理
- NB_stm32l151 采用stm32L151主芯片驱动NB做
- GPS卫星坐标计算
- GPS_locating_Map 一个用c#实现的GPS定位系
- t_AJAX_ASPMAP 在WebGIS地图上
- gprs--pc c#开发
- GPS 追踪车辆行程轨迹
- 利用卫星星历计算卫星位置C#开发
评论
共有 条评论