Skip to content

Commit

Permalink
convrnx: reinitialize the raw state between passes
Browse files Browse the repository at this point in the history
  • Loading branch information
ourairquality committed Sep 3, 2024
1 parent 2aaf692 commit 4b0d6a4
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions src/convrnx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1312,6 +1312,36 @@ static int convrnx_s(int sess, int format, rnxopt_t *opt, const char *file,
/* open stream file */
if (!open_strfile(str,epath[i])) continue;

// Reinitialize the input state.
if (str->format == STRFMT_RTCM2 || str->format == STRFMT_RTCM3) {
free_rtcm(&str->rtcm);
if (!init_rtcm(&str->rtcm)) {
showmsg("init rtcm error");
for (int i = 0; i < MAXEXFILE; i++) free(epath[i]);
free_strfile(str);
return 0;
}
strcpy(str->rtcm.opt, opt->rcvopt);
} else if (str->format <= MAXRCVFMT) {
free_raw(&str->raw);
if (!init_raw(&str->raw, str->format)) {
showmsg("reinit raw error");
for (int i = 0; i < MAXEXFILE; i++) free(epath[i]);
free_strfile(str);
return 0;
}
strcpy(str->raw.opt, opt->rcvopt);
} else if (format == STRFMT_RINEX) {
free_rnxctr(&str->rnx);
if (!init_rnxctr(&str->rnx)) {
showmsg("reinit rnx error");
for (int i = 0; i < MAXEXFILE; i++) free(epath[i]);
free_strfile(str);
return 0;
}
strcpy(str->rnx.opt, opt->rcvopt);
}

/* input message */
for (j=0;(type=input_strfile(str))>=-1;j++) {

Expand Down

0 comments on commit 4b0d6a4

Please sign in to comment.