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

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

?? italk.c

?? gpsd, a popular GPS daemon.
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* $Id: italk.c 4661 2008-01-19 22:54:23Z garyemiller $ *//* * Driver for the iTalk binary protocol used by FasTrax */#include <sys/types.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include <ctype.h>#include <unistd.h>#include <time.h>#include <stdio.h>#include "gpsd_config.h"#include "gpsd.h"#if defined(ITRAX_ENABLE) && defined(BINARY_ENABLE)#define LITTLE_ENDIAN_PROTOCOL#include "bits.h"#include "italk.h"static gps_mask_t italk_parse(struct gps_device_t *, unsigned char *, size_t);static gps_mask_t decode_itk_navfix(struct gps_device_t *, unsigned char *, size_t);static gps_mask_t decode_itk_prnstatus(struct gps_device_t *, unsigned char *, size_t);static gps_mask_t decode_itk_utcionomodel(struct gps_device_t *, unsigned char *, size_t);static gps_mask_t decode_itk_navfix(struct gps_device_t *session, unsigned char *buf, size_t len){    unsigned int tow;    unsigned short gps_week, flags, cflags, pflags;    gps_mask_t mask = 0;    double epx, epy, epz, evx, evy, evz;    double t;    if (len != 296){	gpsd_report(LOG_PROG, "ITALK: bad NAV_FIX (len %d, should be 296)\n", len);	return -1;    }    flags = getuw(buf, 7 + 4);    cflags = getuw(buf, 7 + 6);    pflags = getuw(buf, 7 + 8);    session->gpsdata.status = STATUS_NO_FIX;    session->gpsdata.fix.mode = MODE_NO_FIX;    mask =  ONLINE_SET | MODE_SET | STATUS_SET | CYCLE_START_SET;    /* just bail out if this fix is not marked valid */    if (0 != (pflags & FIX_FLAG_MASK_INVALID) || 0 == (flags & FIXINFO_FLAG_VALID))	return mask;    gps_week = (ushort)getsw(buf, 7 + 82);    tow = getul(buf, 7 + 84);    t = gpstime_to_unix((int)gps_week, tow/1000.0) - session->context->leap_seconds;    session->gpsdata.sentence_time = t;    session->gpsdata.fix.time = t;    mask |= TIME_SET;    epx = (double)(getsl(buf, 7 + 96)/100.0);    epy = (double)(getsl(buf, 7 + 100)/100.0);    epz = (double)(getsl(buf, 7 + 104)/100.0);    evx = (double)(getsl(buf, 7 + 186)/1000.0);    evy = (double)(getsl(buf, 7 + 190)/1000.0);    evz = (double)(getsl(buf, 7 + 194)/1000.0);    ecef_to_wgs84fix(&session->gpsdata, epx, epy, epz, evx, evy, evz);    mask |= LATLON_SET | ALTITUDE_SET | SPEED_SET | TRACK_SET | CLIMB_SET  ;    session->gpsdata.fix.eph = (double)(getsl(buf, 7 + 252)/100.0);    session->gpsdata.fix.eps = (double)(getsl(buf, 7 + 254)/100.0);    session->gpsdata.satellites_used = 0xffff ^ getub(buf, 7 + 16);    mask |= USED_SET ;    if (flags & FIX_CONV_DOP_VALID){	session->gpsdata.hdop = (double)(getuw(buf, 7 + 56)/100.0);	session->gpsdata.gdop = (double)(getuw(buf, 7 + 58)/100.0);	session->gpsdata.pdop = (double)(getuw(buf, 7 + 60)/100.0);	session->gpsdata.vdop = (double)(getuw(buf, 7 + 62)/100.0);	session->gpsdata.tdop = (double)(getuw(buf, 7 + 64)/100.0);	mask |= HDOP_SET | GDOP_SET | PDOP_SET | VDOP_SET | TDOP_SET;    }    if ((pflags & FIX_FLAG_MASK_INVALID) == 0 && (flags & FIXINFO_FLAG_VALID) != 0){	if (pflags & FIX_FLAG_3DFIX)	    session->gpsdata.fix.mode = MODE_3D;	else	    session->gpsdata.fix.mode = MODE_2D;	if (pflags & FIX_FLAG_DGPS_CORRECTION)	    session->gpsdata.status = STATUS_DGPS_FIX;	else	    session->gpsdata.status = STATUS_FIX;    }    return mask;}static gps_mask_t decode_itk_prnstatus(struct gps_device_t *session, unsigned char *buf, size_t len){    unsigned int i, tow, nsv, nchan, st;    unsigned short gps_week;    double t;    if (len < 62){	gpsd_report(LOG_PROG, "ITALK: runt PRN_STATUS (len=%d)\n", len);	return ERROR_SET;    }    gps_week = getuw(buf, 7 + 4);    tow = getul(buf, 7 + 6);    t = gpstime_to_unix((int)gps_week, tow/1000.0) - session->context->leap_seconds;    session->gpsdata.sentence_time = session->gpsdata.fix.time = t;    gpsd_zero_satellites(&session->gpsdata);    nchan = (unsigned int)((len - 10 - 52) / 20);    nsv = 0;    for (i = st = 0; i < nchan; i++) {	int off = 7+ 52 + 20 * i;	unsigned short flags;	flags = getuw(buf, off);	session->gpsdata.ss[i]		= (int)getuw(buf, off+2)&0xff;	session->gpsdata.PRN[i]		= (int)getuw(buf, off+4)&0xff;	session->gpsdata.elevation[i]	= (int)getsw(buf, off+6)&0xff;	session->gpsdata.azimuth[i]	= (int)getsw(buf, off+8)&0xff;	if (session->gpsdata.PRN[i]){	    st++;	    if (flags & PRN_FLAG_USE_IN_NAV)		session->gpsdata.used[nsv++] = session->gpsdata.PRN[i];	}    }    session->gpsdata.satellites = (int)st;    session->gpsdata.satellites_used = (int)nsv;    return USED_SET | SATELLITE_SET | TIME_SET;}static gps_mask_t decode_itk_utcionomodel(struct gps_device_t *session, unsigned char *buf, size_t len){    unsigned int tow;    int leap;    unsigned short gps_week, flags;    double t;    if (len != 64){	gpsd_report(LOG_PROG, "ITALK: bad UTC_IONO_MODEL (len %d, should be 64)\n", len);	return ERROR_SET;    }    flags = getuw(buf, 7);    if (0 == (flags & UTC_IONO_MODEL_UTCVALID))	return 0;    leap = (int)getuw(buf, 7 + 24);    if (session->context->leap_seconds < leap)	session->context->leap_seconds = leap;    gps_week = getuw(buf, 7 + 36);    tow = getul(buf, 7 + 38);    t = gpstime_to_unix((int)gps_week, tow/1000.0) - session->context->leap_seconds;    session->gpsdata.sentence_time = session->gpsdata.fix.time = t;    return TIME_SET;}/*@ +charint -usedef -compdef @*/static bool italk_write(int fd, unsigned char *msg, size_t msglen) {   bool      ok;   /* CONSTRUCT THE MESSAGE */   /* we may need to dump the message */   gpsd_report(LOG_IO, "writing italk control type %02x:%s\n",	       msg[0], gpsd_hexdump(msg, msglen));#ifdef ALLOW_RECONFIGURE   ok = (write(fd, msg, msglen) == (ssize_t)msglen);   (void)tcdrain(fd);#else   ok = 0;#endif /* ALLOW_RECONFIGURE */   return(ok);}/*@ -charint +usedef +compdef @*//*@ +charint @*/static gps_mask_t italk_parse(struct gps_device_t *session, unsigned char *buf, size_t len){    unsigned int type;    gps_mask_t mask = 0;    if (len == 0)	return 0;    type = (uint)getub(buf, 4);    /* we may need to dump the raw packet */    gpsd_report(LOG_RAW, "raw italk packet type 0x%02x length %d: %s\n", type, len, gpsd_hexdump(buf, len));    switch (type)    {    case ITALK_NAV_FIX:	gpsd_report(LOG_IO, "iTalk NAV_FIX len %d\n", len);	mask = decode_itk_navfix(session, buf, len);	break;    case ITALK_PRN_STATUS:	gpsd_report(LOG_IO, "iTalk PRN_STATUS len %d\n", len);	mask = decode_itk_prnstatus(session, buf, len);	break;    case ITALK_UTC_IONO_MODEL:	gpsd_report(LOG_IO, "iTalk UTC_IONO_MODEL len %d\n", len);	mask = decode_itk_utcionomodel(session, buf, len);	break;    case ITALK_ACQ_DATA:	gpsd_report(LOG_IO, "iTalk ACQ_DATA len %d\n", len);	break;    case ITALK_TRACK:	gpsd_report(LOG_IO, "iTalk TRACK len %d\n", len);	break;    case ITALK_PSEUDO:	gpsd_report(LOG_IO, "iTalk PSEUDO len %d\n", len);	break;    case ITALK_RAW_ALMANAC:	gpsd_report(LOG_IO, "iTalk RAW_ALMANAC len %d\n", len);	break;    case ITALK_RAW_EPHEMERIS:	gpsd_report(LOG_IO, "iTalk RAW_EPHEMERIS len %d\n", len);	break;    case ITALK_SUBFRAME:	gpsd_report(LOG_IO, "iTalk SUBFRAME len %d\n", len);	break;    case ITALK_BIT_STREAM:	gpsd_report(LOG_IO, "iTalk BIT_STREAM len %d\n", len);	break;    case ITALK_AGC:    case ITALK_SV_HEALTH:    case ITALK_PRN_PRED:    case ITALK_FREQ_PRED:    case ITALK_DBGTRACE:    case ITALK_START:    case ITALK_STOP:    case ITALK_SLEEP:    case ITALK_STATUS:    case ITALK_ITALK_CONF:    case ITALK_SYSINFO:    case ITALK_ITALK_TASK_ROUTE:    case ITALK_PARAM_CTRL:    case ITALK_PARAMS_CHANGED:    case ITALK_START_COMPLETED:    case ITALK_STOP_COMPLETED:    case ITALK_LOG_CMD:    case ITALK_SYSTEM_START:    case ITALK_STOP_SEARCH:    case ITALK_SEARCH:    case ITALK_PRED_SEARCH:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品1024| 国产一区二区三区在线观看免费视频 | 极品少妇xxxx偷拍精品少妇| 99视频在线精品| 秋霞影院一区二区| 日韩美女视频19| 久久综合久久综合亚洲| 欧美日韩情趣电影| 不卡av在线网| 国产一区二区三区美女| 五月婷婷色综合| 亚洲免费av网站| 久久久亚洲综合| 日韩一区二区在线观看视频| 91麻豆国产自产在线观看| 美女国产一区二区三区| 亚洲综合免费观看高清完整版| 久久精品无码一区二区三区| 欧美日韩中文另类| 99精品视频在线免费观看| 国产精品18久久久久久久久| 婷婷夜色潮精品综合在线| 亚洲欧美日韩久久精品| 国产欧美视频在线观看| 精品国产免费一区二区三区四区| 欧美日韩国产影片| 色哟哟精品一区| 99久久婷婷国产| 成人av午夜电影| 国产白丝网站精品污在线入口| 狠狠狠色丁香婷婷综合激情| 日韩高清一区在线| 91视频在线看| 久久精品水蜜桃av综合天堂| 欧美亚洲日本国产| 国产一区二区在线看| 久久国产精品第一页| 免费成人在线观看视频| 日韩电影在线一区二区三区| 亚洲成人av免费| 午夜精品久久久久久不卡8050| 一区二区三区在线影院| 亚洲激情图片小说视频| 一区二区三区日本| 亚洲成av人片| 蜜臀va亚洲va欧美va天堂| 久久草av在线| 国产永久精品大片wwwapp | 精品一二三四区| 久久99最新地址| 国精品**一区二区三区在线蜜桃| 激情综合色综合久久| 国产传媒久久文化传媒| 成人精品视频网站| 99免费精品视频| 欧洲视频一区二区| 在线播放亚洲一区| 欧美大片一区二区三区| 久久综合狠狠综合久久综合88| 26uuu国产日韩综合| 国产精品无遮挡| 亚洲精品一卡二卡| 亚洲成人av电影在线| 免费成人深夜小野草| 国产一区在线看| 91麻豆精东视频| 欧美一区二区视频在线观看2022 | 波多野结衣在线一区| 91丨porny丨最新| 精品视频1区2区3区| 日韩一区二区三区精品视频| 国产午夜三级一区二区三| 亚洲桃色在线一区| 婷婷成人综合网| 国产精品一线二线三线精华| 一本久道久久综合中文字幕 | 日韩精品自拍偷拍| 中文在线一区二区| 一级中文字幕一区二区| 久久国产精品99精品国产| 成人爱爱电影网址| 欧美日韩在线播放三区四区| 久久综合九色综合97婷婷| 亚洲激情男女视频| 精品中文字幕一区二区| 91亚洲永久精品| 精品美女一区二区| 亚洲精品一二三| 国产精品夜夜嗨| 欧美美女一区二区三区| 国产午夜亚洲精品理论片色戒| 亚洲电影欧美电影有声小说| 国产成人在线看| 欧美老女人第四色| 国产精品国产精品国产专区不片| 日韩电影在线免费观看| 91免费观看视频在线| 欧美刺激午夜性久久久久久久| 中文字幕一区二区三区蜜月| 蜜桃视频一区二区| 在线欧美小视频| 中文字幕av一区二区三区高| 天天影视涩香欲综合网| 91色.com| 国产精品无码永久免费888| 蜜臀av性久久久久蜜臀aⅴ四虎| 一本色道久久综合亚洲aⅴ蜜桃| 久久精品免费在线观看| 日韩av中文字幕一区二区| 一本在线高清不卡dvd| 欧美国产一区在线| 韩国精品免费视频| 欧美一区二区三区在线视频| 一区二区三区欧美激情| 成人av电影在线| 久久久不卡网国产精品二区 | 国产成人精品1024| 欧美大片拔萝卜| 日本在线不卡一区| 欧美视频三区在线播放| 亚洲三级电影全部在线观看高清| 国产福利一区二区三区视频 | 国产精品久久久久久久午夜片| 久久99久久久久久久久久久| 欧美日韩视频一区二区| 伊人色综合久久天天| a级精品国产片在线观看| 国产欧美日产一区| 国产成a人亚洲精品| 久久精品水蜜桃av综合天堂| 国产综合色在线| 国产亚洲精久久久久久| 国产一区日韩二区欧美三区| 精品国产乱码久久久久久老虎| 日韩成人精品在线| 欧美一区二区精品久久911| 日韩精品高清不卡| 欧美精品xxxxbbbb| 日韩精品久久久久久| 日韩一级黄色大片| 麻豆国产欧美一区二区三区| 91精品国产美女浴室洗澡无遮挡| 天堂av在线一区| 日韩欧美综合一区| 国产在线播放一区三区四| 久久一夜天堂av一区二区三区| 久久69国产一区二区蜜臀| 精品国产免费久久| 国产精品亚洲一区二区三区妖精 | 亚洲视频一区二区免费在线观看| aaa国产一区| 一区二区三区国产| 这里只有精品99re| 精品一区二区三区免费播放| 久久日韩精品一区二区五区| 高清shemale亚洲人妖| 国产精品成人免费在线| 在线欧美小视频| 另类小说一区二区三区| 日本一区二区三区免费乱视频| 99久久精品99国产精品| 亚洲一区中文日韩| 日韩视频免费观看高清完整版在线观看 | 亚洲精品国产视频| 欧美麻豆精品久久久久久| 韩国精品在线观看| 综合欧美亚洲日本| 在线观看91精品国产麻豆| 国产在线精品不卡| 一区二区三区免费在线观看| 欧美日韩成人综合在线一区二区| 精品一区二区三区免费毛片爱| 国产精品久久久久精k8| 欧美日韩视频不卡| 激情综合色播五月| 亚洲欧美日韩国产手机在线| 欧美精品久久久久久久多人混战| 国产一区二区三区久久悠悠色av| 亚洲日本va午夜在线电影| 欧美疯狂性受xxxxx喷水图片| 国产乱国产乱300精品| 悠悠色在线精品| 久久久高清一区二区三区| 欧美主播一区二区三区美女| 精品一区二区在线免费观看| 亚洲另类在线一区| www国产精品av| 在线影院国内精品| 国产美女视频一区| 亚洲va欧美va人人爽| 欧美国产日本视频| 欧美一区二区三区在| caoporn国产精品| 精品在线你懂的| 亚洲国产精品久久久男人的天堂 | 国产日韩欧美不卡| 91精品国产欧美一区二区| 99riav一区二区三区| 国产在线不卡一区| 丝袜亚洲另类欧美综合|