查看: 5515|回复: 5

PDA下GPS接收源程序

[复制链接]

该用户从未签到

发表于 2008-4-1 18:28:57 | 显示全部楼层 |阅读模式
分享到:
<div id="postmessage_56" class="t_msgfont"> GPS接收头文件
// GPSProc.h: interface for the CGPSProc  class.
//
//////////////////////////////////////////////////////////////////////
#if  !defined(AFX_GPSPROC_H__269CB4AA_ABCE_4E9D_B27E_CB2B485C9B8B__INCLUDED_)
#define  AFX_GPSPROC_H__269CB4AA_ABCE_4E9D_B27E_CB2B485C9B8B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER >  1000
#include
#include
#include  
#include
#include  
#include "GPSView.h"
#include&quotDAView.h"

typedef struct _GPSData
{
double LGTD; //中心点X
double LTTD;  //中心点Y
double High;//高度
double Angle; //角度
double Speed;
CString  GpsTime;
TCHAR Status;
} GPSData;
extern GPSData g_GPSData;
#define MAXSIZE 255
class CGPSProc  
{
public:
CGPSProc();
virtual ~CGPSProc();
public:
};
#endif //  !defined(AFX_GPSPROC_H__269CB4AA_ABCE_4E9D_B27E_CB2B485C9B8B__INCLUDED_)
UINT  pGPSProcThread(PVOID pArg);
BOOL GPSDataProc(BYTE szText[]);
void  GetMsg(BYTE Msg[]);
 
// GPSProc.cpp: implementation of the CGPSProc  class.
//
//////////////////////////////////////////////////////////////////////
#include  
#include  
#include
#include
#include  "stdafx.h"
#include "GPSProc.h"
#include
#include  
#include "afxmt.h"
#ifdef _DEBUG
#undef THIS_FILE
static char  THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
CCriticalSection  cri_GPS;
extern CWinThread *pReadThread ;
extern HANDLE hGPSComPort ;
extern BOOL  fContinue,fFRContinue,fMRContinue,fSRContinue;
extern int nSpeed ;
extern int nLastDev ;
GPSData g_GPSData;
//////////////////////////////////////////////////////////////////////
//  Construction/Destruction
//////////////////////////////////////////////////////////////////////
CGPSProc::CGPSProc()
{
}
CGPSProc::~CGPSProc()
{
}
/*GPS数据接收线程*/
UINT pGPSProcThread(PVOID pArg)
{
DWORD  cBytes;
DWORD dwMask;
BYTE szText[MAXSIZE] ;
BYTE *pPtr=szText;
int  i,sFlag=0;
TCHAR tch;
CPDAView *pView= (CPDAView *)pArg;
// 指定监视串口的一组数据
SetCommMask (hGPSComPort, EV_RXCHAR | EV_CTS | EV_DSR |  EV_RLSD | EV_RING);
while (hGPSComPort != INVALID_HANDLE_VALUE)
{
tch = 0;
i =  0;
CString strDataInfo;
// 指定监视串口的一组数据.
WaitCommEvent (hGPSComPort, &dwMask,  0);
//重新指定监视串口的一组数据.
SetCommMask (hGPSComPort, EV_RXCHAR | EV_CTS | EV_DSR  | EV_RING);
if (dwMask & EV_RXCHAR)
{
// 循环等待数据.
do
{
//  从串口中读取数据.
ReadFile (hGPSComPort, pPtr, 1, &cBytes, 0);
// 显示或处理读到的字符.
if (cBytes == 1)
{
if (*pPtr=='$' &&  sFlag==0)
{
sFlag = 1;
pPtr++;
}
else if (sFlag ==1 &&  *pPtr!='$')
{
if (*pPtr == 0x0A )
{  /*把收到的GPS数据交由函数处理,处理后返回一个结构变量*/

if(GPSDataProc(szText))
{  
keybd_event(1,1,KEYEVENTF_SILENT,0);
PostMessage((HWND)pView,WM_GPSPROC,0,0);
}
pPtr  = szText;
sFlag = 0;
}
else
{
pPtr++;
}
}
}

}  while (cBytes == 1);
}
}
return 0;
}
/*GPS数据处理程序*/
BOOL GPSDataProc(BYTE szText[])
{
GPSData  m_GPSData;
BYTE info[MAXSIZE];
char *GGAhead,*RMChead;
GGAhead = "GPGGA";
RMChead = "GPRMC";
BYTE  ptr ;
ptr = 0;
double mdata=0;
/*计算校验和*/
for(int i=1 ; ; i++)
{
info = szText;
if (info=='*')  break;
ptr = ptr^info;
}
int Len =  i++;//Len为'*'的位置
info=szText;
i++;
info=szText;


char m_CC[2];
sprintf(m_CC,"%2X",ptr);


<em><em><em><em><em><em><em><em>/*校验和正确则解析数据*/
if (memcmp(m_CC,&info[Len+1],2) == 0 )
{

char  infohead[5];
for (int i=0 ; i
回复

使用道具 举报

该用户从未签到

发表于 2008-4-8 11:33:36 | 显示全部楼层

RE:PDA下GPS接收源程序

回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-6-10 16:46:25 | 显示全部楼层

RE:PDA下GPS接收源程序

回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-6-14 18:08:29 | 显示全部楼层

回复:PDA下GPS接收源程序

最近上论坛时发现大家都在找一些既可以解决正版化问题、
又好用实用的CAD软件,我强烈推荐中望CAD,
我们企业是今年3月份买的中望CAD2008,不仅价格合理(好像只有AutoCAD的1/5),
而且兼容Autocad文件格式,运行速度还很快,售后服务也比较到位。
爱我中华,国产CAD这么出色,当然要支持!最近中望又出了新版2008i,
推荐大家去下载一个试试。<a href="http://www.zwcad.com/"http://www.zwcad.com/a>
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-12-1 16:15:49 | 显示全部楼层

RE:PDA下GPS接收源程序

顶~~
加油加油~~
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-12-8 20:47:53 | 显示全部楼层

RE:PDA下GPS接收源程序

能有个文档说明就好了,这样看起来很累人
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-23 06:26 , Processed in 0.152943 second(s), 25 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.