GPS数据解析

上传人:灯火****19 文档编号:121128399 上传时间:2020-02-16 格式:DOC 页数:12 大小:58KB
返回 下载 相关 举报
GPS数据解析_第1页
第1页 / 共12页
GPS数据解析_第2页
第2页 / 共12页
GPS数据解析_第3页
第3页 / 共12页
GPS数据解析_第4页
第4页 / 共12页
GPS数据解析_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《GPS数据解析》由会员分享,可在线阅读,更多相关《GPS数据解析(12页珍藏版)》请在金锄头文库上搜索。

1、#include #include #include #include #include #include #include #include #include #define GPS_RECV_CMD_MAX_BUF 256 struct termios newtio, oldtio;int set_opt(int fd,int nSpeed, int nBits, char nEvent, int nStop)if (tcgetattr(fd, &oldtio) != 0) perror(SetupSerial 1);return -1; newtio = oldtio;newtio.c_

2、cflag &= CSIZE; switch(nBits)case 7:newtio.c_cflag |= CS7;break;case 8:newtio.c_cflag |= CS8;break;switch(nEvent)case O:newtio.c_cflag |= PARENB;newtio.c_cflag |= PARODD;newtio.c_iflag |= (INPCK | ISTRIP);break;case E: newtio.c_iflag |= (INPCK | ISTRIP);newtio.c_cflag |= PARENB;newtio.c_cflag &= PAR

3、ODD;break;case N: newtio.c_cflag &= PARENB;break;switch(nSpeed)case 2400:cfsetispeed(&newtio, B2400);cfsetospeed(&newtio, B2400);break;case 4800:cfsetispeed(&newtio, B4800);cfsetospeed(&newtio, B4800);break;case 9600:cfsetispeed(&newtio, B9600);cfsetospeed(&newtio, B9600);break;case 115200:cfsetispe

4、ed(&newtio, B115200);cfsetospeed(&newtio, B115200);break;default:cfsetispeed(&newtio, B9600);cfsetospeed(&newtio, B9600);break;if(nStop = 1)newtio.c_cflag &= CSTOPB;else if (nStop = 2) newtio.c_cflag |= CSTOPB;newtio.c_cflag |= CLOCAL | CREAD; newtio.c_lflag &= (ICANON | ECHO | ECHOE | ISIG);/ raw m

5、ode output, no echo. newtio.c_oflag &= OPOST;/turn off out control bitsnewtio.c_ccVTIME = 0;newtio.c_ccVMIN = 1;tcflush(fd, TCIOFLUSH);if(tcsetattr(fd, TCSANOW, &newtio) != 0)perror(com set error);return -1;printf(set done!n);return 0;int open_port(int fd,int comport)if (comport = 1)fd = open( /dev/

6、ttyS0, O_RDWR | O_NOCTTY | O_NDELAY);if (-1 = fd)perror(Cant Open Serial Port);return(-1);else printf(open ttyS0 .n);else if(comport = 2)fd = open( /dev/ttyUSB0, O_RDWR | O_NOCTTY | O_NDELAY);/ | O_NONBLOCKif (-1 = fd)perror(Cant Open Serial Port);return(-1);else printf(open ttyS1 .n);else if (compo

7、rt = 3)fd = open( /dev/ttyS2, O_RDWR | O_NOCTTY | O_NDELAY);if (-1 = fd)perror(Cant Open Serial Port);return(-1);else printf(open ttyS2 .n);if(fcntl(fd, F_SETFL, 0) 0)/fcntl(fd, F_GETFL, 0) & O_NONBLOCKprintf(fcntl failed!n);elseprintf(fcntl=%dn, fcntl(fd, F_GETFL, 0);if(isatty(STDIN_FILENO) = 0)pri

8、ntf(standard input is not a terminal devicen);elseprintf(isatty success!n);printf(fd-open=%dn, fd);return fd;typedef struct GGAINFO int bIsGPGGA; unsigned char hour, bjhour, min, sec, secFrac; unsigned int latitude;/double latitude; unsigned int latMin; unsigned char latNS; unsigned int longitude;/d

9、ouble longitude; unsigned int lgtMin; unsigned char lgtEW; unsigned char satellites; short altitude; GGAINFO;typedef struct RMCINFO int bIsGPRMC; unsigned char hour, bjhour, min, sec; unsigned short secFrac; unsigned char status; unsigned int latitude;/double latitude; unsigned int latMin; unsigned

10、char latNS; unsigned int longitude;/double longitude; unsigned int lgtMin; unsigned char lgtEW; unsigned char dd, mm, yy; RMCINFO;int main(void)int fd, res;int i, no;fd_set fds;struct timeval tv;char buffGPS_RECV_CMD_MAX_BUF;GGAINFO ggainfo; /Global Positioning System Fix Data RMCINFO rmcinfo;/Recom

11、mended Minimum Specific GPS Data char Degree4;char Minute8;char Hour4;char Minu4;char Second4;char Mse4;char Satnum4; char DD2, MM2, YY2;if(fd=open_port(fd, 2)0) perror(open_port error); return; if(i=set_opt(fd, 9600, 8, N, 1)0) perror(set_opt error); return; /*cfsetispeed(&newios, B9600); cfsetospe

12、ed(&newios, B9600);tcflush(fd,TCIOFLUSH); if(tcsetattr(fd,TCSANOW,&newios)!=0) perror(com set error); return -1; FD_ZERO(&fds);FD_SET(fd,&fds);tv.tv_sec = 5;tv.tv_usec = 0;if(select(fd+1,&fds,NULL,NULL,&tv)=0)return -1;*/ FD_ZERO(&fds);while(1) FD_SET(fd, &fds); memset(buff, 0, GPS_RECV_CMD_MAX_BUF);if(select(fd+1, &fds, NULL, NULL, NULL)=0) printf(ERROR!); return -1; if(FD_ISSET(fd, &fds)while(!Is_startGP(fd);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号