/* convert lex message -------------------------------------------------------*/ static void convlex(FILE **ofp, rnxopt_t *opt, strfile_t *str, int *n) { gtime_t ts1,te1; trace(3,"convlex :\n"); ts1=opt->ts; if (ts1.time!=0) ts1=timeadd(ts1,-MAXDTOE); te1=opt->te; if (te1.time!=0) te1=timeadd(te1, MAXDTOE); if (ofp[6]&&screent(str->time,opt->ts,opt->te,0.0)) { lexoutmsg(ofp[6],&str->raw.lexmsg); n[6]++; } }
/* convert lex binary file to lex message log ---------------------------------- * convert lex binary file to lex message log * args : int type I output type (0:all) * int format I lex binary format (0:no-headr,1:with-header) * char *infile I input file * char *outfile I output file * return : status (1:ok,0:no correction) * notes : see ref [1] 5.7.2.1 *-----------------------------------------------------------------------------*/ extern int lexconvbin(int type, int format, const char *infile, const char *outfile) { FILE *ifp,*ofp; lexmsg_t msg; unsigned int preamb; unsigned char buff[LEXHEADLEN+LEXFRMLEN/8]; int i,j,n=0; size_t len=(format?LEXHEADLEN:0)+LEXFRMLEN/8; trace(3,"lexconvbin:type=%d infile=%s outfile=%s\n",type,infile,outfile); if (!(ifp=fopen(infile,"rb"))) { trace(1,"lexconvbin infile open error: %s\n",infile); return 0; } if (!(ofp=fopen(outfile,"w"))) { trace(1,"lexconvbin outfile open error: %s\n",outfile); fclose(ifp); return 0; } while (fread(buff,1,len,ifp)==len) { i=format?LEXHEADLEN*8:0; preamb =getbitu(buff,i,32); i+=32; msg.prn =getbitu(buff,i, 8); i+= 8; msg.type =getbitu(buff,i, 8); i+= 8; msg.alert=getbitu(buff,i, 1); i+= 1; if (preamb!=LEXFRMPREAMB) { trace(1,"lex frame preamble error: preamb=%08X\n",preamb); continue; } for (j=0;j<212;j++) { msg.msg[j]=(unsigned char)getbitu(buff,i,8); i+=8; } msg.msg[211]&=0xFE; fprintf(stderr,"frame=%5d prn=%d type=%d alert=%d\r",++n,msg.prn, msg.type,msg.alert); if (type==0||type==msg.type) { lexoutmsg(ofp,&msg); } } fclose(ifp); fclose(ofp); fprintf(stderr,"\n"); return 1; }