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

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

?? tchat.c

?? gps開發專用的源代碼
?? C
字號:
/*
 * *************************************************************************
 *
 * Trimble Navigation, Ltd.
 * OEM Products Development Group
 * P.O. Box 3642
 * 645 North Mary Avenue
 * Sunnyvale, California 94088-3642
 *
 * Corporate Headquarter:
 *    Telephone:  (408) 481-8000
 *    Fax:        (408) 481-6005
 *
 * Technical Support Center:
 *    Telephone:  (800) 767-4822	(U.S. and Canada)
 *                (408) 481-6940    (outside U.S. and Canada)
 *    Fax:        (408) 481-6020
 *    BBS:        (408) 481-7800
 *    e-mail:     trimble_support@trimble.com
 *
 * *************************************************************************
 *
 * Vers	Date		   Changes									   Author
 * ----	---------   ----------------------------------------	   ----------
 * 1.12	10 Feb 94	Intial version								  pvwl
 * 1.13  17 Jul 95   Revisions                                    ahl
 * 1.40a  14 Jul 97   Revisions                                    pvwl
 * 1.40b  30 Sep 97   Revisions                                    pvwl
 *
 * *************************************************************************
 *
 * TCHAT.C contains the main() function for the TCHAT program. The
 * main()function is a good model for programs that interface with a TSIP-
 * based receiver.  The functions in TSIP_IFC.C can be used as is, or with
 * minimal modifications.  The following modules are required for TCHAT:
 *
 *    TSIP_IFC.H: prototypes
 *    TSIP_IFC.C: standard command/report interface for TSIP
 *
 *    TSIPINCL.H: prototypes
 *    TCHAT.C: main program
 *    TSIP_RPT.C: report interpreter
 *    T_SERIAL.C: serial buffering routines
 *
 * Binary Output Storage:  If a filename for binary output is specified on
 * the command line, all reports will be saved into a binary file, which
 * may be printed in ASCII using the TSIPPRNT program.
 *
 *
 * *************************************************************************
 *
 */

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include "tsip_ifc.h"
#include "tsipincl.h"

#define TCHATVNUM "7a52 Release"

FILE *tsipstream;

/* Generate Control-letter character */
#define cntrl(x) ((x)-'A'+ 0x01)
static short iPort ;

/**/
/*********************************************************************/
/* Dummy routines routines for calls in TSIP_RPT.C   */
/*********************************************************************/
void GPS_time_to_PC (double rtime)
{
	rtime = 1.0-rtime;	/* dummy statement to avoid compiler warnings */
}
void show_crlf (void)
{
	printf("\n");
}

/******************************************************************/
void print_pause_message(void)
{
	printf ("\n           SCREEN IS PAUSED; PRESS ANY KEY TO CONTINUE");
}

void print_failure_message (void)
{
	printf ("\nTCHAT Syntax = \n   TCHAT -c(comport) -f<binary log file name>");
	printf ("\n    Comport must be declared.  Binary log file is optional.");
	exit(0);
}

void print_header(void)
{
	printf (
		"       TCHAT -- GPS Sensor Packet Data Monitor -- %s(%s)\n",
		TCHAT_VERNUM, TSIP_VERNUM);
	printf (
"                        Use 'c' command to switch COMPORT                   \n");
	printf (
"                         Press '?' for list of commands                     \n\n");
	printf (
"         For DEMO MODE:   Press <SPACE> to cycle through the commands       \n");
	print_pause_message();
}

void ParseCommandLine (short argc, char *argv[])
{
	char
		filename[80], *argvi;
	short
		iarg;

	iPort = -1 ;
	for (iarg =0; iarg < argc; iarg++)
	{
		argvi = argv[iarg];
		if (argvi[0] != '-' && argvi[0] != '/')
		{
			/* only accept command line arguments starting with '-' or '/' */
			continue;
		}
		switch (argvi[1])
		{
		case 'c': case 'C':
			switch (argvi[2])
			{
			case '1':
				iPort = 1;
				break;
			case '2':
				iPort = 2;
				break;
			}
			/* set COM port to 9600 8-1-odd */
			initsio (iPort, 9600, 8, 1, 0x08) ;
			/*  send end-of-packet to clear out serial  */
			sendb (DLE);
			sendb (ETX);

			break;
		case 'f': case 'F':
			strcpy (filename, &argvi[2]);
			tsipstream = fopen (filename, "wb");
			if (tsipstream == NULL) {
				printf ("\nFile %s could not be opened", filename);
				closeserial();
				print_failure_message ();
			}
			break;
		}
	}

	if (iPort == -1)
	{
		printf ("Comport not specified correctly.");
		print_failure_message ();
	}
}

