亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wingps.c

?? GARMIN的GPS信息解釋器
?? C
字號:
/*
Copyright (c) 2005, David M Howard (daveh at dmh2000.com)
All rights reserved.

This product is licensed for use and distribution under the BSD Open Source License.
see the file COPYING for more details.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 

*/

/*
========================================================================================================
EXAMPLE : SETUP FOR GGA AND RMC SENTENCES WITH SERIAL IO FOR WIN32
=======================================================================================================
*/   
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "nmeap.h"

/** open a serial port */
static HANDLE openPort(const char *port,int baud)
{
	HANDLE       h;
	DCB          dcb;
	COMMTIMEOUTS tmo;
	int          status;

	/* open the port */
	h = CreateFile( port,  
                    GENERIC_READ | GENERIC_WRITE, 
                    0, 
                    0, 
                    OPEN_EXISTING,
                    0,
                    0);
	if (h == INVALID_HANDLE_VALUE) {
		/* quit on error */
		return h;
	}
   

	/* read current configuration */
   status = GetCommState(h,&dcb);
   if (status == 0) {
	   CloseHandle(h);
	   return INVALID_HANDLE_VALUE;
   }

   /* set the baud rate and other parameters */
   dcb.BaudRate = baud;
   dcb.ByteSize = 8;
   dcb.Parity   = NOPARITY; 
   dcb.StopBits = ONESTOPBIT;

   /* set configuration */
   status = SetCommState(h, &dcb);
   if (status == 0) {
	   CloseHandle(h);
	   return INVALID_HANDLE_VALUE;
   }

   /* read timeout configuration */
   status = GetCommTimeouts(h,&tmo);
   if (status == 0) {
	   CloseHandle(h);
	   return INVALID_HANDLE_VALUE;
   }

   /* set to indefinite blocking */
   tmo.ReadIntervalTimeout        = 0;
   tmo.ReadTotalTimeoutConstant   = 0;
   tmo.ReadTotalTimeoutMultiplier = 0;
   status = SetCommTimeouts(h,&tmo);
   if (status == 0) {
	   CloseHandle(h);
	   return INVALID_HANDLE_VALUE;
   }

	return h;
}

/** read a byte (blocking) */
static int readPort(HANDLE h)
{
	BOOL  status;
	char  ch;
	DWORD count;
	status =  ReadFile(h,&ch,1,&count,0);
	if (status == 0) {
		return -1;
	}

	return (int)ch;
}


static void closePort(HANDLE h)
{
	CloseHandle(h);
}


/** print current data */
static void printGps(nmeap_gga_t *gga,nmeap_rmc_t *rmc)
{
	printf("%lu %lu %.6f %.6f %.0f %f %f %d %d\n",
			gga->time,
			rmc->date,
            gga->latitude  ,
            gga->longitude, 
            gga->altitude , 
			rmc->course,
			rmc->speed,
            gga->satellites,
            gga->quality   
            );
}

/* ---------------------------------------------------------------------------------------*/
/* STEP 1 : allocate the data structures. be careful if you put them on the stack because */
/*          they need to be live for the duration of the parser                           */
/* ---------------------------------------------------------------------------------------*/
static nmeap_context_t nmea;	   /* parser context */
static nmeap_gga_t     gga;		   /* this is where the data from GGA messages will show up */
static nmeap_rmc_t     rmc;		   /* this is where the data from RMC messages will show up */
static int             user_data; /* user can pass in anything. typically it will be a pointer to some user data */

