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

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

?? refclock_ulink.c

?? 網絡時間協議NTP 源碼 版本v4.2.0b 該源碼用于linux平臺下
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * refclock_ulink - clock driver for Ultralink  WWVB receiver *//*********************************************************************** *                                                                     * * Copyright (c) David L. Mills 1992-1998                              * *                                                                     * * Permission to use, copy, modify, and distribute this software and   * * its documentation for any purpose and without fee is hereby         * * granted, provided that the above copyright notice appears in all    * * copies and that both the copyright notice and this permission       * * notice appear in supporting documentation, and that the name        * * University of Delaware not be used in advertising or publicity      * * pertaining to distribution of the software without specific,        * * written prior permission. The University of Delaware makes no       * * representations about the suitability this software for any         * * purpose. It is provided "as is" without express or implied          * * warranty.                                                           * **********************************************************************/#ifdef HAVE_CONFIG_H#include <config.h>#endif#if defined(REFCLOCK) && defined(CLOCK_ULINK)#include <stdio.h>#include <ctype.h>#include "ntpd.h"#include "ntp_io.h"#include "ntp_refclock.h"#include "ntp_stdlib.h"/* This driver supports ultralink Model 320,325,330,331,332 WWVB radios * * this driver was based on the refclock_wwvb.c driver * in the ntp distribution. * * Fudge Factors * * fudge flag1 0 don't poll clock *             1 send poll character * * revision history: *		99/9/09 j.c.lang	original edit's *		99/9/11 j.c.lang	changed timecode parse to  *                                      match what the radio actually *                                      sends.  *              99/10/11 j.c.lang       added support for continous *                                      time code mode (dipsw2) *		99/11/26 j.c.lang	added support for 320 decoder *                                      (taken from Dave Strout's *                                      Model 320 driver) *		99/11/29 j.c.lang	added fudge flag 1 to control *					clock polling *		99/12/15 j.c.lang	fixed 320 quality flag *		01/02/21 s.l.smith	fixed 33x quality flag *					added more debugging stuff *					updated 33x time code explanation *		04/01/23 frank migge	added support for 325 decoder *                                      (tested with ULM325.F) * * Questions, bugs, ideas send to: *	Joseph C. Lang *	tcnojl1@earthlink.net * *	Dave Strout *	dstrout@linuxfoundry.com * *      Frank Migge *      frank.migge@oracle.com * * * on the Ultralink model 33X decoder Dip switch 2 controls * polled or continous timecode  * set fudge flag1 if using polled (needed for model 320 and 325) * dont set fudge flag1 if dip switch 2 is set on model 33x decoder*//* * Interface definitions */#define	DEVICE		"/dev/wwvb%d" /* device name and unit */#define	SPEED232	B9600	/* uart speed (9600 baud) */#define	PRECISION	(-10)	/* precision assumed (about 10 ms) */#define	REFID		"WWVB"	/* reference ID */#define	DESCRIPTION	"Ultralink WWVB Receiver" /* WRU */#define	LEN33X		32	/* timecode length Model 33X and 325 */#define LEN320		24	/* timecode length Model 320 */#define	SIGLCHAR33x	'S'	/* signal strength identifier char 325 */#define	SIGLCHAR325	'R'	/* signal strength identifier char 33x *//* *  unit control structure */struct ulinkunit {	u_char	tcswitch;	/* timecode switch */	l_fp	laststamp;	/* last receive timestamp */};/* * Function prototypes */static	int	ulink_start	P((int, struct peer *));static	void	ulink_shutdown	P((int, struct peer *));static	void	ulink_receive	P((struct recvbuf *));static	void	ulink_poll	P((int, struct peer *));/* * Transfer vector */struct	refclock refclock_ulink = {	ulink_start,		/* start up driver */	ulink_shutdown,		/* shut down driver */	ulink_poll,		/* transmit poll message */	noentry,		/* not used  */	noentry,		/* not used  */	noentry,		/* not used  */	NOFLAGS};/* * ulink_start - open the devices and initialize data for processing */static intulink_start(	int unit,	struct peer *peer	){	register struct ulinkunit *up;	struct refclockproc *pp;	int fd;	char device[20];	/*	 * Open serial port. Use CLK line discipline, if available.	 */	(void)sprintf(device, DEVICE, unit);	if (!(fd = refclock_open(device, SPEED232, LDISC_CLK)))		return (0);	/*	 * Allocate and initialize unit structure	 */	if (!(up = (struct ulinkunit *)	      emalloc(sizeof(struct ulinkunit)))) {		(void) close(fd);		return (0);	}	memset((char *)up, 0, sizeof(struct ulinkunit));	pp = peer->procptr;	pp->unitptr = (caddr_t)up;	pp->io.clock_recv = ulink_receive;	pp->io.srcclock = (caddr_t)peer;	pp->io.datalen = 0;	pp->io.fd = fd;	if (!io_addclock(&pp->io)) {		(void) close(fd);		free(up);		return (0);	}	/*	 * Initialize miscellaneous variables	 */	peer->precision = PRECISION;	peer->burst = NSTAGE;	pp->clockdesc = DESCRIPTION;	memcpy((char *)&pp->refid, REFID, 4);	return (1);}/* * ulink_shutdown - shut down the clock */static voidulink_shutdown(	int unit,	struct peer *peer	){	register struct ulinkunit *up;	struct refclockproc *pp;	pp = peer->procptr;	up = (struct ulinkunit *)pp->unitptr;	io_closeclock(&pp->io);	free(up);}/* * ulink_receive - receive data from the serial interface */static voidulink_receive(	struct recvbuf *rbufp	){	struct ulinkunit *up;	struct refclockproc *pp;	struct peer *peer;	l_fp	trtmp;		/* arrival timestamp */	int	quality;	/* quality indicator */	int	temp;		/* int temp */	char	syncchar;	/* synchronization indicator */	char	leapchar;	/* leap indicator */	char	modechar;	/* model 320 mode flag */        char	siglchar;	/* model difference between 33x/325 */	char	char_quality[2];	/* temp quality flag */	/*	 * Initialize pointers and read the timecode and timestamp	 */	peer = (struct peer *)rbufp->recv_srcclock;	pp = peer->procptr;	up = (struct ulinkunit *)pp->unitptr;	temp = refclock_gtlin(rbufp, pp->a_lastcode, BMAX, &trtmp);	/*	 * Note we get a buffer and timestamp for both a <cr> and <lf>,	 * but only the <cr> timestamp is retained. 	 */	if (temp == 0) {		if (up->tcswitch == 0) {			up->tcswitch = 1;			up->laststamp = trtmp;		} else		    up->tcswitch = 0;		return;	}	pp->lencode = temp;	pp->lastrec = up->laststamp;	up->laststamp = trtmp;	up->tcswitch = 1;#ifdef DEBUG	if (debug)		printf("ulink: timecode %d %s\n", pp->lencode,		    pp->a_lastcode);#endif	/*	 * We get down to business, check the timecode format and decode	 * its contents. If the timecode has invalid length or is not in	 * proper format, we declare bad format and exit.	 */	syncchar = leapchar = modechar = siglchar = ' ';	switch (pp->lencode ) {		case LEN33X:		/*                 * First we check if the format is 33x or 325:		 *   <CR><LF>S9+D 00 YYYY+DDDUTCS HH:MM:SSL+5 (33x)		 *   <CR><LF>R5_1C00LYYYY+DDDUTCS HH:MM:SSL+5 (325)		 * simply by comparing if the signal level is 'S' or 'R'                 */                 if (sscanf(pp->a_lastcode, "%c%*31c",                            &siglchar) == 1) {                    if(siglchar == SIGLCHAR325) {       		   /*		    * decode for a Model 325 decoder.		    * Timecode format from January 23, 2004 datasheet is:                    *		    *   <CR><LF>R5_1C00LYYYY+DDDUTCS HH:MM:SSL+5                    *		    *   R      WWVB decodersignal readability R1 - R5		    *   5      R1 is unreadable, R5 is best		    *   space  a space (0x20)		    *   1      Data bit 0, 1, M (pos mark), or ? (unknown).		    *   C      Reception from either (C)olorado or (H)awaii 		    *   00     Hours since last good WWVB frame sync. Will 		    *          be 00-99		    *   space  Space char (0x20) or (0xa5) if locked to wwvb		    *   YYYY   Current year, 2000-2099		    *   +      Leap year indicator. '+' if a leap year,		    *          a space (0x20) if not.		    *   DDD    Day of year, 000 - 365.		    *   UTC    Timezone (always 'UTC').		    *   S      Daylight savings indicator		    *             S - standard time (STD) in effect		    *             O - during STD to DST day 0000-2400		    *             D - daylight savings time (DST) in effect		    *             I - during DST to STD day 0000-2400

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费视频网| 欧美男男青年gay1069videost| 丁香六月综合激情| 欧美日韩一二三区| 国产欧美一区二区精品仙草咪| 亚洲影院久久精品| 国内久久精品视频| 91麻豆精品国产91久久久资源速度 | 波多野结衣一区二区三区| 欧美精品在欧美一区二区少妇| 国产精品天干天干在线综合| 免费av成人在线| 在线中文字幕不卡| 国产精品视频在线看| 久久精品国产亚洲一区二区三区| 在线视频欧美精品| 亚洲欧洲成人自拍| 成人精品视频一区| 国产亚洲欧美激情| 国产老女人精品毛片久久| 日韩午夜激情av| 亚洲成人资源在线| 欧美精品一级二级| 午夜久久福利影院| 久久久久久久久久看片| 亚洲尤物在线视频观看| 色视频成人在线观看免| 中文字幕一区二区5566日韩| 国产高清视频一区| 国产清纯白嫩初高生在线观看91| 国产在线一区二区| 精品国产乱码久久久久久图片 | 国产女主播视频一区二区| 激情久久久久久久久久久久久久久久| 67194成人在线观看| 午夜久久久久久久久| 欧美日韩www| 日日夜夜一区二区| 欧美一区二区三区免费大片| 日韩精品免费专区| 日韩久久精品一区| 精东粉嫩av免费一区二区三区| 欧美一二三在线| 国产精品综合在线视频| 国产亚洲精品aa| www.日韩精品| 亚洲一区二区三区四区在线观看 | 制服丝袜激情欧洲亚洲| 青青草97国产精品免费观看无弹窗版 | 自拍偷自拍亚洲精品播放| 色综合久久中文综合久久牛| 一区二区免费在线| 777xxx欧美| 国产一区二区三区在线观看免费视频 | 欧美精品xxxxbbbb| 久久99国产精品免费网站| 国产午夜精品美女毛片视频| heyzo一本久久综合| 亚洲国产成人porn| 精品欧美一区二区久久| 国产成人午夜99999| 一区二区成人在线| 精品久久久久久久人人人人传媒 | 日本欧美一区二区三区乱码| 久久免费美女视频| 日本道在线观看一区二区| 日韩av电影免费观看高清完整版 | 在线观看视频91| 毛片不卡一区二区| 国产精品不卡视频| 欧美一区二区私人影院日本| 国产成人精品综合在线观看| 香蕉久久夜色精品国产使用方法 | 日本一区二区三区电影| 欧美综合视频在线观看| 国产在线精品一区二区不卡了| 国产精品国产三级国产a| 欧美另类变人与禽xxxxx| 粉嫩av一区二区三区粉嫩| 亚洲国产欧美另类丝袜| 国产欧美一区二区三区沐欲| 欧美日韩小视频| 91亚洲精品久久久蜜桃| 精品一区二区三区日韩| 亚洲 欧美综合在线网络| 欧美激情一区三区| 日韩欧美国产电影| 欧美日韩不卡在线| 色婷婷综合久久久| 成人国产电影网| 国产在线不卡一区| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩毛片在线免费观看| 久久在线免费观看| 日韩欧美国产一区二区在线播放| 在线精品国精品国产尤物884a| 国产成人自拍网| 精品一二三四区| 日韩国产欧美一区二区三区| 亚洲免费av在线| 中文字幕欧美一区| 欧美国产精品专区| 久久综合九色综合97_久久久 | 免费看精品久久片| 亚洲一卡二卡三卡四卡| 国产精品女主播av| 国产区在线观看成人精品| 久久久久久久久久美女| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 欧美中文字幕久久| 91成人免费在线| 在线视频国内一区二区| 日本久久电影网| 在线观看av不卡| 在线精品亚洲一区二区不卡| 色婷婷综合激情| 欧美在线制服丝袜| 欧美女孩性生活视频| 欧美美女bb生活片| 欧美精三区欧美精三区| 91精品国产综合久久国产大片| 欧美电影在哪看比较好| 欧美一卡二卡三卡四卡| 日韩免费福利电影在线观看| 日韩视频一区二区| 26uuu精品一区二区| 亚洲国产成人一区二区三区| 国产精品国产三级国产普通话99 | 亚洲444eee在线观看| 婷婷成人综合网| 免费成人性网站| 国产高清精品在线| 91小视频在线| 欧美老肥妇做.爰bbww| 欧美成人精品福利| 国产欧美一区二区三区网站| 亚洲视频在线一区| 天天综合色天天综合色h| 免费欧美日韩国产三级电影| 国产精品一区二区三区网站| 波多野结衣亚洲| 欧美军同video69gay| 精品福利一二区| 国产精品欧美一区喷水| 亚洲图片欧美一区| 国产激情一区二区三区桃花岛亚洲| 99国产精品久久久久久久久久| 欧美日韩亚洲综合一区二区三区| 日韩欧美一二区| 中文字幕佐山爱一区二区免费| 天天操天天色综合| 成人深夜在线观看| 欧美日韩一区在线| 欧美激情一区二区三区蜜桃视频| 亚洲小说欧美激情另类| 国内久久精品视频| 欧美三级午夜理伦三级中视频| wwwwww.欧美系列| 亚洲精品视频自拍| 国产一区91精品张津瑜| 99久久99久久久精品齐齐| 日韩精品综合一本久道在线视频| 国产精品丝袜在线| 麻豆国产欧美日韩综合精品二区 | 国产一区二区三区视频在线播放| 91丨porny丨国产| 精品国产免费久久| 日欧美一区二区| 91女厕偷拍女厕偷拍高清| 精品对白一区国产伦| 亚洲国产毛片aaaaa无费看| 不卡的电视剧免费网站有什么| 日韩欧美国产一区在线观看| 亚洲无线码一区二区三区| 成人精品视频一区| www国产精品av| 日本不卡高清视频| 91高清视频在线| 中文天堂在线一区| 国产精品一区一区三区| 日韩欧美中文字幕公布| 五月天久久比比资源色| 91欧美激情一区二区三区成人| 国产女人水真多18毛片18精品视频| 日本一道高清亚洲日美韩| 欧美日韩国产小视频在线观看| 亚洲四区在线观看| 91香蕉视频在线| 136国产福利精品导航| 不卡的av电影在线观看| 国产色一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 日本一区二区三区久久久久久久久不| 日本视频一区二区三区| 欧美日韩国产色站一区二区三区| 亚洲黄色小视频| 欧美性色综合网| 亚洲国产wwwccc36天堂| 欧美日韩一区不卡| 五月激情综合色|