void help_screen (void)
{
	printf ("\n SAMPLE COMMANDS AVAILABLE IN THIS TCHAT VERSION:");
	printf ("\n '^I': switch between COM1 and COM2");
	printf ("\n ' v': request SW version");
	printf ("\n ' t': show time");
	printf ("\n ' M': show nav mode");
	printf ("\n '^R': reset receiver to default");
	printf ("\n ' h': show receiver health");
	printf ("\n ' s': show satellite signal levels");
	printf ("\n ' S': toggle output to/from 8F-20 ");
	printf ("\n ' O': show I/O options");
	printf ("\n ' /': toggle raw measmt output on/off");
	printf ("\n ' >': output tracking status");
	printf ("\n ' p': pause the scrolling of the screen");
	printf ("\n Esc : quit program");
}

/* keystroke command processing; a simplified form of TSIP_CMD.C
* returns TRUE if a command is to be sent to the receiver, FALSE otherwise
* For the meanings of these commands, consult the TSIP_IFC.C and the
* TSIP Appendix in the Manual.  The source code TSIP_CMD.C may also help.
* Commands may be added or customized by the user.
*/
#define NUM_KBCMDS 17
short proc_keystroke (unsigned char kbch)
{
	static unsigned char
		aux_code = 0,
		superpackets_on = 1,
		icycle;
	unsigned char
		command_cycle[NUM_KBCMDS] =
		{'v','h','s','O','S','O','t','S',
		'M','/','>','>',0x0D};
		/* last element = 0x0D */


	if (kbch == ' ')
	{
		/* DEMO MODE: space bar cycles through commands */
		kbch = command_cycle[icycle];
		if (kbch == 0x0D)	/* last element */
		{
			icycle = 0;
			kbch = command_cycle[0];
		}
		icycle++;
	}
	switch (kbch) {

	case  cntrl('I'):				/* switch between COM1 and COM2 */
		printf ("\n???? switch COMPORT from COM%d to COM%d", iPort, 3-iPort);
		if (iPort == 1)
		{
			iPort = 2;
		}
		else
		{
			iPort = 1;
		}
		initsio (iPort, 9600, 8, 1, 0x08);
		printf ("\nSwitching to COM%d", iPort);
		return TRUE;

	case 'v':            /* request_SW_version (); */
		printf ("\n???? request version number ");
		cmd_0x1F ();
		return TRUE;

	case 't':				/* query time */
		printf ("\n???? request time ");
		cmd_0x21 ();
		return TRUE;

	case 'M':				/* request_nav_mode (); */
		printf ("\n???? request nav mode");
		cmd_0x24 ();
		return TRUE;

	case cntrl('R'):		/* reset receiver */
		printf ("\n???? hot-start receiver (soft reset)");
		cmd_0x25 ();
		return TRUE;

	case 'h':				/* request_rx_health ();*/
		printf ("\n???? request receiver health");
		cmd_0x26 ();
		return TRUE;

	case 's':				/* request_SNRs ();*/
		printf ("\n???? request satellite signal strengths");
		cmd_0x27 ();
		return TRUE;

	case 'S':				/* toggle Superpackets output on/off */
		printf ("\n???? toggle superpacket output on/off");
		if (superpackets_on)
		{
			cmd_0x35s (0x12, 2, 0, aux_code);
			superpackets_on = 0;
		}
		else
		{
			cmd_0x35s (0x20, 0, 0, aux_code);
			superpackets_on = 1;
		}
		return TRUE;

	case 'O':				/* query IO options */
		printf ("\n???? request I/O options");
		cmd_0x35q ();
		return TRUE;

	case '/':		      /* toggle measurement output on/off */
		printf ("\n???? toggle raw measurement output on/off");
		aux_code = aux_code ? 0 : 3;
		cmd_0x35s (0x12, 0, 0, aux_code);
		return TRUE;

	case '>':		      /* output tracking status */
		printf ("\n???? request satellite tracking status");
		cmd_0x3C (0);
		return TRUE;

	case '?':
		help_screen ();
		return FALSE;
	}
	return FALSE;
}

/******************************************************************/
/*            serial port input routine, used in main()           */
/******************************************************************/
short getb (void)
{
	/*  get byte, if available  */
	short this_byte;

	this_byte = get_char (iPort) ;
	if (this_byte != -1)
	{
		/* store in raw binary output file */
		if (tsipstream) fputc (this_byte, tsipstream);
	}
	return this_byte;
}

