mirror of
https://github.com/xdsopl/robot36.git
synced 2025-12-06 07:12:07 +01:00
throw away up to end of header and signal status
This commit is contained in:
parent
cc7a6dcf71
commit
daf4d88702
|
|
@ -200,6 +200,14 @@ public class Decoder {
|
||||||
copyScaled(scale);
|
copyScaled(scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void drawLines(int color, int count) {
|
||||||
|
for (int i = 0; i < count; ++i) {
|
||||||
|
Arrays.fill(scopeBuffer.pixels, scopeBuffer.line * scopeBuffer.width, (scopeBuffer.line + 1) * scopeBuffer.width, color);
|
||||||
|
Arrays.fill(scopeBuffer.pixels, (scopeBuffer.line + scopeBuffer.height / 2) * scopeBuffer.width, (scopeBuffer.line + 1 + scopeBuffer.height / 2) * scopeBuffer.width, color);
|
||||||
|
scopeBuffer.line = (scopeBuffer.line + 1) % (scopeBuffer.height / 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private boolean detectHeader(int syncPulseIndex) {
|
private boolean detectHeader(int syncPulseIndex) {
|
||||||
if (!checkHeader)
|
if (!checkHeader)
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -324,7 +332,8 @@ public class Decoder {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (detectHeader(last9msSyncPulses[last9msSyncPulses.length - 1])) {
|
int leaderBreakIndex = last9msSyncPulses[last9msSyncPulses.length - 1];
|
||||||
|
if (detectHeader(leaderBreakIndex)) {
|
||||||
Mode mode;
|
Mode mode;
|
||||||
int[] pulses = null;
|
int[] pulses = null;
|
||||||
int[] lines = null;
|
int[] lines = null;
|
||||||
|
|
@ -340,24 +349,25 @@ public class Decoder {
|
||||||
}
|
}
|
||||||
if (mode != null && pulses != null && lines != null) {
|
if (mode != null && pulses != null && lines != null) {
|
||||||
lastMode = mode;
|
lastMode = mode;
|
||||||
lastSyncPulseIndex = pulses[pulses.length - 1] + leaderToneSamples + visCodeSamples + mode.getFirstSyncPulseIndex();
|
lastSyncPulseIndex = mode.getFirstSyncPulseIndex();
|
||||||
lastScanLineSamples = mode.getScanLineSamples();
|
lastScanLineSamples = mode.getScanLineSamples();
|
||||||
lastFrequencyOffset = leaderFreqOffset;
|
lastFrequencyOffset = leaderFreqOffset;
|
||||||
for (int i = 0; i < pulses.length; ++i)
|
for (int i = 0; i < pulses.length; ++i)
|
||||||
pulses[i] = lastSyncPulseIndex + (i - pulses.length + 1) * lastScanLineSamples;
|
pulses[i] = lastSyncPulseIndex + (i - pulses.length + 1) * lastScanLineSamples;
|
||||||
Arrays.fill(lines, lastScanLineSamples);
|
Arrays.fill(lines, lastScanLineSamples);
|
||||||
int shift = lastSyncPulseIndex - scanLineReserveSamples;
|
int shift = leaderBreakIndex + leaderToneSamples + visCodeSamples;
|
||||||
if (shift > scanLineReserveSamples) {
|
adjustSyncPulses(last5msSyncPulses, shift);
|
||||||
lastSyncPulseIndex -= shift;
|
adjustSyncPulses(last9msSyncPulses, shift);
|
||||||
adjustSyncPulses(last5msSyncPulses, shift);
|
adjustSyncPulses(last20msSyncPulses, shift);
|
||||||
adjustSyncPulses(last9msSyncPulses, shift);
|
int endSample = curSample;
|
||||||
adjustSyncPulses(last20msSyncPulses, shift);
|
curSample = 0;
|
||||||
int endSample = curSample;
|
for (int i = shift; i < endSample; ++i)
|
||||||
curSample = 0;
|
scanLineBuffer[curSample++] = scanLineBuffer[i];
|
||||||
for (int i = shift; i < endSample; ++i)
|
drawLines(0xff00ff00, 8);
|
||||||
scanLineBuffer[curSample++] = scanLineBuffer[i];
|
} else {
|
||||||
}
|
drawLines(0xffff0000, 8);
|
||||||
}
|
}
|
||||||
|
drawLines(0xff000000, 10);
|
||||||
}
|
}
|
||||||
if (lastSyncPulseIndex >= scanLineReserveSamples && curSample > lastSyncPulseIndex + (lastScanLineSamples * 5) / 4) {
|
if (lastSyncPulseIndex >= scanLineReserveSamples && curSample > lastSyncPulseIndex + (lastScanLineSamples * 5) / 4) {
|
||||||
copyLines(lastMode.decodeScanLine(pixelBuffer, scratchBuffer, scanLineBuffer, scopeBuffer.width, lastSyncPulseIndex, lastScanLineSamples, lastFrequencyOffset));
|
copyLines(lastMode.decodeScanLine(pixelBuffer, scratchBuffer, scanLineBuffer, scopeBuffer.width, lastSyncPulseIndex, lastScanLineSamples, lastFrequencyOffset));
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue