Keeping track of last decode position
This commit is contained in:
parent
0887f12e8c
commit
6d9e2b8461
@ -4343,21 +4343,52 @@ bool MainWindow::decodeEnqueueReady(qint32 k, qint32 k0){
|
|||||||
bool experiment = true;
|
bool experiment = true;
|
||||||
|
|
||||||
if(experiment){
|
if(experiment){
|
||||||
static qint32 lastDecodeStartA = -1;
|
static qint32 lastDecodeStartA = 0;
|
||||||
qint32 oneSecondFramesA = computeFramesPerCycleForDecode(Varicode::JS8CallNormal)/computePeriodForSubmode(Varicode::JS8CallNormal);
|
|
||||||
if(lastDecodeStartA == -1 || k < k0 || k - lastDecodeStartA > oneSecondFramesA){
|
|
||||||
startA = k-computeFramesNeededForDecode(Varicode::JS8CallNormal);
|
|
||||||
|
|
||||||
|
qint32 maxSamples = m_detector->period()*RX_SAMPLE_RATE;
|
||||||
|
qint32 oneSecondSamples = RX_SAMPLE_RATE;
|
||||||
|
|
||||||
|
// when we've incremented at least one second into the future
|
||||||
|
qint32 incrementedBy = k - lastDecodeStartA;
|
||||||
|
if(k < lastDecodeStartA){
|
||||||
|
incrementedBy = maxSamples - lastDecodeStartA + k;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(incrementedBy >= oneSecondSamples){
|
||||||
|
//startA = lastDecodeStartA + oneSecondSamples;
|
||||||
|
//szA = computeFramesNeededForDecode(Varicode::JS8CallNormal) + oneSecondSamples;
|
||||||
|
//lastDecodeStartA +=
|
||||||
|
|
||||||
|
startA = k - incrementedBy - computeFramesNeededForDecode(Varicode::JS8CallNormal);
|
||||||
if(startA < 0){
|
if(startA < 0){
|
||||||
// decoder wraps around ranges
|
startA += maxSamples;
|
||||||
startA += m_detector->period() * RX_SAMPLE_RATE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
szA = computeFramesNeededForDecode(Varicode::JS8CallNormal);
|
szA = incrementedBy + computeFramesNeededForDecode(Varicode::JS8CallNormal);
|
||||||
|
|
||||||
|
qDebug() << "A: start:" << startA << "sz:" << szA << "stop:" << startA + szA;
|
||||||
|
|
||||||
lastDecodeStartA = k;
|
lastDecodeStartA = k;
|
||||||
couldDecodeA = true;
|
couldDecodeA = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//qint32 oneSecondFramesA = computeFramesPerCycleForDecode(Varicode::JS8CallNormal)/computePeriodForSubmode(Varicode::JS8CallNormal);
|
||||||
|
//if(lastDecodeStartA == -1 || k < k0 || k - lastDecodeStartA > oneSecondFramesA){
|
||||||
|
// startA = k-computeFramesNeededForDecode(Varicode::JS8CallNormal);
|
||||||
|
//
|
||||||
|
// if(startA < 0){
|
||||||
|
// // decoder wraps around ranges
|
||||||
|
// startA += m_detector->period() * RX_SAMPLE_RATE;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// szA = computeFramesNeededForDecode(Varicode::JS8CallNormal);
|
||||||
|
// lastDecodeStartA = k;
|
||||||
|
// couldDecodeA = true;
|
||||||
|
//}
|
||||||
|
|
||||||
couldDecodeB = couldDecodeC = couldDecodeE = false;
|
couldDecodeB = couldDecodeC = couldDecodeE = false;
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
@ -4979,7 +5010,7 @@ void MainWindow::processDecodedLine(QByteArray t){
|
|||||||
// draw decodes
|
// draw decodes
|
||||||
m_wideGraph->drawLine(QColor(Qt::red), f, f + computeBandwidthForSubmode(m));
|
m_wideGraph->drawLine(QColor(Qt::red), f, f + computeBandwidthForSubmode(m));
|
||||||
|
|
||||||
#if 1
|
#if 0
|
||||||
// use normal decodes for auto drift if we haven't already defined a new drift for this period
|
// use normal decodes for auto drift if we haven't already defined a new drift for this period
|
||||||
if(/*!hasNewDrift && */ (m == Varicode::JS8CallSlow || m == Varicode::JS8CallNormal)){
|
if(/*!hasNewDrift && */ (m == Varicode::JS8CallSlow || m == Varicode::JS8CallNormal)){
|
||||||
auto now = QDateTime::currentDateTimeUtc();
|
auto now = QDateTime::currentDateTimeUtc();
|
||||||
|
Loading…
Reference in New Issue
Block a user