示例#1
0
文件: rcvraw.c 项目: Barala/rtklib
/* 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;
}
示例#2
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 */
}