GPS通信协议问题公司要求现在写一个GPS的通信协议,要求有包头包尾之类的,我没写过,我之前写过做过工控,写过串口通信协议,感觉那个似乎比较简单,GPS的牵扯太多,有没有大神愿意指教?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 05:18:00
GPS通信协议问题公司要求现在写一个GPS的通信协议,要求有包头包尾之类的,我没写过,我之前写过做过工控,写过串口通信协议,感觉那个似乎比较简单,GPS的牵扯太多,有没有大神愿意指教?

GPS通信协议问题公司要求现在写一个GPS的通信协议,要求有包头包尾之类的,我没写过,我之前写过做过工控,写过串口通信协议,感觉那个似乎比较简单,GPS的牵扯太多,有没有大神愿意指教?
GPS通信协议问题
公司要求现在写一个GPS的通信协议,要求有包头包尾之类的,我没写过,我之前写过做过工控,写过串口通信协议,感觉那个似乎比较简单,GPS的牵扯太多,有没有大神愿意指教?

GPS通信协议问题公司要求现在写一个GPS的通信协议,要求有包头包尾之类的,我没写过,我之前写过做过工控,写过串口通信协议,感觉那个似乎比较简单,GPS的牵扯太多,有没有大神愿意指教?
//////////////////////////////////////////////////////////////////////////
// GpsContor.h: interface for the CGpsContor class.
//////////////////////////////////////////////////////////////////////////
#if !defined _GPSCONTOR_H_
#define _GPSCONTOR_H_
#include "GpsDevice.h"
class CGpsControl
{
public:
CGpsControl();
~CGpsControl();

GPS_POSITION* GetAllData();
GPSData* GetUnFiltedData();

void SetMessageWnd( HWND hWnd );
BOOL Config(int nComID/*串口号*/,
int nBaudRate/*波特率*/,
int nByteSize/*字节大小*/);
BOOL PowerReset();
BOOL Create();
void Destroy();
void SetNewHandle(HANDLE hNewHandle);
private:
HWND m_hWnd;
BOOL m_bCreate;
DWORD m_hThreadId;
HANDLE m_hThread;
CGpsDevice m_gpsDevice;
};
#endif
//////////////////////////////////////////////////////////////////////////
// FileName: Gpsapi.h
//////////////////////////////////////////////////////////////////////////
#pragma once
#ifdef GPSAPI_EXPORTS
#define GPSAPI_API __declspec(dllexport)
#else
#define GPSAPI_API __declspec(dllimport)
#endif
#define GPS_MAX_SATELLITES 12 //最大可见卫星数
#define GPS_MAX_FRIENDLY_NAME 64 //保留
#define GPS_MAX_PREFIX_NAME 16 //保留
#pragma pack(push, 1)
//定位质量
typedef enum {
GPS_FIX_QUALITY_UNKNOWN = 0,
GPS_FIX_QUALITY_GPS,
GPS_FIX_QUALITY_DGPS
} GPS_FIX_QUALITY;
//定位类型
typedef enum {
GPS_FIX_UNKNOWN = 0,
GPS_FIX_2D,
GPS_FIX_3D
} GPS_FIX_TYPE;
//定位选择
typedef enum {
GPS_FIX_SELECTION_UNKNOWN = 0,
GPS_FIX_SELECTION_AUTO,
GPS_FIX_SELECTION_MANUAL
} GPS_FIX_SELECTION;
//设备驱动信息(保留未用)
typedef struct _GPS_DEVICE {
DWORD dwVersion;
DWORD dwSize;
DWORD dwServiceState;
DWORD dwDeviceState;
FILETIME ftLastDataReceived;
WCHAR szGPSDriverPrefix[GPS_MAX_PREFIX_NAME];
WCHAR szGPSMultiplexPrefix[GPS_MAX_PREFIX_NAME];
WCHAR szGPSFriendlyName[GPS_MAX_FRIENDLY_NAME];
} *PGPS_DEVICE, GPS_DEVICE;
typedef struct _GPS_POSITION {
DWORD dwVersion; // 版本号(默认0)
DWORD dwSize; // 默认0
DWORD dwValidFields; // 默认0
DWORD dwFlags; // 默认0
SYSTEMTIME stUTCTime; // 卫星时间(UTC时间)
double dblLatitude; // 纬度
double dblLongitude; // 经度
float flSpeed; // 速度
float flHeading; // 方向
double dblMagneticVariation; // 默认0
float flAltitudeWRTSeaLevel; // 海拔高度
float flAltitudeWRTEllipsoid; // 默认0
GPS_FIX_QUALITY FixQuality; // 定位质量
GPS_FIX_TYPE FixType; // 定位类型
GPS_FIX_SELECTION SelectionType; // 选择类型
float flPositionDilutionOfPrecision; // 位置经度因子
float flHorizontalDilutionOfPrecision; // 水平经度因子
float flVerticalDilutionOfPrecision; // 垂直经度因子
DWORD dwSatelliteCount; // 定位卫星数
DWORD rgdwSatellitesUsedPRNs[GPS_MAX_SATELLITES]; // 保留
DWORD dwSatellitesInView; // 可见卫星数
DWORD rgdwSatellitesInViewPRNs[GPS_MAX_SATELLITES]; // 卫星编号
DWORD rgdwSatellitesInViewElevation[GPS_MAX_SATELLITES]; //卫星仰角
DWORD rgdwSatellitesInViewAzimuth[GPS_MAX_SATELLITES]; // 卫星方位角
DWORD rgdwSatellitesInViewSignalToNoiseRatio[GPS_MAX_SATELLITES]; //卫星信噪比
} GPS_POSITION, *PGPS_POSITION;
#pragma pack(pop)
/**
* 函数:打开GPS(此处把要打开连接的虚串口号,波特率等写在程序里, 当前函数的其中三个参数都作为保留参数以兼容mobile标准接口)
* @param [HANDLE] hNewLocationData 信号量句柄(NULL或通过CreateEvent创建的信号量, 如果不为NULL时, 当有GPS新数据时,则使此新号量有值)
* @param [HANDLE] hDeviceStateChange 保留参数(NULL)
* @param [WCHAR] *szDeviceName 保留参数(NULL)
* @param [DWORD] dwFlags 保留参数(0)
* @return HANDLE
*/
GPSAPI_API HANDLE GPSOpenDevice(HANDLE hNewLocationData,HANDLE hDeviceStateChange, const WCHAR* szDeviceName,DWORD dwFlags);
/**
* 函数:关闭GPS
* @param [HANDLE] hGpsHandle GPS设备句柄
* @return DWORD
*/
GPSAPI_API DWORD GPSCloseDevice(HANDLE hGPSDevice);
/**
* 函数: 取得数据信息
* @param [HANDLE] hGPSDevice GPS设备句柄
* @param [GPS_POSITION] pGPSPosition 数据信息结构指针
* @param [DOWRD] dwMaximumAge 保留参数
* @param [DWORD] dwFlags 保留参数
* @return DWORD
*/
GPSAPI_API DWORD GPSGetPosition(HANDLE hGPSDevice,GPS_POSITION *pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags);
/**保留接口函数
* 函数: 获得设备状态信息
* @param [GPS_DEVICE] *pGPSDevice 设备驱动状态结构指针
* @return DWORD
*/
GPSAPI_API DWORD GPSGetDeviceState(GPS_DEVICE *pGPSDevice);
/**针对现有的硬件缺陷增加的手动复位接口
* 函数: 复位
* @param [HANDLE] hGPSDevice GPS设备句柄
* @return DWORD
*/
GPSAPI_API BOOL GPSResetDevice(HANDLE hGPSDevice);
%%来自于网络,尊重版权、、

