⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timesync.c

📁 实现ipvlbi数据记录
💻 C
字号:
/**************************************************************//*                                                            *//*   Program Name :  timesync                                 *//*                                                            *//*      Version:  0.00  2002-07-01                            *//*                1.00  2002-10-04                            *//*                                                            *//*      Copyright (c) 2002 T.Kondo/CRL All Right Reserved     *//*                                                            *//**************************************************************//* 俬俹亅倁俴俛俬儃乕僪  侾俹俹俽摨婜僾儘僌儔儉        乮帪崗僙僢僩偼暿偺僜僼僩偱峴偆乯         by T.Kondo 2002.7.1    憱傜偣曽 timesync [period]         偙偙偱 period  帪崗摨婜屻昞帵偡傞帪娫乮昩乯                       僨僼僅儖僩偼侾侽昩娫昞帵*/#include <stdio.h>#include <errno.h>#include <fcntl.h>#include <unistd.h>#include <sys/stat.h>#include <sys/tdsio.h>int sec2hmss(unsigned int sec, int* hh, int* mm, int* ss);int sec2hms(unsigned int sec, int* hh, int* mm, int* ss){	//char cbuf[60];	long int j;	*hh=sec/3600 ;       j=sec-*hh*(long)3600;       *mm=(int)(j/60) ;	*ss=(int)(j-*mm*(long)60) ;    return 0;}int main(int argc, char **argv){	int fd_in,rv;	unsigned int time,day,sec; // 僨僶僀僗偐傜撉傒崬傫偩尰嵼偺帪崗忣曬傪奿擺       unsigned int secold, secmax;	int  yyyy, mm, dd;      // 帪娫愝掕(timeset)偱棙梡	int  h, m, s;           // 帪娫愝掕(timeset)偱棙梡       int counter;       int i;	if(argc >= 2){	   secmax = atoi(*(argv + 1 ));          if(secmax <= 0) {secmax=10;}       } else {          secmax=10;       }	fd_in = open("/dev/tds0", O_RDONLY);  //僨僶僀僗偺僆乕僾儞	if (fd_in == -1) {		perror("device open() error ");		return -1;	}	printf("IP-VLBI Board 1PPS Time Sync  (by T.KONDO)\n");	//1昩摨婜偺愝掕	rv = ioctl(fd_in, TDSIO_SYNC_1PPS);	if (rv == -1) {		perror("ioctl() 1pps sync failed ");		return -1;	}	printf("1pps sync ok\n");	time = 0; //擮偺偨傔弶婜壔       secold=90000;       counter=0;	//僨僶僀僗偐傜帪崗忣曬偺庢摼 and display while       do{	rv = ioctl(fd_in, TDSIO_GET_TIME, &time);	if (rv == -1) {		perror("ioctl() time get failed ");		return -1;	}       day=TDS_GET_DAYS(time);       sec=TDS_GET_SEC(time);       if (sec!=secold) {       i=sec2hms(sec,&h,&m,&s);	//printf("get count day from device [%5d]\n",TDS_GET_DAYS(time));	//printf("get count sec from device [%5d]\n",TDS_GET_SEC(time)); 	printf("%03d %02d:%02d:%02d\n\033[A",day,h,m,s);      counter++;       }       secold=sec;       }while(counter <=secmax);	printf("\n\n");}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -