mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2024-11-23 20:28:40 -05:00
Modem demodulations returning bitstreams
This commit is contained in:
parent
0a0e7db242
commit
2ca6786be7
@ -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());
|
||||||
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user