/* input receiver raw data from stream ----------------------------------------- * fetch next receiver raw data and input a message from stream * args : raw_t *raw IO receiver raw data control struct * int format I receiver raw data format (STRFMT_???) * unsigned char data I stream data (1 byte) * return : status (-1: error message, 0: no message, 1: input observation data, * 2: input ephemeris, 3: input sbas message, * 9: input ion/utc parameter, 31: input lex message) *-----------------------------------------------------------------------------*/ extern int input_raw(raw_t *raw, int format, unsigned char data) { trace(5,"input_raw: format=%d data=0x%02x\n",format,data); switch (format) { case STRFMT_OEM4 : return input_oem4 (raw,data); case STRFMT_OEM3 : return input_oem3 (raw,data); case STRFMT_UBX : return input_ubx (raw,data); case STRFMT_SS2 : return input_ss2 (raw,data); case STRFMT_CRES : return input_cres (raw,data); case STRFMT_STQ : return input_stq (raw,data); case STRFMT_GW10 : return input_gw10 (raw,data); case STRFMT_JAVAD: return input_javad(raw,data); case STRFMT_NVS : return input_nvs (raw,data); case STRFMT_LEXR : return input_lexr (raw,data); } return 0; }
/* input gw10 raw message from file -------------------------------------------- * input next gw10 raw message from file * args : raw_t *raw IO receiver raw data control struct * FILE *fp I file pointer * return : status(-2: end of file, -1...9: same as above) *-----------------------------------------------------------------------------*/ extern int input_gw10f(raw_t *raw, FILE *fp) { int i,data,ret; trace(4,"input_gw10f:\n"); for (i=0;i<4096;i++) { if ((data=fgetc(fp))==EOF) return -2; if ((ret=input_gw10(raw,(unsigned char)data))) return ret; } return 0; /* return at every 4k bytes */ }