Modem demodulations returning bitstreams

This commit is contained in:
Dantali0n 2015-06-04 22:38:43 +02:00
parent 0a0e7db242
commit 2ca6786be7
2 changed files with 67 additions and 1 deletions

View File

@ -546,10 +546,17 @@ void AppFrame::OnIdle(wxIdleEvent& event) {
} else { } else {
DemodulatorMgr *mgr = &wxGetApp().getDemodMgr(); DemodulatorMgr *mgr = &wxGetApp().getDemodMgr();
int dSelection = demodModeSelectoradv->getSelection(); int dSelection = demodModeSelector->getSelection();
int dSelectionadv = demodModeSelectoradv->getSelection();
if (dSelection != -1 && dSelection != mgr->getLastDemodulatorType()) { if (dSelection != -1 && dSelection != mgr->getLastDemodulatorType()) {
mgr->setLastDemodulatorType(dSelection); mgr->setLastDemodulatorType(dSelection);
demodModeSelectoradv->setSelection(-1);
} }
else if(dSelectionadv != -1 && dSelectionadv != mgr->getLastDemodulatorType()) {
mgr->setLastDemodulatorType(dSelectionadv);
demodModeSelector->setSelection(-1);
}
demodGainMeter->setLevel(mgr->getLastGain()); demodGainMeter->setLevel(mgr->getLastGain());
if (demodSignalMeter->inputChanged()) { if (demodSignalMeter->inputChanged()) {
mgr->setLastSquelchLevel(demodSignalMeter->getInputValue()); mgr->setLastSquelchLevel(demodSignalMeter->getInputValue());

View File

@ -177,6 +177,8 @@ void DemodulatorThread::threadMain() {
freqdem_demodulate_block(demodFM, &agcData[0], bufSize, &demodOutputData[0]); freqdem_demodulate_block(demodFM, &agcData[0], bufSize, &demodOutputData[0]);
} else { } else {
float p; float p;
unsigned int bitstream;
int temp;
switch (demodulatorType.load()) { switch (demodulatorType.load()) {
case DEMOD_TYPE_LSB: case DEMOD_TYPE_LSB:
for (int i = 0; i < bufSize; i++) { // Reject upper band for (int i = 0; i < bufSize; i++) { // Reject upper band
@ -196,6 +198,63 @@ void DemodulatorThread::threadMain() {
ampmodem_demodulate(demodAM, inp->data[i], &demodOutputData[i]); ampmodem_demodulate(demodAM, inp->data[i], &demodOutputData[i]);
} }
break; break;
case DEMOD_TYPE_ASK:
for (int i = 0; i < bufSize; i++) {
modem_demodulate(demodASK, inp->data[i], &bitstream);
std::cout << bitstream << std::endl;
}
break;
case DEMOD_TYPE_BPSK:
for (int i = 0; i < bufSize; i++) {
modem_demodulate(demodBPSK, inp->data[i], &bitstream);
std::cout << bitstream << std::endl;
}
break;
case DEMOD_TYPE_DPSK:
for (int i = 0; i < bufSize; i++) {
modem_demodulate(demodDPSK, inp->data[i], &bitstream);
std::cout << bitstream << std::endl;
}
break;
case DEMOD_TYPE_PSK:
for (int i = 0; i < bufSize; i++) {
modem_demodulate(demodPSK, inp->data[i], &bitstream);
std::cout << bitstream << std::endl;
}
break;
case DEMOD_TYPE_OOK:
for (int i = 0; i < bufSize; i++) {
modem_demodulate(demodOOK, inp->data[i], &bitstream);
std::cout << bitstream << std::endl;
}
break;
case DEMOD_TYPE_SQAM:
for (int i = 0; i < bufSize; i++) {
modem_demodulate(demodSQAM, inp->data[i], &bitstream);
std::cout << bitstream << std::endl;
}
break;
case DEMOD_TYPE_ST:
for (int i = 0; i < bufSize; i++) {
modem_demodulate(demodST, inp->data[i], &bitstream);
std::cout << bitstream << std::endl;
}
break;
case DEMOD_TYPE_QAM:
for (int i = 0; i < bufSize; i++) {
modem_demodulate(demodQAM, inp->data[i], &bitstream);
std::cout << bitstream << std::endl;
}
break;
case DEMOD_TYPE_QPSK:
for (int i = 0; i < bufSize; i++) {
modem_demodulate(demodQPSK, inp->data[i], &bitstream);
// std::cout << bitstream << std::endl;
}
if(modem_get_demodulator_evm(demodQPSK) <= 0.8f) {
std::cout << "Lock!" << std::endl;
}
break;
} }
amOutputCeilMA = amOutputCeilMA + (amOutputCeil - amOutputCeilMA) * 0.025; amOutputCeilMA = amOutputCeilMA + (amOutputCeil - amOutputCeilMA) * 0.025;