mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-03-25 13:49:52 -04:00
DATV demod: API updates and small fixes
This commit is contained in:
parent
4b1a861717
commit
b0c49f3b50
@ -114,7 +114,7 @@ template<typename T> struct datvconstellation: runnable
|
||||
unsigned long decimation;
|
||||
long pixels_per_frame;
|
||||
cstln_lut<eucl_ss, 256> **cstln; // Optional ptr to optional constellation
|
||||
TVScreen *m_objDATVScreen;
|
||||
TVScreen *m_tvScreen;
|
||||
pipereader<std::complex<T> > in;
|
||||
unsigned long phase;
|
||||
std::vector<int> cstln_rows;
|
||||
@ -126,14 +126,14 @@ template<typename T> struct datvconstellation: runnable
|
||||
T _xymin,
|
||||
T _xymax,
|
||||
const char *_name = nullptr,
|
||||
TVScreen *objDATVScreen = nullptr) :
|
||||
TVScreen *tvScreen = nullptr) :
|
||||
runnable(sch, _name ? _name : _in.name),
|
||||
xymin(_xymin),
|
||||
xymax(_xymax),
|
||||
decimation(DEFAULT_GUI_DECIMATION),
|
||||
pixels_per_frame(1024),
|
||||
cstln(0),
|
||||
m_objDATVScreen(objDATVScreen),
|
||||
m_tvScreen(tvScreen),
|
||||
in(_in),
|
||||
phase(0)
|
||||
{
|
||||
@ -144,16 +144,16 @@ template<typename T> struct datvconstellation: runnable
|
||||
//Symbols
|
||||
while (in.readable() >= pixels_per_frame)
|
||||
{
|
||||
if ((!phase) && m_objDATVScreen)
|
||||
if ((!phase) && m_tvScreen)
|
||||
{
|
||||
m_objDATVScreen->resetImage();
|
||||
m_tvScreen->resetImage();
|
||||
|
||||
std::complex<T> *p = in.rd(), *pend = p + pixels_per_frame;
|
||||
|
||||
for (; p < pend; ++p)
|
||||
{
|
||||
m_objDATVScreen->selectRow(256 * (p->real() - xymin) / (xymax - xymin));
|
||||
m_objDATVScreen->setDataColor(
|
||||
m_tvScreen->selectRow(256 * (p->real() - xymin) / (xymax - xymin));
|
||||
m_tvScreen->setDataColor(
|
||||
256 - 256 * ((p->imag() - xymin) / (xymax - xymin)),
|
||||
255, 0, 255);
|
||||
}
|
||||
@ -166,12 +166,12 @@ template<typename T> struct datvconstellation: runnable
|
||||
|
||||
for (;(row_it != cstln_rows.end()) && (col_it != cstln_cols.end()); ++row_it, ++col_it)
|
||||
{
|
||||
m_objDATVScreen->selectRow(*row_it);
|
||||
m_objDATVScreen->setDataColor(*col_it, 250, 250, 5);
|
||||
m_tvScreen->selectRow(*row_it);
|
||||
m_tvScreen->setDataColor(*col_it, 250, 250, 5);
|
||||
}
|
||||
}
|
||||
|
||||
m_objDATVScreen->renderImage(0);
|
||||
m_tvScreen->renderImage(0);
|
||||
}
|
||||
|
||||
in.read(pixels_per_frame);
|
||||
|
@ -129,9 +129,106 @@ void DATVDemod::applySettings(const DATVDemodSettings& settings, bool force)
|
||||
QString debugMsg = tr("DATVDemod::applySettings: force: %1").arg(force);
|
||||
settings.debug(debugMsg);
|
||||
|
||||
QList<QString> reverseAPIKeys;
|
||||
|
||||
if (settings.m_rgbColor != m_settings.m_rgbColor) {
|
||||
reverseAPIKeys.append("rgbColor");
|
||||
}
|
||||
if (settings.m_title != m_settings.m_title) {
|
||||
reverseAPIKeys.append("title");
|
||||
}
|
||||
if (settings.m_rfBandwidth != m_settings.m_rfBandwidth) {
|
||||
reverseAPIKeys.append("rfBandwidth");
|
||||
}
|
||||
if (settings.m_centerFrequency != m_settings.m_centerFrequency) {
|
||||
reverseAPIKeys.append("centerFrequency");
|
||||
}
|
||||
if (settings.m_standard != m_settings.m_standard) {
|
||||
reverseAPIKeys.append("standard");
|
||||
}
|
||||
if (settings.m_modulation != m_settings.m_modulation) {
|
||||
reverseAPIKeys.append("modulation");
|
||||
}
|
||||
if (settings.m_fec != m_settings.m_fec) {
|
||||
reverseAPIKeys.append("fec");
|
||||
}
|
||||
if (settings.m_softLDPC != m_settings.m_softLDPC) {
|
||||
reverseAPIKeys.append("softLDPC");
|
||||
}
|
||||
if (settings.m_softLDPCToolPath != m_settings.m_softLDPCToolPath) {
|
||||
reverseAPIKeys.append("softLDPCToolPath");
|
||||
}
|
||||
if (settings.m_softLDPCMaxTrials != m_settings.m_softLDPCMaxTrials) {
|
||||
reverseAPIKeys.append("softLDPCMaxTrials");
|
||||
}
|
||||
if (settings.m_maxBitflips != m_settings.m_maxBitflips) {
|
||||
reverseAPIKeys.append("maxBitflips");
|
||||
}
|
||||
if (settings.m_audioMute != m_settings.m_audioMute) {
|
||||
reverseAPIKeys.append("audioMute");
|
||||
}
|
||||
if (settings.m_audioDeviceName != m_settings.m_audioDeviceName) {
|
||||
reverseAPIKeys.append("audioDeviceName");
|
||||
}
|
||||
if (settings.m_symbolRate != m_settings.m_symbolRate) {
|
||||
reverseAPIKeys.append("symbolRate");
|
||||
}
|
||||
if (settings.m_notchFilters != m_settings.m_notchFilters) {
|
||||
reverseAPIKeys.append("notchFilters");
|
||||
}
|
||||
if (settings.m_allowDrift != m_settings.m_allowDrift) {
|
||||
reverseAPIKeys.append("allowDrift");
|
||||
}
|
||||
if (settings.m_fastLock != m_settings.m_fastLock) {
|
||||
reverseAPIKeys.append("fastLock");
|
||||
}
|
||||
if (settings.m_filter != m_settings.m_filter) {
|
||||
reverseAPIKeys.append("filter");
|
||||
}
|
||||
if (settings.m_hardMetric != m_settings.m_hardMetric) {
|
||||
reverseAPIKeys.append("hardMetric");
|
||||
}
|
||||
if (settings.m_rollOff != m_settings.m_rollOff) {
|
||||
reverseAPIKeys.append("rollOff");
|
||||
}
|
||||
if (settings.m_viterbi != m_settings.m_viterbi) {
|
||||
reverseAPIKeys.append("viterbi");
|
||||
}
|
||||
if (settings.m_excursion != m_settings.m_excursion) {
|
||||
reverseAPIKeys.append("excursion");
|
||||
}
|
||||
if (settings.m_audioVolume != m_settings.m_audioVolume) {
|
||||
reverseAPIKeys.append("audioVolume");
|
||||
}
|
||||
if (settings.m_videoMute != m_settings.m_videoMute) {
|
||||
reverseAPIKeys.append("videoMute");
|
||||
}
|
||||
if (settings.m_udpTSAddress != m_settings.m_udpTSAddress) {
|
||||
reverseAPIKeys.append("udpTSAddress");
|
||||
}
|
||||
if (settings.m_udpTSPort != m_settings.m_udpTSPort) {
|
||||
reverseAPIKeys.append("udpTSPort");
|
||||
}
|
||||
if (settings.m_udpTS != m_settings.m_udpTS) {
|
||||
reverseAPIKeys.append("udpTS");
|
||||
}
|
||||
if (settings.m_playerEnable != m_settings.m_playerEnable) {
|
||||
reverseAPIKeys.append("playerEnable");
|
||||
}
|
||||
|
||||
DATVDemodBaseband::MsgConfigureDATVDemodBaseband *msg = DATVDemodBaseband::MsgConfigureDATVDemodBaseband::create(settings, force);
|
||||
m_basebandSink->getInputMessageQueue()->push(msg);
|
||||
|
||||
if (settings.m_useReverseAPI)
|
||||
{
|
||||
bool fullUpdate = ((m_settings.m_useReverseAPI != settings.m_useReverseAPI) && settings.m_useReverseAPI) ||
|
||||
(m_settings.m_reverseAPIAddress != settings.m_reverseAPIAddress) ||
|
||||
(m_settings.m_reverseAPIPort != settings.m_reverseAPIPort) ||
|
||||
(m_settings.m_reverseAPIDeviceIndex != settings.m_reverseAPIDeviceIndex) ||
|
||||
(m_settings.m_reverseAPIChannelIndex != settings.m_reverseAPIChannelIndex);
|
||||
webapiReverseSendSettings(reverseAPIKeys, settings, fullUpdate || force);
|
||||
}
|
||||
|
||||
m_settings = settings;
|
||||
}
|
||||
|
||||
@ -274,6 +371,9 @@ void DATVDemod::webapiUpdateChannelSettings(
|
||||
if (channelSettingsKeys.contains("udpTS")) {
|
||||
settings.m_udpTS = response.getDatvDemodSettings()->getUdpTs() == 1;
|
||||
}
|
||||
if (channelSettingsKeys.contains("playerEnable")) {
|
||||
settings.m_playerEnable = response.getDatvDemodSettings()->getPlayerEnable() == 1;
|
||||
}
|
||||
if (channelSettingsKeys.contains("streamIndex")) {
|
||||
settings.m_streamIndex = response.getDatvDemodSettings()->getStreamIndex();
|
||||
}
|
||||
@ -346,6 +446,8 @@ void DATVDemod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& res
|
||||
}
|
||||
|
||||
response.getDatvDemodSettings()->setUdpTsPort(settings.m_udpTSPort);
|
||||
response.getDatvDemodSettings()->setUdpTs(settings.m_udpTS ? 1 : 0);
|
||||
response.getDatvDemodSettings()->setPlayerEnable(settings.m_playerEnable ? 1 : 0);
|
||||
response.getDatvDemodSettings()->setStreamIndex(settings.m_streamIndex);
|
||||
response.getDatvDemodSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0);
|
||||
|
||||
@ -372,6 +474,8 @@ void DATVDemod::webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& respons
|
||||
response.getDatvDemodReport()->setUdpRunning(udpRunning() ? 1 : 0);
|
||||
response.getDatvDemodReport()->setVideoActive(videoActive() ? 1 : 0);
|
||||
response.getDatvDemodReport()->setVideoDecodeOk(videoDecodeOK() ? 1 : 0);
|
||||
response.getDatvDemodReport()->setMer(getMERAvg());
|
||||
response.getDatvDemodReport()->setCnr(getCNRAvg());
|
||||
}
|
||||
|
||||
void DATVDemod::sendChannelSettings(
|
||||
@ -493,6 +597,9 @@ void DATVDemod::webapiFormatChannelSettings(
|
||||
if (channelSettingsKeys.contains("udpTS") || force) {
|
||||
swgDATVDemodSettings->setUdpTs(settings.m_udpTS ? 1 : 0);
|
||||
}
|
||||
if (channelSettingsKeys.contains("playerEnable") || force) {
|
||||
swgDATVDemodSettings->setPlayerEnable(settings.m_playerEnable ? 1 : 0);
|
||||
}
|
||||
if (channelSettingsKeys.contains("streamIndex") || force) {
|
||||
swgDATVDemodSettings->setStreamIndex(settings.m_streamIndex);
|
||||
}
|
||||
|
@ -99,7 +99,7 @@ public:
|
||||
m_basebandSink->setMessageQueueToGUI(queue);
|
||||
}
|
||||
|
||||
void SetTVScreen(TVScreen *objScreen) { m_basebandSink->setTVScreen(objScreen); }
|
||||
void SetTVScreen(TVScreen *tvScreen) { m_basebandSink->setTVScreen(tvScreen); }
|
||||
void SetVideoRender(DATVideoRender *objScreen) { m_basebandSink->SetVideoRender(objScreen); }
|
||||
DATVideostream *getVideoStream() { return m_basebandSink->getVideoStream(); }
|
||||
DATVUDPStream *getUDPStream() { return m_basebandSink->getUDPStream(); }
|
||||
|
@ -167,7 +167,7 @@ void DATVDemodGUI::onMenuDialogCalled(const QPoint &p)
|
||||
else if ((m_contextMenuType == ContextMenuStreamSettings) && (m_deviceUISet->m_deviceMIMOEngine))
|
||||
{
|
||||
DeviceStreamSelectionDialog dialog(this);
|
||||
dialog.setNumberOfStreams(m_objDATVDemod->getNumberOfDeviceStreams());
|
||||
dialog.setNumberOfStreams(m_datvDemod->getNumberOfDeviceStreams());
|
||||
dialog.setStreamIndex(m_settings.m_streamIndex);
|
||||
dialog.move(p);
|
||||
dialog.exec();
|
||||
@ -196,6 +196,7 @@ DATVDemodGUI::DATVDemodGUI(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, Ba
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->screenTV->setColor(true);
|
||||
ui->screenTV->resizeTVScreen(256,256);
|
||||
setAttribute(Qt::WA_DeleteOnClose, true);
|
||||
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
|
||||
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));
|
||||
@ -209,16 +210,16 @@ DATVDemodGUI::DATVDemodGUI(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, Ba
|
||||
ui->cnrMeter->setRange(0, 30);
|
||||
ui->cnrMeter->setAverageSmoothing(2);
|
||||
|
||||
m_objDATVDemod = (DATVDemod*) rxChannel;
|
||||
m_objDATVDemod->setMessageQueueToGUI(getInputMessageQueue());
|
||||
m_datvDemod = (DATVDemod*) rxChannel;
|
||||
m_datvDemod->setMessageQueueToGUI(getInputMessageQueue());
|
||||
|
||||
m_objDATVDemod->SetTVScreen(ui->screenTV);
|
||||
m_objDATVDemod->SetVideoRender(ui->screenTV_2);
|
||||
m_datvDemod->SetTVScreen(ui->screenTV);
|
||||
m_datvDemod->SetVideoRender(ui->screenTV_2);
|
||||
|
||||
if (m_settings.m_playerEnable) {
|
||||
connect(m_objDATVDemod->getVideoStream(), &DATVideostream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
connect(m_datvDemod->getVideoStream(), &DATVideostream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
} else {
|
||||
connect(m_objDATVDemod->getUDPStream(), &DATVUDPStream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
connect(m_datvDemod->getUDPStream(), &DATVUDPStream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
}
|
||||
|
||||
connect(ui->screenTV_2, &DATVideoRender::onMetaDataChanged, this, &DATVDemodGUI::on_StreamMetaDataChanged);
|
||||
@ -377,13 +378,13 @@ void DATVDemodGUI::displaySettings()
|
||||
|
||||
if (m_settings.m_playerEnable)
|
||||
{
|
||||
disconnect(m_objDATVDemod->getUDPStream(), &DATVUDPStream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
connect(m_objDATVDemod->getVideoStream(), &DATVideostream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
disconnect(m_datvDemod->getUDPStream(), &DATVUDPStream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
connect(m_datvDemod->getVideoStream(), &DATVideostream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
}
|
||||
else
|
||||
{
|
||||
disconnect(m_objDATVDemod->getVideoStream(), &DATVideostream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
connect(m_objDATVDemod->getUDPStream(), &DATVUDPStream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
disconnect(m_datvDemod->getVideoStream(), &DATVideostream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
connect(m_datvDemod->getUDPStream(), &DATVUDPStream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
}
|
||||
|
||||
blockApplySettings(false);
|
||||
@ -454,7 +455,7 @@ void DATVDemodGUI::applySettings(bool force)
|
||||
m_settings.debug(msg);
|
||||
|
||||
DATVDemod::MsgConfigureDATVDemod* message = DATVDemod::MsgConfigureDATVDemod::create(m_settings, force);
|
||||
m_objDATVDemod->getInputMessageQueue()->push(message);
|
||||
m_datvDemod->getInputMessageQueue()->push(message);
|
||||
}
|
||||
}
|
||||
|
||||
@ -502,16 +503,16 @@ void DATVDemodGUI::ldpcToolSelect()
|
||||
|
||||
void DATVDemodGUI::tick()
|
||||
{
|
||||
if (m_objDATVDemod)
|
||||
if (m_datvDemod)
|
||||
{
|
||||
m_objMagSqAverage(m_objDATVDemod->getMagSq());
|
||||
m_objMagSqAverage(m_datvDemod->getMagSq());
|
||||
double magSqDB = CalcDb::dbPower(m_objMagSqAverage / (SDR_RX_SCALED*SDR_RX_SCALED));
|
||||
ui->channePowerText->setText(tr("%1 dB").arg(magSqDB, 0, 'f', 1));
|
||||
|
||||
if ((m_modcodModulationIndex != m_objDATVDemod->getModcodModulation()) || (m_modcodCodeRateIndex != m_objDATVDemod->getModcodCodeRate()))
|
||||
if ((m_modcodModulationIndex != m_datvDemod->getModcodModulation()) || (m_modcodCodeRateIndex != m_datvDemod->getModcodCodeRate()))
|
||||
{
|
||||
m_modcodModulationIndex = m_objDATVDemod->getModcodModulation();
|
||||
m_modcodCodeRateIndex = m_objDATVDemod->getModcodCodeRate();
|
||||
m_modcodModulationIndex = m_datvDemod->getModcodModulation();
|
||||
m_modcodCodeRateIndex = m_datvDemod->getModcodCodeRate();
|
||||
DATVDemodSettings::DATVModulation modulation = DATVDemodSettings::getModulationFromLeanDVBCode(m_modcodModulationIndex);
|
||||
DATVDemodSettings::DATVCodeRate rate = DATVDemodSettings::getCodeRateFromLeanDVBCode(m_modcodCodeRateIndex);
|
||||
QString modcodModulationStr = DATVDemodSettings::getStrFromModulation(modulation);
|
||||
@ -519,9 +520,9 @@ void DATVDemodGUI::tick()
|
||||
ui->statusText->setText(tr("MCOD %1 %2").arg(modcodModulationStr).arg(modcodCodeRateStr));
|
||||
}
|
||||
|
||||
if (m_cstlnSetByModcod != m_objDATVDemod->isCstlnSetByModcod())
|
||||
if (m_cstlnSetByModcod != m_datvDemod->isCstlnSetByModcod())
|
||||
{
|
||||
m_cstlnSetByModcod = m_objDATVDemod->isCstlnSetByModcod();
|
||||
m_cstlnSetByModcod = m_datvDemod->isCstlnSetByModcod();
|
||||
|
||||
if (m_cstlnSetByModcod) {
|
||||
ui->statusText->setStyleSheet("QLabel { background-color : green; }");
|
||||
@ -537,9 +538,9 @@ void DATVDemodGUI::tick()
|
||||
ui->lblRate->setText(QString("Speed: %1b/s").arg(formatBytes(m_intLastSpeed)));
|
||||
}
|
||||
|
||||
if (m_objDATVDemod->audioActive())
|
||||
if (m_datvDemod->audioActive())
|
||||
{
|
||||
if (m_objDATVDemod->audioDecodeOK()) {
|
||||
if (m_datvDemod->audioDecodeOK()) {
|
||||
ui->audioMute->setStyleSheet("QToolButton { background-color : green; }");
|
||||
} else {
|
||||
ui->audioMute->setStyleSheet("QToolButton { background-color : red; }");
|
||||
@ -550,9 +551,9 @@ void DATVDemodGUI::tick()
|
||||
ui->audioMute->setStyleSheet("QToolButton { background:rgb(79,79,79); }");
|
||||
}
|
||||
|
||||
if (m_objDATVDemod->videoActive())
|
||||
if (m_datvDemod->videoActive())
|
||||
{
|
||||
if (m_objDATVDemod->videoDecodeOK()) {
|
||||
if (m_datvDemod->videoDecodeOK()) {
|
||||
ui->videoMute->setStyleSheet("QToolButton { background-color : green; }");
|
||||
} else {
|
||||
ui->videoMute->setStyleSheet("QToolButton { background-color : red; }");
|
||||
@ -566,7 +567,7 @@ void DATVDemodGUI::tick()
|
||||
m_intPreviousDecodedData = m_intLastDecodedData;
|
||||
|
||||
//Try to start video rendering
|
||||
bool success = m_objDATVDemod->playVideo();
|
||||
bool success = m_datvDemod->playVideo();
|
||||
|
||||
if (success) {
|
||||
ui->playerIndicator->setStyleSheet("QLabel { background-color: rgb(85, 232, 85); border-radius: 8px; }"); // green
|
||||
@ -574,7 +575,7 @@ void DATVDemodGUI::tick()
|
||||
ui->playerIndicator->setStyleSheet("QLabel { background-color: gray; border-radius: 8px; }");
|
||||
}
|
||||
|
||||
if (m_objDATVDemod->udpRunning()) {
|
||||
if (m_datvDemod->udpRunning()) {
|
||||
ui->udpIndicator->setStyleSheet("QLabel { background-color: rgb(85, 232, 85); border-radius: 8px; }"); // green
|
||||
} else {
|
||||
ui->udpIndicator->setStyleSheet("QLabel { background-color: gray; border-radius: 8px; }");
|
||||
@ -583,10 +584,10 @@ void DATVDemodGUI::tick()
|
||||
|
||||
void DATVDemodGUI::tickMeter()
|
||||
{
|
||||
ui->merMeter->levelChanged(m_objDATVDemod->getMERRMS(), m_objDATVDemod->getMERPeak(), m_objDATVDemod->getMERNbAvg());
|
||||
ui->cnrMeter->levelChanged(m_objDATVDemod->getCNRRMS(), m_objDATVDemod->getCNRPeak(), m_objDATVDemod->getCNRNbAvg());
|
||||
ui->merText->setText(QString("%1").arg(m_objDATVDemod->getMERAvg(), 0, 'f', 1));
|
||||
ui->cnrText->setText(QString("%1").arg(m_objDATVDemod->getCNRAvg(), 0, 'f', 1));
|
||||
ui->merMeter->levelChanged(m_datvDemod->getMERRMS(), m_datvDemod->getMERPeak(), m_datvDemod->getMERNbAvg());
|
||||
ui->cnrMeter->levelChanged(m_datvDemod->getCNRRMS(), m_datvDemod->getCNRPeak(), m_datvDemod->getCNRNbAvg());
|
||||
ui->merText->setText(QString("%1").arg(m_datvDemod->getMERAvg(), 0, 'f', 1));
|
||||
ui->cnrText->setText(QString("%1").arg(m_datvDemod->getCNRAvg(), 0, 'f', 1));
|
||||
}
|
||||
|
||||
void DATVDemodGUI::on_cmbStandard_currentIndexChanged(int index)
|
||||
@ -844,13 +845,13 @@ void DATVDemodGUI::on_playerEnable_clicked()
|
||||
|
||||
if (m_settings.m_playerEnable)
|
||||
{
|
||||
disconnect(m_objDATVDemod->getUDPStream(), &DATVUDPStream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
connect(m_objDATVDemod->getVideoStream(), &DATVideostream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
disconnect(m_datvDemod->getUDPStream(), &DATVUDPStream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
connect(m_datvDemod->getVideoStream(), &DATVideostream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
}
|
||||
else
|
||||
{
|
||||
disconnect(m_objDATVDemod->getVideoStream(), &DATVideostream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
connect(m_objDATVDemod->getUDPStream(), &DATVUDPStream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
disconnect(m_datvDemod->getVideoStream(), &DATVideostream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
connect(m_datvDemod->getUDPStream(), &DATVUDPStream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
|
||||
}
|
||||
|
||||
applySettings();
|
||||
|
@ -101,7 +101,7 @@ private:
|
||||
DeviceUISet* m_deviceUISet;
|
||||
|
||||
ChannelMarker m_objChannelMarker;
|
||||
DATVDemod* m_objDATVDemod;
|
||||
DATVDemod* m_datvDemod;
|
||||
MessageQueue m_inputMessageQueue;
|
||||
DATVDemodSettings m_settings;
|
||||
|
||||
|
@ -34,11 +34,11 @@ const unsigned int DATVDemodSink::m_rfFilterFftLength = 1024;
|
||||
|
||||
DATVDemodSink::DATVDemodSink() :
|
||||
m_blnNeedConfigUpdate(false),
|
||||
m_objRegisteredTVScreen(nullptr),
|
||||
m_objRegisteredVideoRender(nullptr),
|
||||
m_objVideoStream(new DATVideostream()),
|
||||
m_tvScreen(nullptr),
|
||||
m_videoRender(nullptr),
|
||||
m_videoStream(new DATVideostream()),
|
||||
m_udpStream(leansdr::tspacket::SIZE),
|
||||
m_objRenderThread(nullptr),
|
||||
m_videoThread(nullptr),
|
||||
m_audioFifo(48000),
|
||||
m_blnRenderingVideo(false),
|
||||
m_cstlnSetByModcod(false),
|
||||
@ -60,14 +60,14 @@ DATVDemodSink::~DATVDemodSink()
|
||||
m_blnInitialized = false;
|
||||
|
||||
//Immediately exit from DATVideoStream if waiting for data before killing thread
|
||||
m_objVideoStream->setThreadTimeout(0);
|
||||
m_objVideoStream->deleteLater();
|
||||
m_videoStream->setThreadTimeout(0);
|
||||
m_videoStream->deleteLater();
|
||||
|
||||
stopVideo();
|
||||
CleanUpDATVFramework();
|
||||
|
||||
if (m_objRenderThread) {
|
||||
delete m_objRenderThread;
|
||||
if (m_videoThread) {
|
||||
delete m_videoThread;
|
||||
}
|
||||
|
||||
delete m_objRFFilter;
|
||||
@ -75,34 +75,33 @@ DATVDemodSink::~DATVDemodSink()
|
||||
|
||||
void DATVDemodSink::stopVideo()
|
||||
{
|
||||
if (m_objRenderThread)
|
||||
if (m_videoThread)
|
||||
{
|
||||
if (m_objRenderThread->isRunning())
|
||||
if (m_videoThread->isRunning())
|
||||
{
|
||||
m_objRenderThread->stopRendering();
|
||||
m_objRenderThread->quit();
|
||||
m_objRenderThread->wait();
|
||||
m_videoThread->stopRendering();
|
||||
m_videoThread->quit();
|
||||
m_videoThread->wait();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool DATVDemodSink::setTVScreen(TVScreen *objScreen)
|
||||
void DATVDemodSink::setTVScreen(TVScreen *tvScreen)
|
||||
{
|
||||
m_objRegisteredTVScreen = objScreen;
|
||||
return true;
|
||||
m_tvScreen = tvScreen;
|
||||
}
|
||||
|
||||
void DATVDemodSink::SetVideoRender(DATVideoRender *objScreen)
|
||||
void DATVDemodSink::SetVideoRender(DATVideoRender *screen)
|
||||
{
|
||||
m_objRegisteredVideoRender = objScreen;
|
||||
m_objRegisteredVideoRender->setAudioFIFO(&m_audioFifo);
|
||||
m_objRenderThread = new DATVideoRenderThread(m_objRegisteredVideoRender, m_objVideoStream);
|
||||
m_videoRender = screen;
|
||||
m_videoRender->setAudioFIFO(&m_audioFifo);
|
||||
m_videoThread = new DATVideoRenderThread(m_videoRender, m_videoStream);
|
||||
}
|
||||
|
||||
bool DATVDemodSink::audioActive()
|
||||
{
|
||||
if (m_objRegisteredVideoRender) {
|
||||
return m_objRegisteredVideoRender->getAudioStreamIndex() >= 0;
|
||||
if (m_videoRender) {
|
||||
return m_videoRender->getAudioStreamIndex() >= 0;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
@ -110,8 +109,8 @@ bool DATVDemodSink::audioActive()
|
||||
|
||||
bool DATVDemodSink::videoActive()
|
||||
{
|
||||
if (m_objRegisteredVideoRender) {
|
||||
return m_objRegisteredVideoRender->getVideoStreamIndex() >= 0;
|
||||
if (m_videoRender) {
|
||||
return m_videoRender->getVideoStreamIndex() >= 0;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
@ -119,8 +118,8 @@ bool DATVDemodSink::videoActive()
|
||||
|
||||
bool DATVDemodSink::audioDecodeOK()
|
||||
{
|
||||
if (m_objRegisteredVideoRender) {
|
||||
return m_objRegisteredVideoRender->getAudioDecodeOK();
|
||||
if (m_videoRender) {
|
||||
return m_videoRender->getAudioDecodeOK();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
@ -128,8 +127,8 @@ bool DATVDemodSink::audioDecodeOK()
|
||||
|
||||
bool DATVDemodSink::videoDecodeOK()
|
||||
{
|
||||
if (m_objRegisteredVideoRender) {
|
||||
return m_objRegisteredVideoRender->getVideoDecodeOK();
|
||||
if (m_videoRender) {
|
||||
return m_videoRender->getVideoDecodeOK();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
@ -151,27 +150,27 @@ bool DATVDemodSink::playVideo()
|
||||
{
|
||||
QMutexLocker mlock(&m_mutex);
|
||||
|
||||
if (m_objVideoStream == nullptr) {
|
||||
if (m_videoStream == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_objRegisteredVideoRender == nullptr) {
|
||||
if (m_videoRender == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_objRenderThread == nullptr) {
|
||||
if (m_videoThread == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_objRenderThread->isRunning()) {
|
||||
if (m_videoThread->isRunning()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (m_objVideoStream->bytesAvailable() > 0)
|
||||
if (m_videoStream->bytesAvailable() > 0)
|
||||
{
|
||||
m_objVideoStream->setMultiThreaded(true);
|
||||
m_objVideoStream->setThreadTimeout(DATVideoRenderThread::videoThreadTimeoutMs);
|
||||
m_objRenderThread->start();
|
||||
m_videoStream->setMultiThreaded(true);
|
||||
m_videoStream->setThreadTimeout(DATVideoRenderThread::videoThreadTimeoutMs);
|
||||
m_videoThread->start();
|
||||
}
|
||||
|
||||
return false;
|
||||
@ -179,8 +178,8 @@ bool DATVDemodSink::playVideo()
|
||||
|
||||
void DATVDemodSink::CleanUpDATVFramework()
|
||||
{
|
||||
if (m_objVideoStream) {
|
||||
m_objVideoStream->cleanUp();
|
||||
if (m_videoStream) {
|
||||
m_videoStream->cleanUp();
|
||||
}
|
||||
|
||||
if (m_objScheduler != nullptr)
|
||||
@ -556,7 +555,7 @@ void DATVDemodSink::InitDATVFramework()
|
||||
m_objCfg.rrc_rej = (float) m_settings.m_excursion; //dB
|
||||
m_objCfg.rrc_steps = 0; //auto
|
||||
|
||||
m_objVideoStream->resetTotalReceived();
|
||||
m_videoStream->resetTotalReceived();
|
||||
m_udpStream.resetTotalReceived();
|
||||
|
||||
switch(m_settings.m_modulation)
|
||||
@ -769,12 +768,11 @@ void DATVDemodSink::InitDATVFramework()
|
||||
|
||||
//constellation
|
||||
|
||||
if (m_objRegisteredTVScreen)
|
||||
if (m_tvScreen)
|
||||
{
|
||||
qDebug("DATVDemodSink::InitDATVFramework: Register DVBSTVSCREEN");
|
||||
qDebug("DATVDemodSink::InitDATVFramework: Register DVB constellation TV screen");
|
||||
|
||||
m_objRegisteredTVScreen->resizeTVScreen(256,256);
|
||||
r_scope_symbols = new leansdr::datvconstellation<leansdr::f32>(m_objScheduler, *p_sampled, -128,128, nullptr, m_objRegisteredTVScreen);
|
||||
r_scope_symbols = new leansdr::datvconstellation<leansdr::f32>(m_objScheduler, *p_sampled, -128,128, nullptr, m_tvScreen);
|
||||
r_scope_symbols->decimation = 1;
|
||||
r_scope_symbols->cstln = &m_objDemodulator->cstln;
|
||||
r_scope_symbols->calculate_cstln_points();
|
||||
@ -850,7 +848,7 @@ void DATVDemodSink::InitDATVFramework()
|
||||
|
||||
// OUTPUT
|
||||
if (m_settings.m_playerEnable) {
|
||||
r_videoplayer = new leansdr::datvvideoplayer<leansdr::tspacket>(m_objScheduler, *p_tspackets, m_objVideoStream, &m_udpStream);
|
||||
r_videoplayer = new leansdr::datvvideoplayer<leansdr::tspacket>(m_objScheduler, *p_tspackets, m_videoStream, &m_udpStream);
|
||||
} else {
|
||||
r_videoplayer = new leansdr::datvvideoplayer<leansdr::tspacket>(m_objScheduler, *p_tspackets, nullptr, &m_udpStream);
|
||||
}
|
||||
@ -895,7 +893,7 @@ void DATVDemodSink::InitDATVS2Framework()
|
||||
m_objCfg.rrc_rej = (float) m_settings.m_excursion; //dB
|
||||
m_objCfg.rrc_steps = 0; //auto
|
||||
|
||||
m_objVideoStream->resetTotalReceived();
|
||||
m_videoStream->resetTotalReceived();
|
||||
m_udpStream.resetTotalReceived();
|
||||
|
||||
switch(m_settings.m_modulation)
|
||||
@ -1075,11 +1073,10 @@ void DATVDemodSink::InitDATVS2Framework()
|
||||
|
||||
//constellation
|
||||
|
||||
if (m_objRegisteredTVScreen)
|
||||
if (m_tvScreen)
|
||||
{
|
||||
qDebug("DATVDemodSink::InitDATVS2Framework: Register DVBS 2 TVSCREEN");
|
||||
m_objRegisteredTVScreen->resizeTVScreen(256,256);
|
||||
r_scope_symbols_dvbs2 = new leansdr::datvdvbs2constellation<leansdr::f32>(m_objScheduler, *p_cstln /* *p_sampled */ /* *p_cstln */, -128,128, nullptr, m_objRegisteredTVScreen);
|
||||
r_scope_symbols_dvbs2 = new leansdr::datvdvbs2constellation<leansdr::f32>(m_objScheduler, *p_cstln /* *p_sampled */ /* *p_cstln */, -128,128, nullptr, m_tvScreen);
|
||||
r_scope_symbols_dvbs2->decimation = 1;
|
||||
r_scope_symbols_dvbs2->cstln = (leansdr::cstln_base**) &objDemodulatorDVBS2->cstln;
|
||||
r_scope_symbols_dvbs2->calculate_cstln_points();
|
||||
@ -1213,7 +1210,7 @@ void DATVDemodSink::InitDATVS2Framework()
|
||||
|
||||
// OUTPUT
|
||||
if (m_settings.m_playerEnable) {
|
||||
r_videoplayer = new leansdr::datvvideoplayer<leansdr::tspacket>(m_objScheduler, *p_tspackets, m_objVideoStream, &m_udpStream);
|
||||
r_videoplayer = new leansdr::datvvideoplayer<leansdr::tspacket>(m_objScheduler, *p_tspackets, m_videoStream, &m_udpStream);
|
||||
} else {
|
||||
r_videoplayer = new leansdr::datvvideoplayer<leansdr::tspacket>(m_objScheduler, *p_tspackets, nullptr, &m_udpStream);
|
||||
}
|
||||
@ -1410,22 +1407,22 @@ void DATVDemodSink::applySettings(const DATVDemodSettings& settings, bool force)
|
||||
|
||||
if ((settings.m_audioVolume) != (m_settings.m_audioVolume) || force)
|
||||
{
|
||||
if (m_objRegisteredVideoRender) {
|
||||
m_objRegisteredVideoRender->setAudioVolume(settings.m_audioVolume);
|
||||
if (m_videoRender) {
|
||||
m_videoRender->setAudioVolume(settings.m_audioVolume);
|
||||
}
|
||||
}
|
||||
|
||||
if ((settings.m_audioMute) != (m_settings.m_audioMute) || force)
|
||||
{
|
||||
if (m_objRegisteredVideoRender) {
|
||||
m_objRegisteredVideoRender->setAudioMute(settings.m_audioMute);
|
||||
if (m_videoRender) {
|
||||
m_videoRender->setAudioMute(settings.m_audioMute);
|
||||
}
|
||||
}
|
||||
|
||||
if ((settings.m_videoMute) != (m_settings.m_videoMute) || force)
|
||||
{
|
||||
if (m_objRegisteredVideoRender) {
|
||||
m_objRegisteredVideoRender->setVideoMute(settings.m_videoMute);
|
||||
if (m_videoRender) {
|
||||
m_videoRender->setVideoMute(settings.m_videoMute);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,7 +51,6 @@
|
||||
class TVScreen;
|
||||
class DATVideoRender;
|
||||
class QLabel;
|
||||
class LevelMeterSignalDB;
|
||||
|
||||
class DATVDemodSink : public ChannelSampleSink {
|
||||
public:
|
||||
@ -60,9 +59,9 @@ public:
|
||||
|
||||
virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end);
|
||||
|
||||
bool setTVScreen(TVScreen *objScreen);
|
||||
void SetVideoRender(DATVideoRender *objScreen);
|
||||
DATVideostream *getVideoStream() { return m_objVideoStream; }
|
||||
void setTVScreen(TVScreen *tvScreen);
|
||||
void SetVideoRender(DATVideoRender *screen);
|
||||
DATVideostream *getVideoStream() { return m_videoStream; }
|
||||
DATVUDPStream *getUDPStream() { return &m_udpStream; }
|
||||
bool audioActive();
|
||||
bool audioDecodeOK();
|
||||
@ -318,11 +317,11 @@ private:
|
||||
leansdr::datvmeter *r_cnrMeter;
|
||||
|
||||
//*************** DATV PARAMETERS ***************
|
||||
TVScreen *m_objRegisteredTVScreen;
|
||||
DATVideoRender *m_objRegisteredVideoRender;
|
||||
DATVideostream *m_objVideoStream;
|
||||
TVScreen *m_tvScreen;
|
||||
DATVideoRender *m_videoRender;
|
||||
DATVideostream *m_videoStream;
|
||||
DATVUDPStream m_udpStream;
|
||||
DATVideoRenderThread *m_objRenderThread;
|
||||
DATVideoRenderThread *m_videoThread;
|
||||
|
||||
// Audio
|
||||
AudioFifo m_audioFifo;
|
||||
|
@ -23,6 +23,8 @@
|
||||
#include <QIODevice>
|
||||
#include <QThread>
|
||||
#include <QWidget>
|
||||
#include <QTextStream>
|
||||
#include <QDebug>
|
||||
|
||||
#include "datvideostream.h"
|
||||
#include "gui/tvscreen.h"
|
||||
|
@ -3799,15 +3799,23 @@ margin-bottom: 20px;
|
||||
},
|
||||
"modcodModulation" : {
|
||||
"type" : "integer",
|
||||
"description" : "Modulation set by DVB-S2 MODCOD\n * 0: BPSK\n * 1: QPSK\n * 2: PSK8\n * 3: APSK16\n * 4: APSK32\n * 5: APSK64E\n * 6: QAM16\n * 7: QAM64\n * 8: QAM256\n"
|
||||
"description" : "Modulation set by DVB-S2 MODCOD\n * -1: Unset\n * 0: BPSK\n * 1: QPSK\n * 2: PSK8\n * 3: APSK16\n * 4: APSK32\n * 5: APSK64E\n * 6: QAM16\n * 7: QAM64\n * 8: QAM256\n"
|
||||
},
|
||||
"modcodCodeRate" : {
|
||||
"type" : "integer",
|
||||
"description" : "Code rate (FEC) set by DVB-S2 MODCOD\n * 0: 1/2\n * 1: 2/3\n * 2: 4/6\n * 3: 3/4\n * 4: 5/6\n * 5: 7/8\n * 6: 4/5\n * 7: 8/9\n * 8: 9/10\n * 9: 1/4\n * 10: 1/3\n * 11: 2/5\n * 12: 3/5\n"
|
||||
"description" : "Code rate (FEC) set by DVB-S2 MODCOD\n * -1: Unset\n * 0: 1/2\n * 1: 2/3\n * 2: 4/6\n * 3: 3/4\n * 4: 5/6\n * 5: 7/8\n * 6: 4/5\n * 7: 8/9\n * 8: 9/10\n * 9: 1/4\n * 10: 1/3\n * 11: 2/5\n * 12: 3/5\n"
|
||||
},
|
||||
"setByModcod" : {
|
||||
"type" : "integer",
|
||||
"description" : "Modulation and code rate set by DVB-S2 MODCOD (1 for yes, 0 for no)"
|
||||
},
|
||||
"mer" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"cnr" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
}
|
||||
},
|
||||
"description" : "DATVDemod"
|
||||
@ -3913,6 +3921,10 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"description" : "boolean"
|
||||
},
|
||||
"playerEnable" : {
|
||||
"type" : "integer",
|
||||
"description" : "boolean"
|
||||
},
|
||||
"streamIndex" : {
|
||||
"type" : "integer",
|
||||
"description" : "MIMO channel. Not relevant when connected to SI (single Rx)."
|
||||
@ -7905,14 +7917,15 @@ margin-bottom: 20px;
|
||||
"fftCount" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"frequencySpec" : {
|
||||
"type" : "integer"
|
||||
"sweepSpec" : {
|
||||
"type" : "integer",
|
||||
"description" : "(0 - Range, 1 - Step, 2 - List)"
|
||||
},
|
||||
"startFrequency" : {
|
||||
"startValue" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"stopFrequency" : {
|
||||
"stopValue" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
@ -7923,9 +7936,13 @@ margin-bottom: 20px;
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"frequencies" : {
|
||||
"list" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"setting" : {
|
||||
"type" : "string",
|
||||
"description" : "The device setting to sweep (E.g. centerFrequency or gain)"
|
||||
},
|
||||
"visaDevice" : {
|
||||
"type" : "string"
|
||||
},
|
||||
@ -51207,7 +51224,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2021-10-26T22:25:01.367+02:00
|
||||
Generated 2021-10-29T08:40:21.343+02:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -104,6 +104,9 @@ DATVDemodSettings:
|
||||
udpTS:
|
||||
description: boolean
|
||||
type: integer
|
||||
playerEnable:
|
||||
description: boolean
|
||||
type: integer
|
||||
streamIndex:
|
||||
description: MIMO channel. Not relevant when connected to SI (single Rx).
|
||||
type: integer
|
||||
@ -145,34 +148,40 @@ DATVDemodReport:
|
||||
type: integer
|
||||
description: >
|
||||
Modulation set by DVB-S2 MODCOD
|
||||
* 0: BPSK
|
||||
* 1: QPSK
|
||||
* 2: PSK8
|
||||
* 3: APSK16
|
||||
* 4: APSK32
|
||||
* 5: APSK64E
|
||||
* 6: QAM16
|
||||
* 7: QAM64
|
||||
* 8: QAM256
|
||||
* -1: Unset
|
||||
* 0: BPSK
|
||||
* 1: QPSK
|
||||
* 2: PSK8
|
||||
* 3: APSK16
|
||||
* 4: APSK32
|
||||
* 5: APSK64E
|
||||
* 6: QAM16
|
||||
* 7: QAM64
|
||||
* 8: QAM256
|
||||
modcodCodeRate:
|
||||
type: integer
|
||||
description: >
|
||||
Code rate (FEC) set by DVB-S2 MODCOD
|
||||
* 0: 1/2
|
||||
* 1: 2/3
|
||||
* 2: 4/6
|
||||
* 3: 3/4
|
||||
* 4: 5/6
|
||||
* 5: 7/8
|
||||
* 6: 4/5
|
||||
* 7: 8/9
|
||||
* 8: 9/10
|
||||
* 9: 1/4
|
||||
* -1: Unset
|
||||
* 0: 1/2
|
||||
* 1: 2/3
|
||||
* 2: 4/6
|
||||
* 3: 3/4
|
||||
* 4: 5/6
|
||||
* 5: 7/8
|
||||
* 6: 4/5
|
||||
* 7: 8/9
|
||||
* 8: 9/10
|
||||
* 9: 1/4
|
||||
* 10: 1/3
|
||||
* 11: 2/5
|
||||
* 12: 3/5
|
||||
setByModcod:
|
||||
type: integer
|
||||
description: Modulation and code rate set by DVB-S2 MODCOD (1 for yes, 0 for no)
|
||||
|
||||
|
||||
mer:
|
||||
type: number
|
||||
format: float
|
||||
cnr:
|
||||
type: number
|
||||
format: float
|
||||
|
@ -8,12 +8,13 @@ NoiseFigureSettings:
|
||||
type: integer
|
||||
fftCount:
|
||||
type: integer
|
||||
frequencySpec:
|
||||
sweepSpec:
|
||||
description: "(0 - Range, 1 - Step, 2 - List)"
|
||||
type: integer
|
||||
startFrequency:
|
||||
startValue:
|
||||
type: number
|
||||
format: float
|
||||
stopFrequency:
|
||||
stopValue:
|
||||
type: number
|
||||
format: float
|
||||
steps:
|
||||
@ -21,7 +22,10 @@ NoiseFigureSettings:
|
||||
step:
|
||||
type: number
|
||||
format: float
|
||||
frequencies:
|
||||
list:
|
||||
type: string
|
||||
setting:
|
||||
description: "The device setting to sweep (E.g. centerFrequency or gain)"
|
||||
type: string
|
||||
visaDevice:
|
||||
type: string
|
||||
|
@ -104,6 +104,9 @@ DATVDemodSettings:
|
||||
udpTS:
|
||||
description: boolean
|
||||
type: integer
|
||||
playerEnable:
|
||||
description: boolean
|
||||
type: integer
|
||||
streamIndex:
|
||||
description: MIMO channel. Not relevant when connected to SI (single Rx).
|
||||
type: integer
|
||||
@ -176,5 +179,9 @@ DATVDemodReport:
|
||||
setByModcod:
|
||||
type: integer
|
||||
description: Modulation and code rate set by DVB-S2 MODCOD (1 for yes, 0 for no)
|
||||
|
||||
|
||||
mer:
|
||||
type: number
|
||||
format: float
|
||||
cnr:
|
||||
type: number
|
||||
format: float
|
||||
|
@ -3799,15 +3799,23 @@ margin-bottom: 20px;
|
||||
},
|
||||
"modcodModulation" : {
|
||||
"type" : "integer",
|
||||
"description" : "Modulation set by DVB-S2 MODCOD\n * 0: BPSK\n * 1: QPSK\n * 2: PSK8\n * 3: APSK16\n * 4: APSK32\n * 5: APSK64E\n * 6: QAM16\n * 7: QAM64\n * 8: QAM256\n"
|
||||
"description" : "Modulation set by DVB-S2 MODCOD\n * -1: Unset\n * 0: BPSK\n * 1: QPSK\n * 2: PSK8\n * 3: APSK16\n * 4: APSK32\n * 5: APSK64E\n * 6: QAM16\n * 7: QAM64\n * 8: QAM256\n"
|
||||
},
|
||||
"modcodCodeRate" : {
|
||||
"type" : "integer",
|
||||
"description" : "Code rate (FEC) set by DVB-S2 MODCOD\n * 0: 1/2\n * 1: 2/3\n * 2: 4/6\n * 3: 3/4\n * 4: 5/6\n * 5: 7/8\n * 6: 4/5\n * 7: 8/9\n * 8: 9/10\n * 9: 1/4\n * 10: 1/3\n * 11: 2/5\n * 12: 3/5\n"
|
||||
"description" : "Code rate (FEC) set by DVB-S2 MODCOD\n * -1: Unset\n * 0: 1/2\n * 1: 2/3\n * 2: 4/6\n * 3: 3/4\n * 4: 5/6\n * 5: 7/8\n * 6: 4/5\n * 7: 8/9\n * 8: 9/10\n * 9: 1/4\n * 10: 1/3\n * 11: 2/5\n * 12: 3/5\n"
|
||||
},
|
||||
"setByModcod" : {
|
||||
"type" : "integer",
|
||||
"description" : "Modulation and code rate set by DVB-S2 MODCOD (1 for yes, 0 for no)"
|
||||
},
|
||||
"mer" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"cnr" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
}
|
||||
},
|
||||
"description" : "DATVDemod"
|
||||
@ -3913,6 +3921,10 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"description" : "boolean"
|
||||
},
|
||||
"playerEnable" : {
|
||||
"type" : "integer",
|
||||
"description" : "boolean"
|
||||
},
|
||||
"streamIndex" : {
|
||||
"type" : "integer",
|
||||
"description" : "MIMO channel. Not relevant when connected to SI (single Rx)."
|
||||
@ -7905,14 +7917,15 @@ margin-bottom: 20px;
|
||||
"fftCount" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"frequencySpec" : {
|
||||
"type" : "integer"
|
||||
"sweepSpec" : {
|
||||
"type" : "integer",
|
||||
"description" : "(0 - Range, 1 - Step, 2 - List)"
|
||||
},
|
||||
"startFrequency" : {
|
||||
"startValue" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"stopFrequency" : {
|
||||
"stopValue" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
@ -7923,9 +7936,13 @@ margin-bottom: 20px;
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"frequencies" : {
|
||||
"list" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"setting" : {
|
||||
"type" : "string",
|
||||
"description" : "The device setting to sweep (E.g. centerFrequency or gain)"
|
||||
},
|
||||
"visaDevice" : {
|
||||
"type" : "string"
|
||||
},
|
||||
@ -51207,7 +51224,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2021-10-26T22:25:01.367+02:00
|
||||
Generated 2021-10-29T08:40:21.343+02:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -46,6 +46,10 @@ SWGDATVDemodReport::SWGDATVDemodReport() {
|
||||
m_modcod_code_rate_isSet = false;
|
||||
set_by_modcod = 0;
|
||||
m_set_by_modcod_isSet = false;
|
||||
mer = 0.0f;
|
||||
m_mer_isSet = false;
|
||||
cnr = 0.0f;
|
||||
m_cnr_isSet = false;
|
||||
}
|
||||
|
||||
SWGDATVDemodReport::~SWGDATVDemodReport() {
|
||||
@ -72,6 +76,10 @@ SWGDATVDemodReport::init() {
|
||||
m_modcod_code_rate_isSet = false;
|
||||
set_by_modcod = 0;
|
||||
m_set_by_modcod_isSet = false;
|
||||
mer = 0.0f;
|
||||
m_mer_isSet = false;
|
||||
cnr = 0.0f;
|
||||
m_cnr_isSet = false;
|
||||
}
|
||||
|
||||
void
|
||||
@ -85,6 +93,8 @@ SWGDATVDemodReport::cleanup() {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
SWGDATVDemodReport*
|
||||
@ -116,6 +126,10 @@ SWGDATVDemodReport::fromJsonObject(QJsonObject &pJson) {
|
||||
|
||||
::SWGSDRangel::setValue(&set_by_modcod, pJson["setByModcod"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&mer, pJson["mer"], "float", "");
|
||||
|
||||
::SWGSDRangel::setValue(&cnr, pJson["cnr"], "float", "");
|
||||
|
||||
}
|
||||
|
||||
QString
|
||||
@ -159,6 +173,12 @@ SWGDATVDemodReport::asJsonObject() {
|
||||
if(m_set_by_modcod_isSet){
|
||||
obj->insert("setByModcod", QJsonValue(set_by_modcod));
|
||||
}
|
||||
if(m_mer_isSet){
|
||||
obj->insert("mer", QJsonValue(mer));
|
||||
}
|
||||
if(m_cnr_isSet){
|
||||
obj->insert("cnr", QJsonValue(cnr));
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
@ -253,6 +273,26 @@ SWGDATVDemodReport::setSetByModcod(qint32 set_by_modcod) {
|
||||
this->m_set_by_modcod_isSet = true;
|
||||
}
|
||||
|
||||
float
|
||||
SWGDATVDemodReport::getMer() {
|
||||
return mer;
|
||||
}
|
||||
void
|
||||
SWGDATVDemodReport::setMer(float mer) {
|
||||
this->mer = mer;
|
||||
this->m_mer_isSet = true;
|
||||
}
|
||||
|
||||
float
|
||||
SWGDATVDemodReport::getCnr() {
|
||||
return cnr;
|
||||
}
|
||||
void
|
||||
SWGDATVDemodReport::setCnr(float cnr) {
|
||||
this->cnr = cnr;
|
||||
this->m_cnr_isSet = true;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
SWGDATVDemodReport::isSet(){
|
||||
@ -285,6 +325,12 @@ SWGDATVDemodReport::isSet(){
|
||||
if(m_set_by_modcod_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_mer_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_cnr_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
}while(false);
|
||||
return isObjectUpdated;
|
||||
}
|
||||
|
@ -68,6 +68,12 @@ public:
|
||||
qint32 getSetByModcod();
|
||||
void setSetByModcod(qint32 set_by_modcod);
|
||||
|
||||
float getMer();
|
||||
void setMer(float mer);
|
||||
|
||||
float getCnr();
|
||||
void setCnr(float cnr);
|
||||
|
||||
|
||||
virtual bool isSet() override;
|
||||
|
||||
@ -99,6 +105,12 @@ private:
|
||||
qint32 set_by_modcod;
|
||||
bool m_set_by_modcod_isSet;
|
||||
|
||||
float mer;
|
||||
bool m_mer_isSet;
|
||||
|
||||
float cnr;
|
||||
bool m_cnr_isSet;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -82,6 +82,8 @@ SWGDATVDemodSettings::SWGDATVDemodSettings() {
|
||||
m_udp_ts_port_isSet = false;
|
||||
udp_ts = 0;
|
||||
m_udp_ts_isSet = false;
|
||||
player_enable = 0;
|
||||
m_player_enable_isSet = false;
|
||||
stream_index = 0;
|
||||
m_stream_index_isSet = false;
|
||||
use_reverse_api = 0;
|
||||
@ -156,6 +158,8 @@ SWGDATVDemodSettings::init() {
|
||||
m_udp_ts_port_isSet = false;
|
||||
udp_ts = 0;
|
||||
m_udp_ts_isSet = false;
|
||||
player_enable = 0;
|
||||
m_player_enable_isSet = false;
|
||||
stream_index = 0;
|
||||
m_stream_index_isSet = false;
|
||||
use_reverse_api = 0;
|
||||
@ -209,6 +213,7 @@ SWGDATVDemodSettings::cleanup() {
|
||||
|
||||
|
||||
|
||||
|
||||
if(reverse_api_address != nullptr) {
|
||||
delete reverse_api_address;
|
||||
}
|
||||
@ -282,6 +287,8 @@ SWGDATVDemodSettings::fromJsonObject(QJsonObject &pJson) {
|
||||
|
||||
::SWGSDRangel::setValue(&udp_ts, pJson["udpTS"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&player_enable, pJson["playerEnable"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&stream_index, pJson["streamIndex"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", "");
|
||||
@ -391,6 +398,9 @@ SWGDATVDemodSettings::asJsonObject() {
|
||||
if(m_udp_ts_isSet){
|
||||
obj->insert("udpTS", QJsonValue(udp_ts));
|
||||
}
|
||||
if(m_player_enable_isSet){
|
||||
obj->insert("playerEnable", QJsonValue(player_enable));
|
||||
}
|
||||
if(m_stream_index_isSet){
|
||||
obj->insert("streamIndex", QJsonValue(stream_index));
|
||||
}
|
||||
@ -683,6 +693,16 @@ SWGDATVDemodSettings::setUdpTs(qint32 udp_ts) {
|
||||
this->m_udp_ts_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGDATVDemodSettings::getPlayerEnable() {
|
||||
return player_enable;
|
||||
}
|
||||
void
|
||||
SWGDATVDemodSettings::setPlayerEnable(qint32 player_enable) {
|
||||
this->player_enable = player_enable;
|
||||
this->m_player_enable_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGDATVDemodSettings::getStreamIndex() {
|
||||
return stream_index;
|
||||
@ -829,6 +849,9 @@ SWGDATVDemodSettings::isSet(){
|
||||
if(m_udp_ts_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_player_enable_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_stream_index_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
|
@ -123,6 +123,9 @@ public:
|
||||
qint32 getUdpTs();
|
||||
void setUdpTs(qint32 udp_ts);
|
||||
|
||||
qint32 getPlayerEnable();
|
||||
void setPlayerEnable(qint32 player_enable);
|
||||
|
||||
qint32 getStreamIndex();
|
||||
void setStreamIndex(qint32 stream_index);
|
||||
|
||||
@ -226,6 +229,9 @@ private:
|
||||
qint32 udp_ts;
|
||||
bool m_udp_ts_isSet;
|
||||
|
||||
qint32 player_enable;
|
||||
bool m_player_enable_isSet;
|
||||
|
||||
qint32 stream_index;
|
||||
bool m_stream_index_isSet;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user