/******************************************************************/
/* serial port output routine, used in send_cmd() of TSIP_IFC.C   */
/******************************************************************/
short sendb (unsigned char db)
{
	/*  send a byte, if able  */
	return (put_char (iPort, db)) ;
}

/* ************************************************************** */
/* ****************  main routine for TCHAT ****************** */
/* ************************************************************** */
void main (short argc, char *argv[])
{
	unsigned char
		kbch,
		pause = TRUE,
		report_printed;
	static TSIPPKT
		rpt;
	short
		thisbyte;
	/*
	 * parse command line.
	 * In this routine, initsio() is called, which
	 * allocates serial buffers in T_SERIAL.C
	 */
	ParseCommandLine (argc, argv);

	print_header();

	/* set up the receiver outputs for TCHAT */
	/* enable 8f20 Superpackets for automatic output */
	/* Note: this is default for v5.10 and later */
	cmd_0x8E20e();
	/* Set I/O options to output 8f20 superpackets only */
	cmd_0x35s (0x20, 0, 0, 0);

	/*
	 * Explicitly initialize rpt.status data field.
	 * Not necessary if rpt.status is set to 0 at initialization.
	 * If rpt.status is not initialized, the parser recovers immediately.
	 */
	rpt.status = TSIP_PARSED_EMPTY;
	report_printed = FALSE;

	do {

		/* get new incoming byte from serial port; -1 if serial port is empty */
		thisbyte = getb();

		/*
		 * tsip_input_proc() is a standard TSIP routine that strips
		 * control characters and accumulates incoming bytes into rpt.buf[].
		 * rpt.status indicates when the mesage has been completely received.
		 * It has value TSIP_PARSED_FULL when a complete message has been
		 * collected in rpt.buf[].
		 */
		tsip_input_proc (&rpt, thisbyte);

		if (rpt.status == TSIP_PARSED_FULL)
		{
			/* complete report collected */
			if (!report_printed)
			{
				/* not printed yet */
				if (!pause) rpt_packet (&rpt);
				/* prevent this report from printing again */
				report_printed = TRUE;
			}
		}
		else
		{
			/* new report coming in */
			report_printed = FALSE;
		}

		/* service keyboard commands */
		kbch = 0;
		if (kbhit ()) {
			if (!pause)
			{
				kbch = getch ();
				proc_keystroke (kbch);
				if (kbch == 'p' || kbch == '?') {
					pause = TRUE;
					print_pause_message();
				}
			}
			else pause = FALSE;
		}
	} while (kbch != 0x1B);	/* ESC */

	/*
	 * Free serial buffers in T_SERIAL.C.
	 * This subroutine MUST be called if initsio() has been called.
	 * If this is not done, computer will hang!
	 */
	closeserial();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品77777竹菊影视小说| 亚洲高清视频中文字幕| 欧美日韩国产免费| 91视频在线看| 色婷婷久久综合| 色综合天天综合在线视频| jlzzjlzz亚洲女人18| proumb性欧美在线观看| 色综合天天性综合| 色综合中文字幕| 欧美日韩国产综合一区二区三区| 欧美私人免费视频| 91精品国产综合久久精品app| 欧美片在线播放| 日韩一级精品视频在线观看| 日韩欧美一级二级三级| 久久久久久久久99精品| 国产精品拍天天在线| 国产精品国产自产拍在线| 国产精品免费丝袜| 悠悠色在线精品| 蜜桃精品视频在线| 精品一区二区在线观看| 高清视频一区二区| 欧美性极品少妇| 久久人人爽爽爽人久久久| 国产精品久久久久久亚洲毛片| 亚洲精品国产视频| 日韩1区2区3区| 大尺度一区二区| 天天操天天色综合| 欧美精品xxxxbbbb| 欧美日韩你懂得| 精品va天堂亚洲国产| 国产三级精品在线| 一区二区三区美女| 久久99蜜桃精品| 色婷婷久久久久swag精品| 日韩视频一区二区三区在线播放 | av爱爱亚洲一区| 在线播放日韩导航| 中文字幕av资源一区| 亚洲欧美另类久久久精品2019| 乱一区二区av| 欧美午夜精品一区二区三区| 久久久亚洲精华液精华液精华液| 一区二区在线观看免费| 精品亚洲国产成人av制服丝袜| 色先锋aa成人| 国产精品素人视频| 日韩va亚洲va欧美va久久| 91影院在线观看| 国产色产综合色产在线视频| 婷婷成人激情在线网| 国产成人av一区二区| 欧美一区二区三区人| 亚洲精品美腿丝袜| 国产成人精品影视| 日韩免费观看高清完整版| 亚洲综合区在线| 99精品国产99久久久久久白柏| 精品国产成人系列| 欧美96一区二区免费视频| 在线观看日韩精品| 亚洲欧洲国产日韩| 成人污视频在线观看| 久久久久久久久久久久久久久99| 麻豆91精品91久久久的内涵| 欧美美女直播网站| 亚洲综合在线五月| 色婷婷综合激情| 亚洲三级小视频| 色综合久久久久久久久| 日韩一区在线免费观看| 波多野结衣91| 成人免费一区二区三区视频| www.99精品| 亚洲精品国产无天堂网2021| 欧美在线免费观看视频| 夜夜精品视频一区二区| 欧美亚一区二区| 日韩在线a电影| 日韩欧美在线网站| 经典三级在线一区| www国产精品av| 国产mv日韩mv欧美| 国产精品免费看片| 99国产精品久久久久久久久久久| 综合激情成人伊人| 91高清在线观看| 亚洲18女电影在线观看| 91精品国产综合久久久蜜臀粉嫩| 久久av资源站| 久久久精品国产免大香伊 | 国产精品看片你懂得| 不卡的电影网站| 亚洲精品视频自拍| 欧美一区二区在线视频| 国产91丝袜在线18| 亚洲麻豆国产自偷在线| 欧美日韩情趣电影| 精品一区二区国语对白| 国产精品成人在线观看| 欧美日韩aaaaa| 国产成人免费视频一区| 亚洲精品免费在线播放| 日韩欧美三级在线| eeuss鲁片一区二区三区| 亚洲成av人片| 中文字幕av一区二区三区免费看| 日本道精品一区二区三区| 美女精品自拍一二三四| 一区免费观看视频| 日韩一区二区视频| 91免费在线视频观看| 久久99精品视频| 亚洲一级在线观看| 久久精品夜夜夜夜久久| 日本黄色一区二区| 国产一区在线视频| 亚洲成在人线在线播放| 国产日韩精品一区| 日韩亚洲国产中文字幕欧美| 成人的网站免费观看| 偷偷要91色婷婷| 欧美丝袜丝交足nylons图片| 韩国精品一区二区| 日韩伦理av电影| 色哟哟一区二区在线观看| 国产剧情一区在线| 亚洲精品日韩一| 26uuu另类欧美| 在线观看视频一区| 久久国产视频网| 亚洲麻豆国产自偷在线| 亚洲精品在线电影| 欧美最猛黑人xxxxx猛交| 亚洲一线二线三线久久久| 国产精品家庭影院| 日韩欧美一二区| 欧美亚洲一区二区在线| 国产精品18久久久久久久久| 狠狠色狠狠色综合系列| 亚洲自拍偷拍网站| 亚洲国产电影在线观看| 91精选在线观看| 色拍拍在线精品视频8848| 成人综合在线观看| 久久疯狂做爰流白浆xx| 亚洲最大的成人av| 国产精品色哟哟| 欧美性三三影院| 日本福利一区二区| 成人免费黄色在线| 黑人巨大精品欧美一区| 亚洲视频香蕉人妖| 一区二区三区加勒比av| 国产精品久久二区二区| 国产性色一区二区| 日韩欧美123| 久久久www免费人成精品| 在线成人小视频| 欧美人伦禁忌dvd放荡欲情| 91视频免费看| 国产成人综合网| 91在线观看下载| 97精品超碰一区二区三区| 国产精品一区二区在线播放| 国产一区二区三区四区五区美女 | 欧美日韩视频在线观看一区二区三区| 成人性生交大片免费看在线播放 | 99久久久久久| www.亚洲精品| thepron国产精品| 福利电影一区二区| 一本大道久久a久久综合| 91视视频在线观看入口直接观看www | 777午夜精品视频在线播放| 欧美色窝79yyyycom| 制服视频三区第一页精品| 欧美精品一二三| 日韩午夜在线影院| 欧美亚洲国产一卡| 91亚洲精品乱码久久久久久蜜桃| 91视频www| 欧美丝袜丝交足nylons图片| 欧美在线观看视频在线| 337p亚洲精品色噜噜噜| 91精品国产高清一区二区三区| 在线亚洲人成电影网站色www| 欧美日韩专区在线| 精品久久久久久久久久久久包黑料| 精品国产三级电影在线观看| 亚洲婷婷综合色高清在线| 亚洲国产精品欧美一二99 | 一本到不卡免费一区二区| 日韩欧美国产综合| 2023国产精品自拍| 中文字幕欧美日韩一区| 亚洲一区二区三区四区在线观看|