diff --git a/demod/mod/mXXmod.c b/demod/mod/mXXmod.c index 8749229..895d224 100644 --- a/demod/mod/mXXmod.c +++ b/demod/mod/mXXmod.c @@ -542,9 +542,16 @@ static int print_pos(gpx_t *gpx, int bcOK, int csOK) { if (!err2) { fprintf(stdout, " vH: "col_GPSvel"%.1f"col_TXT" D: "col_GPSvel"%.1f"col_TXT" vV: "col_GPSvel"%.1f"col_TXT" ", gpx->vH, gpx->vD, gpx->vV); } - if (gpx->option.vbs >= 3 && bcOK) { - ui32_t byte = (gpx->frame_bytes[0x14]<<8) | gpx->frame_bytes[0x13]; - fprintf(stdout, " ( %04u)", (byte>>2)&0x1FFF); + if (gpx->option.vbs >= 3 && bcOK) { // SN + ui8_t b0 = gpx->frame_bytes[0x12]; + ui32_t s2 = (gpx->frame_bytes[0x14]<<8) | gpx->frame_bytes[0x13]; + ui8_t ym = b0 & 0x7F; // #{0x0,..,0x77}=120=10*12 + ui8_t y = ym / 12; + ui8_t m = (ym % 12)+1; + fprintf(stdout, " (%u%02u", y, m); // more samples needed + fprintf(stdout, " _ "); // (b0>>7)+1? (s2&0x3)+2? + fprintf(stdout, "_"); // ? (s2>>13)&0x3 ?? (s2&0x3)? + fprintf(stdout, "%04u)", (s2>>2)&0x1FFF); } if (gpx->option.vbs >= 2) { fprintf(stdout, " # ");