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

📄 monit.c

📁 实现ipvlbi数据记录
💻 C
📖 第 1 页 / 共 2 页
字号:
			width = 4;		if(width == TDS_SAMPLING_8BIT)			width = 8;		if(ch == TDS_SAMPLING_4CH)			ch = 4;		else			ch =1;		printf("sampling setting is %d kHz %d BIT %d CH\n",freq,width,ch);	}	       /* board time get */ /*	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);       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",day,h,m,s); */       	rv = ioctl(fd_in, TDSIO_BUFFER_CLEAR);   // 儃乕僪忋偺FIFO偺僋儕傾乕	if (rv == -1) {		perror("ioctl() FIFO clear failed ");		goto end;	}	else {		printf("ioctl() FIFO clear succeed\n");	}/* 	rv = ioctl(fd_in, TDSIO_SYNC_1PPS);           // 侾俹俹俽傊偺摨婜 obsoleted 2002-10-3	if (rv == -1) {                               // 		perror("ioctl() 1pps sync failed ");		goto end;	}	else {		printf("ioctl() 1pps sync succeed\n");	}*//*	rv = ioctl(fd_in, TDSIO_SYNC_TIME);            // 奜晹帪崗擖椡偼巊梡偟側偄	if (rv == -1) {		perror("ioctl() time sync failed ");		goto end;	}	else {		printf("ioctl() time sync succeed\n");	}*/	rv = ioctl(fd_in, TDSIO_SAMPLING_START);	if (rv == -1) {		perror("ioctl() start sampling failed ");              printf("Probably time was not set for the IP-VLBI board.\n");              printf("Please set time using timesettk and try again.\n");		goto end;	}	else {		printf("ioctl() start sampling succeed\n");	}  /* MONITOR START */       printf("\033[2J");   //  Erase the screen ( move the cursor to home ) for VT100       printf("\033[H");   //  move the cursor to home       printf("*****************************************************************\n");       printf("*                                                               *\n");       printf("*     MONIT (siganl input level monitor through IP-VLBI board)  *\n");       printf("*                     (Ver 2.01  2002-10-03)                    *\n");       printf("*                             by                                *\n");       printf("*                          T. Kondo                             *\n");       printf("*                                                               *\n");       printf("*                        CTRL C  for STOP                       *\n");       printf("*                                                               *\n");       printf("*****************************************************************\n");       printf("\n");	{             if(numch == 1)             {              printf("              CH 1\n");              } else {              printf("              CH 1         CH 2         CH 3         CH 4\n");              }		c = 0;              /* histgram data initialize */              for(k=0; k<8; k++)              {                  for(w1=0; w1<4; w1++)                  {                      ihist[w1][k]=0;                  }              }             		//while (c < BUFSIZ * BUFSIZ) {		while (c <=  allbyte) {			int nbyte = sizeof(buf);   // nbyte = 8192			rv = read(fd_in, buf, nbyte);			if (rv == -1) {				perror("read() failed ");				goto end;			}          //           if((c != 1) && (c !=0)){ goto bypass1;}                     parseADdata(buf, rv, adbit, xdata, &pos);                    /* Histgram Statistics */                     w3=0;                     for(k=0; k<pos; k++)                     {                       w1=xdata[k];                       if(adbit == 8) {w2=w1/32; }                       if(adbit == 4) {w2=w1/2; }                       if(adbit == 2) {w2=w1; }                       if(adbit == 1) {w2=w1; }                       ihist[w3][w2]+=1;                                              w3++;                       if( w3 == 4 ) { w3 =0; }                       if( numch == 1 ) { w3 =0; }                     }                     if((c != 1) && (c !=0)){ goto bypass1;}                                          /* Maximum found by Channel */                     for(mm=0; mm<numch; mm++)                     {                         w3=0;                         for(k=0; k<8; k++)                         {                            if(ihist[mm][k] > w3){ w3=ihist[mm][k]; }                         }                         hmax[mm]=w3;                     }                    // printf("debug4\n");  // debug                   //  printf(" MAX %d %d %d %d\n",hmax[0],hmax[1],hmax[2],hmax[3]);                     if(c !=0 ) {                        printf("\033[9A");  // 僇乕僜儖傪忋偵俋峴摦偐偡                     }                     /* Histgram Plot by Level */                      for(k=7; k>=0; k--)                      {                         if(k==7 || k==0)                         {                               if(k==7) {strcpy(iline, "  + FULL ");}                             if(k==0) {strcpy(iline, "  - FULL ");}                          } else {                              strcpy(iline, "         ");                          }                         for(mm=0; mm<numch; mm++)                         {                             strcat(iline, "  |");                             w3=hmax[mm];                             if(w3 < 10){ w3=10;}                             w2=w3/10;                                                          w1=ihist[mm][k];                         //    printf(" k = %d  ch = %d  W3 = %d  w1= %d\n",k,mm,w3,w1);                             w1=w1/w2;                                                     if((w1 >= 0) && (w1 <= 10))                             {                             if(w1 == 0 ){ strcat(iline,lev0);}                             if(w1 == 1 ){ strcat(iline,lev1);}                             if(w1 == 2 ){ strcat(iline,lev2);}                             if(w1 == 3 ){ strcat(iline,lev3);}                             if(w1 == 4 ){ strcat(iline,lev4);}                             if(w1 == 5 ){ strcat(iline,lev5);}                             if(w1 == 6 ){ strcat(iline,lev6);}                             if(w1 == 7 ){ strcat(iline,lev7);}                             if(w1 == 8 ){ strcat(iline,lev8);}                             if(w1 == 9 ){ strcat(iline,lev9);}                             if(w1 == 10 ){ strcat(iline,lev10);}                             }                             else                             {                                 strcat(iline,lev0);                             }                                                   }                         printf(" %s\n",iline);                       //  printf(" k = %d  %d  %d %d %d\n",k,ihist[0][k],ihist[1][k],                       //                 ihist[2][k],ihist[3][k]);                                              }                     printf("\n");                      /* histgram data initialize */                     for(k=0; k<8; k++)                     {                         for(w1=0; w1<4; w1++)                         {                               ihist[w1][k]=0;                          }                      }                                          //printf("\033[9A");  // 僇乕僜儖傪忋偵俋峴摦偐偡                    bypass1:  ;                     //printf(" nbyte = %d\n",nbyte);   // debug			// rv = write(fd_out, buf, rv);			//c= c+ nbyte;                    c++;                    if(c == 40*numch ){c=1;}		}	}	rv = ioctl(fd_in, TDSIO_SAMPLING_STOP);	if (rv == -1) {		perror("ioctl() stop sampling failed ");		goto end;	}	else {		printf("ioctl() stop sampling succeed\n");	}/*	close(fd_out);*/       /* board time get *//*	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);       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",day,h,m,s);*/ end:	close(fd_in);	return rv;}int main(int argc, char **argv){	//char dev[] = "/dev/tds0";	char outfile[] = "./tds.data";	int rv;       int span, sfreq, adbit, numch;	if(argc != 2){		printf("Usage: monit numch\n");		printf("         where  numch ---- number of channel used\n");		printf("                           1,4\n");		exit(0);	}       	numch = atoi(*(argv + 1 ));       if(numch != 1) {numch=4;}       span=100;       sfreq=1;       adbit = 8;/*	printf(" span = %d\n",span);    // debug       printf(" sfreq= %d\n",sfreq);   // debug       printf(" adbit= %d\n",adbit);   // debug       printf(" numch= %d\n",numch);   // debug*/       printf("*******************************************\n");	printf("*      IP-VLBI board signal monitor       *\n");	printf("*       MONIT (Ver 2.0 2002/05/26)        *\n");       printf("*                by                       *\n");       printf("*             T. Kondo/CRL                *\n");       printf("*******************************************\n");	printf(" \n");       SetHandler();       rv=sampleget_monit(outfile, span, sfreq, adbit, numch);       return 0;}

⌨️ 快捷键说明

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