收到的资料串列,根据通信协议进行资料的Parser...
GPS Protocal也就是NMEA (National Marine Electronics Association ),因为这些资料Post在上面非常的多,关於GPS的句子在此给您几个网址查询参考~
http://vancouver-webpages.com/pub/peter/nmeafaq.txt
http...

全部展开

收到的资料串列,根据通信协议进行资料的Parser...
GPS Protocal也就是NMEA (National Marine Electronics Association ),因为这些资料Post在上面非常的多,关於GPS的句子在此给您几个网址查询参考~
http://vancouver-webpages.com/pub/peter/nmeafaq.txt
http://home.mira.net/~gnb/gps/nmea.html
关於GPS NMEA 软体工具与技术资料工具可以参考 :
http://www.mobile01.com/topicdetail.php?f=130&t=15422

收起

什么GPS的通信协议?
标准GPS输出的数据,是有规定协议的,不是我们可以更改的。

你意思是要自己研发生产一款GPS芯片嘛?如果不是,而是用现有的GPS模块,那就不要想改变GPS模块输出数据的协议了。这点你应该清楚的。

像很多通用模块,包括的通信接口协议有IIC、USART。
你是不是想用一块控制器和GPS模块通信啊?
所以,还是请你...

全部展开

什么GPS的通信协议?
标准GPS输出的数据,是有规定协议的,不是我们可以更改的。

你意思是要自己研发生产一款GPS芯片嘛?如果不是,而是用现有的GPS模块,那就不要想改变GPS模块输出数据的协议了。这点你应该清楚的。

像很多通用模块,包括的通信接口协议有IIC、USART。
你是不是想用一块控制器和GPS模块通信啊?
所以,还是请你说明白,你所指的通信协议,具体是指什么?

收起

GPS通信协议问题公司要求现在写一个GPS的通信协议,要求有包头包尾之类的,我没写过,我之前写过做过工控,写过串口通信协议,感觉那个似乎比较简单,GPS的牵扯太多,有没有大神愿意指教? 如何截取GPS接收机的GPGGA通信协议数据 现在二手集装箱(20GP,40GP)是什么价格了? 什么是通信协议? 通信协议是什么 什么是通信协议? 英文译中文(GPS导航仪要求),这面下雪了,我现在急求车内GPS雪地模式的英文, 现在公路测量监理还要求算出一测回角值,现在 都用全站和GPS,什么给他弄? 快递公司运费计算公式的设置问题:如何设置以0.5公斤为一个单位的计算公式?快递公司运费计算公式的设置问题:条件:X代表重量,例如某物品,X斤重,每公斤5元,则总价格为:X*5 现在要求如 周年庆典标语怎么写?我们公司为XY公司,现在是十五周年了,要求每个人都想个“十五周年活动标语”... 使用的铝塑管,导致管道漏燃气,怎么处理?现在我公司一批管道从浙江采购燃气专用铝塑管,出现严重问题,现在当地政府要求本企业更换,导致我们公司严重损失,现在如何处理这个问题, 我是小额贷款公司的一个信贷员,实习期到了,现在上司要我写个工作总结报告 如何写统计局要求的陈述和申辩书本公司与去年12月注册成立公司,但忘了去统局办统计证啦,现在快一年啦,统计局要求写《陈述和申辩书》请哪位高手给予指点, 景区售票员的述职报告怎么写?我是一旅游景区的售票员,现在公司要求写一份述职报告,不知道要怎么写, Android写一个发送自己GPS位置信息的app一个类用于获取GPS数据,一个SmsActivity显示界面,短信内容来自GPS类,String message= 帮我写一个英语作文.随便编都可以.只要符合要求要求是·····【假设我在公司,介绍哪儿的人正在做什么】→【用现在进行时态】,随便编都可以.只要符合要求30-50个字吧。随便编 我想创办一个公司,现在想给公司取个英文名,公司做灯具照明的.要求一个英文单词和中文谐音.英文单词,简单又好看比如说:Lux,Nova 等等,可以重新造个词,不一定要是标准的英文单词. 公司要求写合理化建议,我如何去写