int main(int argc,char *argv[]) { int sock; int port=0; char *host; int flag,status; host=argv[argc-2]; port=atoi(argv[argc-1]); sock=ConnexOpen(host,port); if (sock<0) { fprintf(stderr,"Could not connect to host.\n"); exit(-1); } do { status=FitCnxRead(1,&sock,&prm,&fit,&flag,NULL); if (status==-1) break; if (flag !=-1) fprintf(stdout,"%d-%d-%d %d:%d:%d %d %d\n", prm.time.yr,prm.time.mo,prm.time.dy, prm.time.hr,prm.time.mt,prm.time.sc,prm.bmnum,prm.scan); } while(1); fprintf(stderr,"Connection failed.\n"); return 0; }
int main(int argc,char *argv[]) { int sock; int port=0; char *host=NULL; int size; unsigned char *buffer=NULL; if (argc<3) { fprintf(stderr,"host and port must be specified.\n"); exit(-1); } host=argv[1]; port=atoi(argv[2]); sock=ConnexOpen(host,port); if (sock<0) { fprintf(stderr,"Could not connect to host.\n"); exit(-1); } do { size=ConnexReadIP(sock,&buffer); if (size==-1) break; fprintf(stderr,"Message size:%d\n",size); } while(1); fprintf(stderr,"Connection failed.\n"); return 0; }
int main(int argc,char *argv[]) { int sock; int port=0; char *host=NULL; int size,status,cnt=0,i; unsigned char *buffer=NULL; fd_set read_set; if (argc<3) { fprintf(stderr,"host and port must be specified.\n"); exit(-1); } host=argv[1]; port=atoi(argv[2]); sock=ConnexOpen(host,port); if (sock<0) { fprintf(stderr,"Could not connect to host.\n"); exit(-1); } do { FD_ZERO(&read_set); FD_SET(sock,&read_set); status=select(FD_SETSIZE,&read_set,0,0,NULL); if (status==0) continue; if (FD_ISSET(sock,&read_set)) { /* start filling the input buffer */ size=read(sock,ibuf+iptr,256); iptr+=size; fprintf(stderr,"Input buffer size=%d\n",iptr); fprintf(stderr,"Packet count=%d\n",cnt); cnt++; } if ((cnt>0) && ((cnt % 4)==0)) { /* decode the memory buffer */ fprintf(stderr,"Decoding packets:\n"); i=0; do { size=ConnexReadMem(ibuf+i,iptr-i,&buffer); if (size==0) break; fprintf(stderr,"Message:%s\n",buffer); i+=size+8; } while (i<iptr); iptr=0; } } while(1); fprintf(stderr,"Connection failed.\n"); return 0; }
int main(int argc,char *argv[]) { int arg; int sock; int remote_port=0; char *host; int flag,status,size; unsigned char help=0; unsigned char option=0; unsigned char *buffer=NULL; unsigned char stream=255; char **tmp; struct DataMap *ptr; struct DataMapScalar *s; struct DataMapArray *a; int c,n,x; int sval=255; unsigned char dflg=0; OptionAdd(&opt,"-help",'x',&help); OptionAdd(&opt,"-option",'x',&option); OptionAdd(&opt,"d",'x',&dflg); OptionAdd(&opt,"s",'i',&sval); arg=OptionProcess(1,argc,argv,&opt,NULL); if (help==1) { OptionPrintInfo(stdout,hlpstr); exit(0); } if (option==1) { OptionDump(stdout,&opt); exit(0); } if (argc-arg<2) { OptionPrintInfo(stderr,errstr); exit(-1); } host=argv[argc-2]; remote_port=atoi(argv[argc-1]); stream=sval; sock=ConnexOpen(host,remote_port,NULL); if (sock<0) { fprintf(stderr,"Could not connect to host.\n"); exit(-1); } status=(write(sock,&stream,sizeof(char)) !=1); if (status !=0) { fprintf(stderr,"Could not set stream to host.\n"); exit(-1); } do { status=ConnexRead(1,&sock,&buffer,&size,&flag,NULL); if (status==-1) break; if (flag !=-1) { fprintf(stderr,"Message size:%d\n",size); if (size==0) continue; ptr=DataMapDecodeBuffer(buffer,size); if (ptr==NULL) fprintf(stderr,"Not a recognized message.\n"); else { fprintf(stdout,"scalars:\n"); for (c=0; c<ptr->snum; c++) { s=ptr->scl[c]; switch (s->type) { case DATACHAR: fprintf(stdout,"\tchar"); break; case DATASHORT: fprintf(stdout,"\tshort"); break; case DATAINT: fprintf(stdout,"\tint"); break; case DATAFLOAT: fprintf(stdout,"\tfloat"); break; case DATADOUBLE: fprintf(stdout,"\tdouble"); break; case DATASTRING: fprintf(stdout,"\tstring"); break; } fprintf(stdout,"\t%c%s%c",'"',s->name,'"'); fprintf(stdout," = "); switch (s->type) { case DATACHAR: fprintf(stdout,"%d",*(s->data.cptr)); break; case DATASHORT: fprintf(stdout,"%d",*(s->data.sptr)); break; case DATAINT: fprintf(stdout,"%d",*(s->data.iptr)); break; case DATAFLOAT: fprintf(stdout,"%g",*(s->data.fptr)); break; case DATADOUBLE: fprintf(stdout,"%g",*(s->data.dptr)); break; case DATASTRING: tmp=(char **) s->data.vptr; fprintf(stdout,"%c%s%c",'"',*tmp,'"'); break; } fprintf(stdout,"\n"); } fprintf(stdout,"arrays:\n"); for (c=0; c<ptr->anum; c++) { a=ptr->arr[c]; switch (a->type) { case DATACHAR: fprintf(stdout,"\tchar"); break; case DATASHORT: fprintf(stdout,"\tshort"); break; case DATAINT: fprintf(stdout,"\tint"); break; case DATAFLOAT: fprintf(stdout,"\tfloat"); break; case DATADOUBLE: fprintf(stdout,"\tdouble"); break; case DATASTRING: fprintf(stdout,"\tstring"); break; } fprintf(stdout,"\t%c%s%c",'"',a->name,'"'); fprintf(stdout," "); for (x=0; x<a->dim; x++) fprintf(stdout,"[%d]",a->rng[x]); if (dflg) { fprintf(stdout,"="); n=1; for (x=0; x<a->dim; x++) n=a->rng[x]*n; for (x=0; x<n; x++) { if (x % a->rng[a->dim-1]==0) fprintf(stdout,"\n\t\t"); else if (x !=0) fprintf(stdout,",\t"); switch (a->type) { case DATACHAR: fprintf(stdout,"%d",a->data.cptr[x]); break; case DATASHORT: fprintf(stdout,"%d",a->data.sptr[x]); break; case DATAINT: fprintf(stdout,"%d",a->data.iptr[x]); break; case DATAFLOAT: fprintf(stdout,"%g",a->data.fptr[x]); break; case DATADOUBLE: fprintf(stdout,"%g",a->data.dptr[x]); break; case DATASTRING: tmp=(char **) a->data.vptr; fprintf(stdout,"%c%s%c",'"',tmp[x],'"'); break; } } fprintf(stdout,"\n"); } else fprintf(stdout,"\n"); } DataMapFree(ptr); } } } while(1); fprintf(stderr,"Connection failed.\n"); return 0; }
int main(int argc,char *argv[]) { int arg; unsigned char help=0; unsigned char option=0; unsigned char vb=0; char *logstr=NULL; char *fnamestr=NULL; char *pathstr=NULL; char *pidstr=NULL; char *envstr; int sock; int remote_port=0; char dname[256]; char logbuf[256]; pid_t pid; FILE *fp; gzFile gzfp; char host[256]; int flag,status; struct RadarParm *prm; struct FitData *fit; sigset_t set; struct sigaction act; struct timeval tv; int reset=60; int cnt=0; int sval=255; unsigned char stream; struct RadarNetwork *network=NULL; char path[256]={PATH}; char pidfile[256]={PIDFILE}; char fname[256]={FNAME}; char tmpname[256]; char *port_fname=NULL; unsigned char port_flag=0; double now=-1; double dstart=0; int yr,mo,dy,hr,mt; double sc; double minpwr=3.0; prm=RadarParmMake(); fit=FitMake(); cfit=CFitMake(); pid=getpid(); envstr=getenv("SD_RADAR"); if (envstr==NULL) { fprintf(stderr,"Environment variable 'SD_RADAR' must be defined.\n"); exit(-1); } fp=fopen(envstr,"r"); if (fp==NULL) { fprintf(stderr,"Could not locate radar information file.\n"); exit(-1); } network=RadarLoad(fp); fclose(fp); if (network==NULL) { fprintf(stderr,"Failed to read radar information.\n"); exit(-1); } OptionAdd(&opt,"-help",'x',&help); OptionAdd(&opt,"-option",'x',&option); OptionAdd(&opt,"vb",'x',&vb); OptionAdd(&opt,"s",'i',&sval); OptionAdd(&opt,"mp",'d',&minpwr); OptionAdd(&opt,"rpf",'x',&port_flag); OptionAdd(&opt,"L",'t',&logstr); OptionAdd(&opt,"f",'t',&fnamestr); OptionAdd(&opt,"p",'t',&pathstr); OptionAdd(&opt,"if",'t',&pidstr); arg=OptionProcess(1,argc,argv,&opt,NULL); if (help==1) { OptionPrintInfo(stdout,hlpstr); exit(0); } if (option==1) { OptionDump(stdout,&opt); exit(0); } if (argc-arg<2) { OptionPrintInfo(stderr,errstr); exit(-1); } if (logstr !=NULL) strcpy(logfname,logstr); if (pathstr !=NULL) strcpy(path,pathstr); if (pidstr !=NULL) strcpy(pidfile,pidstr); strcpy(host,argv[argc-2]); if (port_flag==0) remote_port=atoi(argv[argc-1]); else port_fname=argv[argc-1]; stream=sval; strcpy(tmpname,fname); strcat(tmpname,"~"); if (port_flag==0) sprintf(logbuf,"Host:%s %d",host,remote_port); else sprintf(logbuf,"Host:%s Port File:%s",host,port_fname); loginfo(logfname,logbuf); sprintf(logbuf,"File path:%s",path); loginfo(logfname,logbuf); sprintf(logbuf,"pid file:%s",pidfile); loginfo(logfname,logbuf); sprintf(logbuf,"pid:%d",(int) pid); loginfo(logfname,logbuf); fp=fopen(pidfile,"w"); fprintf(fp,"%d\n",pid); fclose(fp); sigemptyset(&set); sigaddset(&set,SIGUSR1); act.sa_flags=0; act.sa_mask=set; act.sa_handler=trapsignal; sigaction(SIGUSR1,&act,NULL); now=0; do { resetflg=0; if (port_flag==1) { fp=fopen(port_fname,"r"); if (fp !=NULL) { fscanf(fp,"%d",&remote_port); fclose(fp); } else remote_port=1024; } sprintf(logbuf,"Connecting to host:%s %d",host,remote_port); loginfo(logfname,logbuf); sock=ConnexOpen(host,remote_port,NULL); if (sock<0) { loginfo(logfname,"Could not connect to host - retrying."); sleep(10); continue; } status=(write(sock,&stream,sizeof(char)) !=1); if (status !=0) { fprintf(stderr,"Could not set stream to host.\n"); close(sock); sock=-1; continue; } resetflg=0; do { tv.tv_sec=reset; status=FitCnxRead(1,&sock,prm,fit,&flag,&tv); if ((status==-1) || (flag==-1) || (resetflg !=0)) break; if (status==0) resetflg=1; if ((status==1) && (flag==1)) { fprintf(stderr,"."); fflush(stderr); dotflag=1; FitToCFit(minpwr,cfit,prm,fit); now=cfit->time; if (dstart==0) { dstart=now-(int) now % (24*3600); /* start of day */ TimeEpochToYMDHMS(dstart,&yr,&mo,&dy,&hr,&mt,&sc); sprintf(dname,"%s/%.4d%.2d%.2d.%s.cfit", path,yr,mo,dy,RadarGetCode(network,cfit->stid,0)); } gzfp=gzopen(dname,"a"); CFitWrite(gzfp,cfit); gzclose(gzfp); if ((now-dstart) >= 24*3600) { /* advance to the next day */ dstart=now-(int) now % (24*3600); /* start of day */ TimeEpochToYMDHMS(dstart,&yr,&mo,&dy,&hr,&mt,&sc); sprintf(dname,"%s/%.4d%.2d%.2d.%s.cfit", path,yr,mo,dy, RadarGetCode(network,cfit->stid,0)); } cnt++; } } while (1); if (resetflg==0) loginfo(logfname,"Connection failed."); if (resetflg==1) loginfo(logfname,"Connection timed out."); if (resetflg==2) loginfo(logfname,"Connection reset by signal."); ConnexClose(sock); } while(1); return 0; }