Fix mlat inter-block timestamp accounting in oversampling mode.

Add calculated phase into the per-message timestamp (it is already exactly a 12MHz offset)
This commit is contained in:
Oliver Jowett 2014-09-27 16:44:26 +01:00
parent 309f79c488
commit c3409302ce
2 changed files with 5 additions and 2 deletions

View file

@ -918,7 +918,10 @@ int main(int argc, char **argv) {
detectModeS(Modes.magnitude, MODES_ASYNC_BUF_SAMPLES);
// Update the timestamp ready for the next block
Modes.timestampBlk += (MODES_ASYNC_BUF_SAMPLES*6);
if (Modes.oversample)
Modes.timestampBlk += (MODES_ASYNC_BUF_SAMPLES*5);
else
Modes.timestampBlk += (MODES_ASYNC_BUF_SAMPLES*6);
Modes.stat_blocks_processed++;
} else {
pthread_cond_signal (&Modes.data_cond);

View file

@ -2292,7 +2292,7 @@ void detectModeS_oversample(uint16_t *m, uint32_t mlen) {
// be correct, but this can be handled by the next layer.
if ( (msglen > 0) && (errors <= MODES_MSG_ENCODER_ERRS) ) {
// Set initial mm structure details
mm.timestampMsg = Modes.timestampBlk + (j*5);
mm.timestampMsg = Modes.timestampBlk + (j*5) + initial_phase;
mm.signalLevel = 0;
mm.phase_corrected = 0;