int main(int argc,char *argv[])
{
    int             status;
    char            ch;
	const char     *port;
	int             baud;
	HANDLE          h;

	/* require both arguments */
	if (argc != 3) {
		printf("%s <comport> <baud>\n",argv[0]);
		return 1;
	}

	/* serial port argument */
	port = argv[1];

	/* baud rate argument */
	status = sscanf(argv[2],"%d",&baud);
	if (status != 1) {
		printf("%s <comport> <baud>\n",argv[0]);
		printf("invalid <baud> : %s\n",argv[2]);
		return 1;
	}

	/** open the serial port */
	h = openPort(port,baud);
	if (h == INVALID_HANDLE_VALUE) {
		printf("can't open port : %s\n",port);
		return 1;
	}
    
	/* ---------------------------------------*/
	/*STEP 2 : initialize the nmea context    */                                                
	/* ---------------------------------------*/
    status = nmeap_init(&nmea,(void *)&user_data);
    if (status != 0) {
        printf("nmeap_init %d\n",status);
        exit(1);
    }
    
	/* ---------------------------------------*/
	/*STEP 3 : add standard GPGGA parser      */                                                
	/* -------------------------------------- */
    status = nmeap_addParser(&nmea,"GPGGA",nmeap_gpgga,0,&gga);
    if (status != 0) {
        printf("nmeap_add %d\n",status);
        exit(1);
    }

	/* ---------------------------------------*/
	/*STEP 4 : add standard GPRMC parser      */                                                
	/* -------------------------------------- */
    status = nmeap_addParser(&nmea,"GPRMC",nmeap_gprmc,0,&rmc);
    if (status != 0) {
        printf("nmeap_add %d\n",status);
        exit(1);
    }

	/* ---------------------------------------*/
	/*STEP 5 : process input until done       */                                                
	/* -------------------------------------- */
    for(;;) {
		/* ---------------------------------------*/
		/*STEP 6 : get a byte at a time           */                                                
		/* -------------------------------------- */
        ch = readPort(h);
        if (ch <= 0) {
            break;
        }
        
		/* --------------------------------------- */
		/*STEP 7 : pass it to the parser           */
		/* status indicates whether a complete msg */
		/* arrived for this byte                   */
		/* NOTE : in addition to the return status */
		/* the message callout will be fired when  */
		/* a complete message is processed         */
		/* --------------------------------------- */
        status = nmeap_parse(&nmea,ch);
        
		/* ---------------------------------------*/
		/*STEP 8 : process the return code        */                                                
		/* -------------------------------------- */
        switch(status) {
        case NMEAP_GPGGA:
			/* GOT A GPGGA MESSAGE */
            printGps(&gga,&rmc);
            break;
        case NMEAP_GPRMC:
			/* GOT A GPRMC MESSAGE */
            printGps(&gga,&rmc);
            break;
        default:
            break;
        }
    }

	/* close and quit */
	closePort(h);
    
    return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区在线视频| 亚洲va在线va天堂| 日韩欧美精品在线| 欧美日韩在线播放三区四区| 91视视频在线直接观看在线看网页在线看| 久久精品国产亚洲一区二区三区| 日产国产欧美视频一区精品| 图片区小说区区亚洲影院| 丝袜美腿亚洲色图| 全国精品久久少妇| 六月婷婷色综合| 韩国精品久久久| 国产一区二区免费看| 国产成人啪免费观看软件| 成人免费视频caoporn| 国产成人免费在线视频| av一区二区不卡| 91久久人澡人人添人人爽欧美 | 久久你懂得1024| 亚洲国产精品国自产拍av| 欧美国产一区二区在线观看| 亚洲天堂a在线| 午夜视黄欧洲亚洲| 精油按摩中文字幕久久| 国产成人日日夜夜| 欧美最猛性xxxxx直播| 91精品国产91久久综合桃花| 精品国产一区久久| 中文字幕在线不卡国产视频| 亚洲国产日日夜夜| 午夜精品免费在线观看| 国内成人免费视频| 99久久精品国产一区| 在线播放视频一区| 国产精品久久久久久久久图文区 | 亚洲制服欧美中文字幕中文字幕| 亚洲国产精品久久久久婷婷884| 爽好多水快深点欧美视频| 精品在线你懂的| 91麻豆swag| 欧美精品一区二区三区一线天视频| 国产精品理论片| 日韩av网站在线观看| av亚洲精华国产精华精华| 日韩三级高清在线| 亚洲精品乱码久久久久久黑人 | 亚洲色图制服诱惑 | 国产精品久久三区| 日本成人在线不卡视频| 99热精品一区二区| 精品精品欲导航| 亚洲高清一区二区三区| 成人激情黄色小说| 欧美大度的电影原声| 亚洲综合丁香婷婷六月香| 国产成人精品免费| 日韩午夜中文字幕| 亚洲电影一级片| 91啪九色porn原创视频在线观看| 精品国产一二三区| 婷婷国产v国产偷v亚洲高清| 91免费小视频| 国产精品麻豆欧美日韩ww| 国内精品嫩模私拍在线| 91精品国产91久久综合桃花| 午夜精品国产更新| 欧美性感一类影片在线播放| 1区2区3区国产精品| 国产成人丝袜美腿| 久久精品这里都是精品| 国产综合成人久久大片91| 这里只有精品视频在线观看| 亚洲国产一区在线观看| 欧美综合在线视频| 亚洲综合视频在线观看| 欧美视频日韩视频| 香蕉乱码成人久久天堂爱免费| 91久久精品一区二区| 亚洲免费资源在线播放| 91小视频在线| 亚洲自拍偷拍欧美| 色综合久久88色综合天天6| 17c精品麻豆一区二区免费| 成人av动漫在线| 亚洲欧美另类久久久精品2019| 91免费国产在线观看| 综合电影一区二区三区| 一本色道亚洲精品aⅴ| 亚洲资源在线观看| 91精品国产欧美一区二区 | 久久久久久久电影| 国产精品自拍网站| 中文字幕中文字幕一区二区| 91亚洲资源网| 亚洲va欧美va天堂v国产综合| 91精品国产综合久久精品图片| 捆绑变态av一区二区三区| 久久久美女毛片| 色综合一区二区| 亚洲国产精品视频| 精品国产一区二区在线观看| 国产91丝袜在线播放| 一区二区三区小说| 日韩免费视频线观看| 粉嫩一区二区三区在线看| 亚洲午夜激情网站| xnxx国产精品| 色综合久久久久久久久| 另类综合日韩欧美亚洲| 成人欧美一区二区三区黑人麻豆| 欧美性受xxxx黑人xyx性爽| 轻轻草成人在线| 国产精品国产馆在线真实露脸| 欧美无砖专区一中文字| 国产精品亚洲一区二区三区在线| 中文字幕一区二区三区不卡在线 | 久久亚洲捆绑美女| 一本一道波多野结衣一区二区| 看片网站欧美日韩| 亚洲综合色视频| 国产清纯白嫩初高生在线观看91 | 亚洲视频你懂的| 日韩一区二区三| 91久久精品午夜一区二区| 经典一区二区三区| 亚洲精品久久久蜜桃| 2021国产精品久久精品| 欧美日韩精品久久久| 99久久er热在这里只有精品15| 麻豆成人久久精品二区三区小说| 综合色中文字幕| 久久久久久综合| 欧美一区二区三区免费| 在线免费观看日本一区| 丰满白嫩尤物一区二区| 精品一区二区三区久久| 日韩一区精品字幕| 亚洲一二三区在线观看| 综合久久久久综合| 国产精品网站在线播放| 精品国产乱码久久| 日韩午夜三级在线| 在线播放中文一区| 欧美日韩国产首页| 在线精品视频免费观看| www.亚洲人| 国产91丝袜在线观看| 国产成人综合在线播放| 久久不见久久见免费视频1| 肉肉av福利一精品导航| 五月激情丁香一区二区三区| 亚洲不卡av一区二区三区| 亚洲综合区在线| 亚洲国产成人精品视频| 亚洲国产日韩精品| 亚洲成人av一区二区| 亚洲成av人影院| 免费在线观看一区二区三区| 欧美aaaaa成人免费观看视频| 日韩成人av影视| 日韩国产欧美在线视频| 日韩精品成人一区二区在线| 日韩精品一级二级| 久草热8精品视频在线观看| 自拍偷自拍亚洲精品播放| 亚洲丝袜自拍清纯另类| 亚洲欧美电影一区二区| 亚洲午夜激情网页| 免费成人av资源网| 激情偷乱视频一区二区三区| 国产河南妇女毛片精品久久久| 国产精品影视天天线| 99精品热视频| 精品视频一区二区不卡| 91精品国产综合久久精品图片 | 亚洲五码中文字幕| 午夜一区二区三区在线观看| 天堂va蜜桃一区二区三区 | 91社区在线播放| 欧美日韩三级一区二区| 精品国产精品网麻豆系列| 亚洲国产激情av| 五月天亚洲精品| 国内精品伊人久久久久av一坑| 成人一级黄色片| 欧美日韩国产a| 久久久久国产一区二区三区四区 | 国产最新精品免费| 99久久婷婷国产| 日韩网站在线看片你懂的| 国产日韩欧美不卡| 亚洲成a人v欧美综合天堂下载| 国产一区二区三区观看| 色诱视频网站一区| 2021久久国产精品不只是精品| 亚洲一二三四在线| 成人高清视频免费观看| 欧美成人女星排行榜| 亚洲国产日韩精品| 成人av先锋影音|