SDRAngel  4.11.5
Developer docs for <a href="https://github.com/f4exb/sdrangel">SDRangel<\a>, an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
Public Member Functions | Private Slots | Private Member Functions | Private Attributes | List of all members
RemoteInputGui Class Reference

#include <remoteinputgui.h>

+ Inheritance diagram for RemoteInputGui:
+ Collaboration diagram for RemoteInputGui:

Public Member Functions

 RemoteInputGui (DeviceUISet *deviceUISet, QWidget *parent=0)
 
virtual ~RemoteInputGui ()
 
virtual void destroy ()
 
void setName (const QString &name)
 
QString getName () const
 
void resetToDefaults ()
 
QByteArray serialize () const
 
bool deserialize (const QByteArray &data)
 
virtual qint64 getCenterFrequency () const
 
virtual void setCenterFrequency (qint64 centerFrequency)
 
virtual MessageQueuegetInputMessageQueue ()
 
virtual bool handleMessage (const Message &message)
 
- Public Member Functions inherited from PluginInstanceGUI
 PluginInstanceGUI ()
 
virtual ~PluginInstanceGUI ()
 

Private Slots

void handleInputMessages ()
 
void on_apiApplyButton_clicked (bool checked)
 
void on_dataApplyButton_clicked (bool checked)
 
void on_dcOffset_toggled (bool checked)
 
void on_iqImbalance_toggled (bool checked)
 
void on_apiAddress_returnPressed ()
 
void on_apiPort_returnPressed ()
 
void on_dataAddress_returnPressed ()
 
void on_dataPort_returnPressed ()
 
void on_startStop_toggled (bool checked)
 
void on_record_toggled (bool checked)
 
void on_eventCountsReset_clicked (bool checked)
 
void updateHardware ()
 
void updateStatus ()
 
void networkManagerFinished (QNetworkReply *reply)
 
void openDeviceSettingsDialog (const QPoint &p)
 

Private Member Functions

void blockApplySettings (bool block)
 
void displaySettings ()
 
void displayTime ()
 
void sendSettings ()
 
void updateWithAcquisition ()
 
void updateWithStreamTime ()
 
void updateSampleRateAndFrequency ()
 
void displayEventCounts ()
 
void displayEventTimer ()
 
void analyzeApiReply (const QJsonObject &jsonObject)
 

Private Attributes

Ui::RemoteInputGui * ui
 
DeviceUISetm_deviceUISet
 
RemoteInputSettings m_settings
 current settings More...
 
RemoteInputm_sampleSource
 
bool m_acquisition
 
int m_streamSampleRate
 Sample rate of received stream. More...
 
quint64 m_streamCenterFrequency
 Center frequency of received stream. More...
 
QTimer m_updateTimer
 
QTimer m_statusTimer
 
int m_lastEngineState
 
MessageQueue m_inputMessageQueue
 
uint64_t m_startingTimeStampms
 
int m_framesDecodingStatus
 
bool m_allBlocksReceived
 
float m_bufferLengthInSecs
 
int32_t m_bufferGauge
 
int m_minNbBlocks
 
int m_minNbOriginalBlocks
 
int m_maxNbRecovery
 
float m_avgNbBlocks
 
float m_avgNbOriginalBlocks
 
float m_avgNbRecovery
 
int m_nbOriginalBlocks
 
int m_nbFECBlocks
 
int m_sampleBits
 
int m_sampleBytes
 
int m_samplesCount
 
std::size_t m_tickCount
 
bool m_addressEdited
 
bool m_dataPortEdited
 
uint32_t m_countUnrecoverable
 
uint32_t m_countRecovered
 
QTime m_eventsTime
 
bool m_doApplySettings
 
bool m_forceSettings
 
double m_txDelay
 
QPalette m_paletteGreenText
 
QPalette m_paletteWhiteText
 
QNetworkAccessManager * m_networkManager
 
QNetworkRequest m_networkRequest
 

Detailed Description

Definition at line 39 of file remoteinputgui.h.

Constructor & Destructor Documentation

◆ RemoteInputGui()

RemoteInputGui::RemoteInputGui ( DeviceUISet deviceUISet,
QWidget *  parent = 0 
)
explicit

Definition at line 47 of file remoteinputgui.cpp.

References displayEventCounts(), displayEventTimer(), displaySettings(), DeviceAPI::getSampleSource(), ColorMapper::GrayGold, handleInputMessages(), DeviceUISet::m_deviceAPI, m_deviceUISet, m_eventsTime, m_forceSettings, m_inputMessageQueue, m_networkManager, m_paletteGreenText, m_paletteWhiteText, m_sampleSource, m_startingTimeStampms, m_statusTimer, m_updateTimer, networkManagerFinished(), openDeviceSettingsDialog(), sendSettings(), RemoteInput::setMessageQueueToGUI(), ui, updateHardware(), and updateStatus().

47  :
48  QWidget(parent),
49  ui(new Ui::RemoteInputGui),
50  m_deviceUISet(deviceUISet),
51  m_settings(),
52  m_sampleSource(0),
53  m_acquisition(false),
59  m_bufferGauge(-50),
60  m_nbOriginalBlocks(128),
61  m_nbFECBlocks(0),
62  m_sampleBits(16), // assume 16 bits to start with
63  m_sampleBytes(2),
64  m_samplesCount(0),
65  m_tickCount(0),
66  m_addressEdited(false),
67  m_dataPortEdited(false),
70  m_doApplySettings(true),
71  m_forceSettings(true),
72  m_txDelay(0.0)
73 {
74  m_paletteGreenText.setColor(QPalette::WindowText, Qt::green);
75  m_paletteWhiteText.setColor(QPalette::WindowText, Qt::white);
76 
78  ui->setupUi(this);
79 
80  ui->centerFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold));
81  ui->centerFrequency->setValueRange(7, 0, 9999999U);
82 
83  ui->centerFrequencyHz->setColorMapper(ColorMapper(ColorMapper::GrayGold));
84  ui->centerFrequencyHz->setValueRange(3, 0, 999U);
85 
86  CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop);
87  connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &)));
88 
90 
91  connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(updateStatus()));
92  m_statusTimer.start(500);
93  connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(updateHardware()));
94 
96 
97  connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection);
99 
100  m_networkManager = new QNetworkAccessManager();
101  connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
102 
103  m_eventsTime.start();
106 
107  m_forceSettings = true;
108  sendSettings();
109 }
uint32_t m_countUnrecoverable
quint64 m_streamCenterFrequency
Center frequency of received stream.
DeviceSampleSource * getSampleSource()
Return pointer to the device sample source (single Rx) or nullptr.
Definition: deviceapi.cpp:213
QNetworkAccessManager * m_networkManager
uint32_t m_countRecovered
std::size_t m_tickCount
Ui::RemoteInputGui * ui
uint64_t m_startingTimeStampms
DeviceUISet * m_deviceUISet
MessageQueue m_inputMessageQueue
void handleInputMessages()
engine is before initialization
Definition: deviceapi.h:53
int32_t m_bufferGauge
void openDeviceSettingsDialog(const QPoint &p)
DeviceAPI * m_deviceAPI
Definition: deviceuiset.h:48
virtual void setMessageQueueToGUI(MessageQueue *queue)
RemoteInputSettings m_settings
current settings
QTimer m_statusTimer
void networkManagerFinished(QNetworkReply *reply)
int m_streamSampleRate
Sample rate of received stream.
QPalette m_paletteWhiteText
float m_bufferLengthInSecs
QTimer m_updateTimer
RemoteInput * m_sampleSource
QPalette m_paletteGreenText
int m_framesDecodingStatus
+ Here is the call graph for this function:

◆ ~RemoteInputGui()

RemoteInputGui::~RemoteInputGui ( )
virtual

Definition at line 111 of file remoteinputgui.cpp.

References m_networkManager, networkManagerFinished(), and ui.

112 {
113  disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
114  delete m_networkManager;
115  delete ui;
116 }
QNetworkAccessManager * m_networkManager
Ui::RemoteInputGui * ui
void networkManagerFinished(QNetworkReply *reply)
+ Here is the call graph for this function:

Member Function Documentation

◆ analyzeApiReply()

void RemoteInputGui::analyzeApiReply ( const QJsonObject &  jsonObject)
private

Definition at line 617 of file remoteinputgui.cpp.

References ui.

Referenced by networkManagerFinished().

618 {
619  QString infoLine;
620 
621  if (jsonObject.contains("version")) {
622  infoLine = jsonObject["version"].toString();
623  }
624 
625  if (jsonObject.contains("qtVersion")) {
626  infoLine += " Qt" + jsonObject["qtVersion"].toString();
627  }
628 
629  if (jsonObject.contains("architecture")) {
630  infoLine += " " + jsonObject["architecture"].toString();
631  }
632 
633  if (jsonObject.contains("os")) {
634  infoLine += " " + jsonObject["os"].toString();
635  }
636 
637  if (jsonObject.contains("dspRxBits") && jsonObject.contains("dspTxBits")) {
638  infoLine += QString(" %1/%2b").arg(jsonObject["dspRxBits"].toInt()).arg(jsonObject["dspTxBits"].toInt());
639  }
640 
641  if (infoLine.size() > 0) {
642  ui->infoText->setText(infoLine);
643  }
644 }
Ui::RemoteInputGui * ui
+ Here is the caller graph for this function:

◆ blockApplySettings()

void RemoteInputGui::blockApplySettings ( bool  block)
private

Definition at line 118 of file remoteinputgui.cpp.

References m_doApplySettings.

Referenced by displaySettings(), handleMessage(), and updateSampleRateAndFrequency().

119 {
120  m_doApplySettings = !block;
121 }
+ Here is the caller graph for this function:

◆ deserialize()

bool RemoteInputGui::deserialize ( const QByteArray &  data)
virtual

Implements PluginInstanceGUI.

Definition at line 151 of file remoteinputgui.cpp.

References RemoteInputSettings::deserialize(), displaySettings(), m_forceSettings, m_settings, and sendSettings().

152 {
153  qDebug("RemoteInputGui::deserialize");
154 
155  if (m_settings.deserialize(data))
156  {
157  displaySettings();
158  m_forceSettings = true;
159  sendSettings();
160 
161  return true;
162  }
163  else
164  {
165  return false;
166  }
167 }
RemoteInputSettings m_settings
current settings
bool deserialize(const QByteArray &data)
+ Here is the call graph for this function:

◆ destroy()

void RemoteInputGui::destroy ( )
virtual

Implements PluginInstanceGUI.

Definition at line 123 of file remoteinputgui.cpp.

124 {
125  delete this;
126 }

◆ displayEventCounts()

void RemoteInputGui::displayEventCounts ( )
private

Definition at line 450 of file remoteinputgui.cpp.

References m_countRecovered, m_countUnrecoverable, and ui.

Referenced by on_eventCountsReset_clicked(), RemoteInputGui(), and updateWithStreamTime().

451 {
452  QString nstr = QString("%1").arg(m_countUnrecoverable, 3, 10, QChar('0'));
453  ui->eventUnrecText->setText(nstr);
454  nstr = QString("%1").arg(m_countRecovered, 3, 10, QChar('0'));
455  ui->eventRecText->setText(nstr);
456 }
uint32_t m_countUnrecoverable
uint32_t m_countRecovered
Ui::RemoteInputGui * ui
+ Here is the caller graph for this function:

◆ displayEventTimer()

void RemoteInputGui::displayEventTimer ( )
private

Definition at line 458 of file remoteinputgui.cpp.

References m_eventsTime, and ui.

Referenced by on_eventCountsReset_clicked(), RemoteInputGui(), and updateWithStreamTime().

459 {
460  int elapsedTimeMillis = m_eventsTime.elapsed();
461  QTime recordLength(0, 0, 0, 0);
462  recordLength = recordLength.addSecs(elapsedTimeMillis/1000);
463  QString s_time = recordLength.toString("HH:mm:ss");
464  ui->eventCountsTimeText->setText(s_time);
465 }
Ui::RemoteInputGui * ui
+ Here is the caller graph for this function:

◆ displaySettings()

void RemoteInputGui::displaySettings ( )
private

Definition at line 294 of file remoteinputgui.cpp.

References arg(), blockApplySettings(), RemoteInputSettings::m_apiAddress, RemoteInputSettings::m_apiPort, RemoteInputSettings::m_dataAddress, RemoteInputSettings::m_dataPort, RemoteInputSettings::m_dcBlock, RemoteInputSettings::m_iqCorrection, m_settings, m_streamCenterFrequency, m_streamSampleRate, and ui.

Referenced by deserialize(), handleMessage(), RemoteInputGui(), and resetToDefaults().

295 {
296  blockApplySettings(true);
297 
298  ui->centerFrequency->setValue(m_streamCenterFrequency / 1000);
299  ui->centerFrequencyHz->setValue(m_streamCenterFrequency % 1000);
300  ui->deviceRateText->setText(tr("%1k").arg(m_streamSampleRate / 1000.0));
301 
302  ui->apiAddress->setText(m_settings.m_apiAddress);
303  ui->apiPort->setText(tr("%1").arg(m_settings.m_apiPort));
304  ui->dataPort->setText(tr("%1").arg(m_settings.m_dataPort));
305  ui->dataAddress->setText(m_settings.m_dataAddress);
306 
307  ui->dcOffset->setChecked(m_settings.m_dcBlock);
308  ui->iqImbalance->setChecked(m_settings.m_iqCorrection);
309 
310  blockApplySettings(false);
311 }
quint64 m_streamCenterFrequency
Center frequency of received stream.
Ui::RemoteInputGui * ui
Fixed< IntType, IntBits > arg(const std::complex< Fixed< IntType, IntBits > > &val)
Definition: fixed.h:2401
RemoteInputSettings m_settings
current settings
int m_streamSampleRate
Sample rate of received stream.
void blockApplySettings(bool block)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ displayTime()

void RemoteInputGui::displayTime ( )
private

◆ getCenterFrequency()

qint64 RemoteInputGui::getCenterFrequency ( ) const
virtual

Implements PluginInstanceGUI.

Definition at line 169 of file remoteinputgui.cpp.

References m_streamCenterFrequency.

170 {
172 }
quint64 m_streamCenterFrequency
Center frequency of received stream.

◆ getInputMessageQueue()

virtual MessageQueue* RemoteInputGui::getInputMessageQueue ( )
inlinevirtual

Implements PluginInstanceGUI.

Definition at line 55 of file remoteinputgui.h.

55 { return &m_inputMessageQueue; }
MessageQueue m_inputMessageQueue

◆ getName()

QString RemoteInputGui::getName ( ) const
virtual

Implements PluginInstanceGUI.

Definition at line 133 of file remoteinputgui.cpp.

134 {
135  return objectName();
136 }

◆ handleInputMessages

void RemoteInputGui::handleInputMessages ( )
privateslot

Definition at line 247 of file remoteinputgui.cpp.

References DSPSignalNotification::getCenterFrequency(), DeviceSampleSource::getInputMessageQueue(), DSPSignalNotification::getSampleRate(), handleMessage(), m_inputMessageQueue, m_sampleSource, m_streamCenterFrequency, m_streamSampleRate, Message::match(), MessageQueue::pop(), MessageQueue::push(), and updateSampleRateAndFrequency().

Referenced by RemoteInputGui().

248 {
249  Message* message;
250 
251  while ((message = m_inputMessageQueue.pop()) != 0)
252  {
253  //qDebug("RemoteInputGui::handleInputMessages: message: %s", message->getIdentifier());
254 
255  if (DSPSignalNotification::match(*message))
256  {
257  DSPSignalNotification* notif = (DSPSignalNotification*) message;
258 
259  if (notif->getSampleRate() != m_streamSampleRate) {
261  }
262 
264 
265  qDebug("RemoteInputGui::handleInputMessages: DSPSignalNotification: SampleRate:%d, CenterFrequency:%llu", notif->getSampleRate(), notif->getCenterFrequency());
266 
268  DSPSignalNotification *fwd = new DSPSignalNotification(*notif);
270 
271  delete message;
272  }
273  else
274  {
275  if (handleMessage(*message))
276  {
277  delete message;
278  }
279  }
280  }
281 }
Message * pop()
Pop message from queue.
void push(Message *message, bool emitSignal=true)
Push message onto queue.
quint64 m_streamCenterFrequency
Center frequency of received stream.
MessageQueue * getInputMessageQueue()
void updateSampleRateAndFrequency()
MessageQueue m_inputMessageQueue
qint64 getCenterFrequency() const
Definition: dspcommands.h:329
static bool match(const Message *message)
Definition: message.cpp:45
int m_streamSampleRate
Sample rate of received stream.
virtual bool handleMessage(const Message &message)
int getSampleRate() const
Definition: dspcommands.h:328
RemoteInput * m_sampleSource
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ handleMessage()

bool RemoteInputGui::handleMessage ( const Message message)
virtual

Implements PluginInstanceGUI.

Definition at line 179 of file remoteinputgui.cpp.

References blockApplySettings(), displaySettings(), RemoteInput::MsgConfigureRemoteInput::getSettings(), RemoteInput::MsgStartStop::getStartStop(), m_acquisition, m_allBlocksReceived, m_avgNbBlocks, m_avgNbOriginalBlocks, m_avgNbRecovery, m_bufferGauge, m_bufferLengthInSecs, m_framesDecodingStatus, m_maxNbRecovery, m_minNbBlocks, m_minNbOriginalBlocks, m_nbFECBlocks, m_nbOriginalBlocks, m_sampleBits, m_sampleBytes, m_settings, m_startingTimeStampms, Message::match(), ui, updateWithAcquisition(), and updateWithStreamTime().

Referenced by handleInputMessages().

180 {
182  {
184  m_settings = cfg.getSettings();
185  blockApplySettings(true);
186  displaySettings();
187  blockApplySettings(false);
188  return true;
189  }
191  {
192  m_acquisition = ((RemoteInput::MsgReportRemoteInputAcquisition&)message).getAcquisition();
194  return true;
195  }
197  {
199 
200  qDebug() << "RemoteInputGui::handleMessage: RemoteInput::MsgReportRemoteInputStreamData: "
201  << " : " << m_startingTimeStampms << " ms";
202 
204  return true;
205  }
207  {
209  m_framesDecodingStatus = ((RemoteInput::MsgReportRemoteInputStreamTiming&)message).getFramesDecodingStatus();
210  m_allBlocksReceived = ((RemoteInput::MsgReportRemoteInputStreamTiming&)message).allBlocksReceived();
211  m_bufferLengthInSecs = ((RemoteInput::MsgReportRemoteInputStreamTiming&)message).getBufferLengthInSecs();
212  m_bufferGauge = ((RemoteInput::MsgReportRemoteInputStreamTiming&)message).getBufferGauge();
213  m_minNbBlocks = ((RemoteInput::MsgReportRemoteInputStreamTiming&)message).getMinNbBlocks();
214  m_minNbOriginalBlocks = ((RemoteInput::MsgReportRemoteInputStreamTiming&)message).getMinNbOriginalBlocks();
215  m_maxNbRecovery = ((RemoteInput::MsgReportRemoteInputStreamTiming&)message).getMaxNbRecovery();
216  m_avgNbBlocks = ((RemoteInput::MsgReportRemoteInputStreamTiming&)message).getAvgNbBlocks();
217  m_avgNbOriginalBlocks = ((RemoteInput::MsgReportRemoteInputStreamTiming&)message).getAvgNbOriginalBlocks();
218  m_avgNbRecovery = ((RemoteInput::MsgReportRemoteInputStreamTiming&)message).getAvgNbRecovery();
219  m_nbOriginalBlocks = ((RemoteInput::MsgReportRemoteInputStreamTiming&)message).getNbOriginalBlocksPerFrame();
220  m_sampleBits = ((RemoteInput::MsgReportRemoteInputStreamTiming&)message).getSampleBits();
221  m_sampleBytes = ((RemoteInput::MsgReportRemoteInputStreamTiming&)message).getSampleBytes();
222 
223  int nbFECBlocks = ((RemoteInput::MsgReportRemoteInputStreamTiming&)message).getNbFECBlocksPerFrame();
224 
225  if (m_nbFECBlocks != nbFECBlocks) {
226  m_nbFECBlocks = nbFECBlocks;
227  }
228 
230  return true;
231  }
232  else if (RemoteInput::MsgStartStop::match(message))
233  {
235  blockApplySettings(true);
236  ui->startStop->setChecked(notif.getStartStop());
237  blockApplySettings(false);
238 
239  return true;
240  }
241  else
242  {
243  return false;
244  }
245 }
void updateWithStreamTime()
Ui::RemoteInputGui * ui
uint64_t m_startingTimeStampms
int32_t m_bufferGauge
RemoteInputSettings m_settings
current settings
bool m_allBlocksReceived
void updateWithAcquisition()
static bool match(const Message *message)
Definition: message.cpp:45
float m_bufferLengthInSecs
float m_avgNbOriginalBlocks
void blockApplySettings(bool block)
const RemoteInputSettings & getSettings() const
Definition: remoteinput.h:47
int m_framesDecodingStatus
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ networkManagerFinished

void RemoteInputGui::networkManagerFinished ( QNetworkReply *  reply)
privateslot

Definition at line 577 of file remoteinputgui.cpp.

References analyzeApiReply(), and ui.

Referenced by RemoteInputGui(), and ~RemoteInputGui().

578 {
579  if (reply->error())
580  {
581  ui->apiAddressLabel->setStyleSheet("QLabel { background:rgb(79,79,79); }");
582  ui->statusText->setText(reply->errorString());
583  return;
584  }
585 
586  QString answer = reply->readAll();
587 
588  try
589  {
590  QByteArray jsonBytes(answer.toStdString().c_str());
591  QJsonParseError error;
592  QJsonDocument doc = QJsonDocument::fromJson(jsonBytes, &error);
593 
594  if (error.error == QJsonParseError::NoError)
595  {
596  ui->apiAddressLabel->setStyleSheet("QLabel { background-color : green; }");
597  ui->statusText->setText(QString("API OK"));
598  analyzeApiReply(doc.object());
599  }
600  else
601  {
602  ui->apiAddressLabel->setStyleSheet("QLabel { background:rgb(79,79,79); }");
603  QString errorMsg = QString("Reply JSON error: ") + error.errorString() + QString(" at offset ") + QString::number(error.offset);
604  ui->statusText->setText(QString("JSON error. See log"));
605  qInfo().noquote() << "RemoteInputGui::networkManagerFinished" << errorMsg;
606  }
607  }
608  catch (const std::exception& ex)
609  {
610  ui->apiAddressLabel->setStyleSheet("QLabel { background:rgb(79,79,79); }");
611  QString errorMsg = QString("Error parsing request: ") + ex.what();
612  ui->statusText->setText("Error parsing request. See log for details");
613  qInfo().noquote() << "RemoteInputGui::networkManagerFinished" << errorMsg;
614  }
615 }
Ui::RemoteInputGui * ui
void analyzeApiReply(const QJsonObject &jsonObject)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ on_apiAddress_returnPressed

void RemoteInputGui::on_apiAddress_returnPressed ( )
privateslot

Definition at line 353 of file remoteinputgui.cpp.

References RemoteInputSettings::m_apiAddress, RemoteInputSettings::m_apiPort, m_networkManager, m_networkRequest, m_settings, sendSettings(), and ui.

354 {
355  m_settings.m_apiAddress = ui->apiAddress->text();
356 
357  QString infoURL = QString("http://%1:%2/sdrangel").arg(m_settings.m_apiAddress).arg(m_settings.m_apiPort);
358  m_networkRequest.setUrl(QUrl(infoURL));
360 
361  sendSettings();
362 }
QNetworkAccessManager * m_networkManager
Ui::RemoteInputGui * ui
RemoteInputSettings m_settings
current settings
QNetworkRequest m_networkRequest
+ Here is the call graph for this function:

◆ on_apiApplyButton_clicked

void RemoteInputGui::on_apiApplyButton_clicked ( bool  checked)
privateslot

Definition at line 319 of file remoteinputgui.cpp.

References RemoteInputSettings::m_apiAddress, RemoteInputSettings::m_apiPort, m_networkManager, m_networkRequest, m_settings, sendSettings(), and ui.

320 {
321  (void) checked;
322  m_settings.m_apiAddress = ui->apiAddress->text();
323 
324  bool ctlOk;
325  int udpApiPort = ui->apiPort->text().toInt(&ctlOk);
326 
327  if((ctlOk) && (udpApiPort >= 1024) && (udpApiPort < 65535)) {
328  m_settings.m_apiPort = udpApiPort;
329  }
330 
331  sendSettings();
332 
333  QString infoURL = QString("http://%1:%2/sdrangel").arg(m_settings.m_apiAddress).arg(m_settings.m_apiPort);
334  m_networkRequest.setUrl(QUrl(infoURL));
336 }
QNetworkAccessManager * m_networkManager
Ui::RemoteInputGui * ui
RemoteInputSettings m_settings
current settings
QNetworkRequest m_networkRequest
+ Here is the call graph for this function:

◆ on_apiPort_returnPressed

void RemoteInputGui::on_apiPort_returnPressed ( )
privateslot

Definition at line 386 of file remoteinputgui.cpp.

References RemoteInputSettings::m_apiAddress, RemoteInputSettings::m_apiPort, m_networkManager, m_networkRequest, m_settings, sendSettings(), and ui.

387 {
388  bool ctlOk;
389  int udpApiPort = ui->apiPort->text().toInt(&ctlOk);
390 
391  if((!ctlOk) || (udpApiPort < 1024) || (udpApiPort > 65535))
392  {
393  return;
394  }
395  else
396  {
397  m_settings.m_apiPort = udpApiPort;
398 
399  QString infoURL = QString("http://%1:%2/sdrangel").arg(m_settings.m_apiAddress).arg(m_settings.m_apiPort);
400  m_networkRequest.setUrl(QUrl(infoURL));
402 
403  sendSettings();
404  }
405 }
QNetworkAccessManager * m_networkManager
Ui::RemoteInputGui * ui
RemoteInputSettings m_settings
current settings
QNetworkRequest m_networkRequest
+ Here is the call graph for this function:

◆ on_dataAddress_returnPressed

void RemoteInputGui::on_dataAddress_returnPressed ( )
privateslot

Definition at line 364 of file remoteinputgui.cpp.

References RemoteInputSettings::m_dataAddress, m_settings, sendSettings(), and ui.

365 {
366  m_settings.m_dataAddress = ui->dataAddress->text();
367  sendSettings();
368 }
Ui::RemoteInputGui * ui
RemoteInputSettings m_settings
current settings
+ Here is the call graph for this function:

◆ on_dataApplyButton_clicked

void RemoteInputGui::on_dataApplyButton_clicked ( bool  checked)
privateslot

Definition at line 338 of file remoteinputgui.cpp.

References RemoteInputSettings::m_dataAddress, RemoteInputSettings::m_dataPort, m_settings, sendSettings(), and ui.

339 {
340  (void) checked;
341  m_settings.m_dataAddress = ui->dataAddress->text();
342 
343  bool dataOk;
344  int udpDataPort = ui->dataPort->text().toInt(&dataOk);
345 
346  if((dataOk) && (udpDataPort >= 1024) && (udpDataPort < 65535)) {
347  m_settings.m_dataPort = udpDataPort;
348  }
349 
350  sendSettings();
351 }
Ui::RemoteInputGui * ui
RemoteInputSettings m_settings
current settings
+ Here is the call graph for this function:

◆ on_dataPort_returnPressed

void RemoteInputGui::on_dataPort_returnPressed ( )
privateslot

Definition at line 370 of file remoteinputgui.cpp.

References RemoteInputSettings::m_dataPort, m_settings, sendSettings(), and ui.

371 {
372  bool dataOk;
373  int udpDataPort = ui->dataPort->text().toInt(&dataOk);
374 
375  if((!dataOk) || (udpDataPort < 1024) || (udpDataPort > 65535))
376  {
377  return;
378  }
379  else
380  {
381  m_settings.m_dataPort = udpDataPort;
382  sendSettings();
383  }
384 }
Ui::RemoteInputGui * ui
RemoteInputSettings m_settings
current settings
+ Here is the call graph for this function:

◆ on_dcOffset_toggled

void RemoteInputGui::on_dcOffset_toggled ( bool  checked)
privateslot

Definition at line 407 of file remoteinputgui.cpp.

References RemoteInputSettings::m_dcBlock, m_settings, and sendSettings().

408 {
409  m_settings.m_dcBlock = checked;
410  sendSettings();
411 }
RemoteInputSettings m_settings
current settings
+ Here is the call graph for this function:

◆ on_eventCountsReset_clicked

void RemoteInputGui::on_eventCountsReset_clicked ( bool  checked)
privateslot

Definition at line 440 of file remoteinputgui.cpp.

References displayEventCounts(), displayEventTimer(), m_countRecovered, m_countUnrecoverable, and m_eventsTime.

441 {
442  (void) checked;
444  m_countRecovered = 0;
445  m_eventsTime.start();
448 }
uint32_t m_countUnrecoverable
uint32_t m_countRecovered
+ Here is the call graph for this function:

◆ on_iqImbalance_toggled

void RemoteInputGui::on_iqImbalance_toggled ( bool  checked)
privateslot

Definition at line 413 of file remoteinputgui.cpp.

References RemoteInputSettings::m_iqCorrection, m_settings, and sendSettings().

414 {
415  m_settings.m_iqCorrection = checked;
416  sendSettings();
417 }
RemoteInputSettings m_settings
current settings
+ Here is the call graph for this function:

◆ on_record_toggled

void RemoteInputGui::on_record_toggled ( bool  checked)
privateslot

Definition at line 428 of file remoteinputgui.cpp.

References RemoteInput::MsgFileRecord::create(), DeviceSampleSource::getInputMessageQueue(), m_sampleSource, MessageQueue::push(), and ui.

429 {
430  if (checked) {
431  ui->record->setStyleSheet("QToolButton { background-color : red; }");
432  } else {
433  ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }");
434  }
435 
438 }
void push(Message *message, bool emitSignal=true)
Push message onto queue.
MessageQueue * getInputMessageQueue()
Ui::RemoteInputGui * ui
static MsgFileRecord * create(bool startStop)
Definition: remoteinput.h:239
RemoteInput * m_sampleSource
+ Here is the call graph for this function:

◆ on_startStop_toggled

void RemoteInputGui::on_startStop_toggled ( bool  checked)
privateslot

Definition at line 419 of file remoteinputgui.cpp.

References RemoteInput::MsgStartStop::create(), DeviceSampleSource::getInputMessageQueue(), m_doApplySettings, m_sampleSource, and MessageQueue::push().

420 {
421  if (m_doApplySettings)
422  {
425  }
426 }
void push(Message *message, bool emitSignal=true)
Push message onto queue.
MessageQueue * getInputMessageQueue()
static MsgStartStop * create(bool startStop)
Definition: remoteinput.h:258
RemoteInput * m_sampleSource
+ Here is the call graph for this function:

◆ openDeviceSettingsDialog

void RemoteInputGui::openDeviceSettingsDialog ( const QPoint &  p)
privateslot

Definition at line 646 of file remoteinputgui.cpp.

References BasicDeviceSettingsDialog::getReverseAPIAddress(), BasicDeviceSettingsDialog::getReverseAPIDeviceIndex(), BasicDeviceSettingsDialog::getReverseAPIPort(), RemoteInputSettings::m_reverseAPIAddress, RemoteInputSettings::m_reverseAPIDeviceIndex, RemoteInputSettings::m_reverseAPIPort, m_settings, RemoteInputSettings::m_useReverseAPI, sendSettings(), BasicDeviceSettingsDialog::setReverseAPIAddress(), BasicDeviceSettingsDialog::setReverseAPIDeviceIndex(), BasicDeviceSettingsDialog::setReverseAPIPort(), BasicDeviceSettingsDialog::setUseReverseAPI(), and BasicDeviceSettingsDialog::useReverseAPI().

Referenced by RemoteInputGui().

647 {
648  BasicDeviceSettingsDialog dialog(this);
649  dialog.setUseReverseAPI(m_settings.m_useReverseAPI);
650  dialog.setReverseAPIAddress(m_settings.m_reverseAPIAddress);
651  dialog.setReverseAPIPort(m_settings.m_reverseAPIPort);
652  dialog.setReverseAPIDeviceIndex(m_settings.m_reverseAPIDeviceIndex);
653 
654  dialog.move(p);
655  dialog.exec();
656 
657  m_settings.m_useReverseAPI = dialog.useReverseAPI();
658  m_settings.m_reverseAPIAddress = dialog.getReverseAPIAddress();
659  m_settings.m_reverseAPIPort = dialog.getReverseAPIPort();
660  m_settings.m_reverseAPIDeviceIndex = dialog.getReverseAPIDeviceIndex();
661 
662  sendSettings();
663 }
RemoteInputSettings m_settings
current settings
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ resetToDefaults()

void RemoteInputGui::resetToDefaults ( )
virtual

Implements PluginInstanceGUI.

Definition at line 138 of file remoteinputgui.cpp.

References displaySettings(), m_forceSettings, m_settings, RemoteInputSettings::resetToDefaults(), and sendSettings().

139 {
141  displaySettings();
142  m_forceSettings = true;
143  sendSettings();
144 }
RemoteInputSettings m_settings
current settings
+ Here is the call graph for this function:

◆ sendSettings()

void RemoteInputGui::sendSettings ( )
private

◆ serialize()

QByteArray RemoteInputGui::serialize ( ) const
virtual

Implements PluginInstanceGUI.

Definition at line 146 of file remoteinputgui.cpp.

References m_settings, and RemoteInputSettings::serialize().

147 {
148  return m_settings.serialize();
149 }
QByteArray serialize() const
RemoteInputSettings m_settings
current settings
+ Here is the call graph for this function:

◆ setCenterFrequency()

void RemoteInputGui::setCenterFrequency ( qint64  centerFrequency)
virtual

Implements PluginInstanceGUI.

Definition at line 174 of file remoteinputgui.cpp.

175 {
176  (void) centerFrequency;
177 }

◆ setName()

void RemoteInputGui::setName ( const QString &  name)
virtual

Implements PluginInstanceGUI.

Definition at line 128 of file remoteinputgui.cpp.

129 {
130  setObjectName(name);
131 }

◆ updateHardware

void RemoteInputGui::updateHardware ( )
privateslot

Definition at line 524 of file remoteinputgui.cpp.

References RemoteInput::MsgConfigureRemoteInput::create(), DeviceSampleSource::getInputMessageQueue(), m_doApplySettings, m_forceSettings, m_sampleSource, m_settings, m_updateTimer, and MessageQueue::push().

Referenced by RemoteInputGui().

525 {
526  if (m_doApplySettings)
527  {
528  qDebug() << "RemoteInputGui::updateHardware";
532  m_forceSettings = false;
533  m_updateTimer.stop();
534  }
535 }
void push(Message *message, bool emitSignal=true)
Push message onto queue.
MessageQueue * getInputMessageQueue()
static MsgConfigureRemoteInput * create(const RemoteInputSettings &settings, bool force=false)
Definition: remoteinput.h:50
RemoteInputSettings m_settings
current settings
QTimer m_updateTimer
RemoteInput * m_sampleSource
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateSampleRateAndFrequency()

void RemoteInputGui::updateSampleRateAndFrequency ( )
private

Definition at line 283 of file remoteinputgui.cpp.

References arg(), blockApplySettings(), DeviceUISet::getSpectrum(), m_deviceUISet, m_streamCenterFrequency, m_streamSampleRate, GLSpectrum::setCenterFrequency(), GLSpectrum::setSampleRate(), and ui.

Referenced by handleInputMessages().

284 {
287  ui->deviceRateText->setText(tr("%1k").arg((float)m_streamSampleRate / 1000));
288  blockApplySettings(true);
289  ui->centerFrequency->setValue(m_streamCenterFrequency / 1000);
290  ui->centerFrequencyHz->setValue(m_streamCenterFrequency % 1000);
291  blockApplySettings(false);
292 }
void setSampleRate(qint32 sampleRate)
Definition: glspectrum.cpp:211
quint64 m_streamCenterFrequency
Center frequency of received stream.
Ui::RemoteInputGui * ui
DeviceUISet * m_deviceUISet
Fixed< IntType, IntBits > arg(const std::complex< Fixed< IntType, IntBits > > &val)
Definition: fixed.h:2401
GLSpectrum * getSpectrum()
Direct spectrum getter.
Definition: deviceuiset.h:57
int m_streamSampleRate
Sample rate of received stream.
void setCenterFrequency(qint64 frequency)
Definition: glspectrum.cpp:175
void blockApplySettings(bool block)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateStatus

void RemoteInputGui::updateStatus ( )
privateslot

Definition at line 537 of file remoteinputgui.cpp.

References DeviceAPI::errorMessage(), RemoteInput::isStreaming(), DeviceUISet::m_deviceAPI, m_deviceUISet, m_lastEngineState, m_sampleSource, DeviceAPI::state(), DeviceAPI::StError, DeviceAPI::StIdle, DeviceAPI::StNotStarted, DeviceAPI::StRunning, and ui.

Referenced by RemoteInputGui().

538 {
540  {
541  int state = m_deviceUISet->m_deviceAPI->state();
542 
543  if (m_lastEngineState != state)
544  {
545  switch(state)
546  {
548  ui->startStop->setStyleSheet("QToolButton { background:rgb(79,79,79); }");
549  break;
550  case DeviceAPI::StIdle:
551  ui->startStop->setStyleSheet("QToolButton { background-color : blue; }");
552  break;
554  ui->startStop->setStyleSheet("QToolButton { background-color : green; }");
555  break;
556  case DeviceAPI::StError:
557  ui->startStop->setStyleSheet("QToolButton { background-color : red; }");
558  QMessageBox::information(this, tr("Message"), m_deviceUISet->m_deviceAPI->errorMessage());
559  break;
560  default:
561  break;
562  }
563 
564  m_lastEngineState = state;
565  }
566 
567  ui->startStop->setEnabled(true);
568  }
569  else
570  {
571  ui->startStop->setStyleSheet("QToolButton { background:rgb(79,79,79); }");
572  ui->startStop->setChecked(false);
573  ui->startStop->setEnabled(false);
574  }
575 }
bool isStreaming() const
Ui::RemoteInputGui * ui
DeviceUISet * m_deviceUISet
QString errorMessage()
Last error message from the device engine.
Definition: deviceapi.cpp:290
engine is before initialization
Definition: deviceapi.h:53
EngineState state() const
Return the state of the device engine corresponding to the stream type.
Definition: deviceapi.cpp:277
DeviceAPI * m_deviceAPI
Definition: deviceuiset.h:48
engine is idle
Definition: deviceapi.h:54
engine is running
Definition: deviceapi.h:56
RemoteInput * m_sampleSource
engine is in error
Definition: deviceapi.h:57
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateWithAcquisition()

void RemoteInputGui::updateWithAcquisition ( )
private

Definition at line 467 of file remoteinputgui.cpp.

Referenced by handleMessage().

468 {
469 }
+ Here is the caller graph for this function:

◆ updateWithStreamTime()

void RemoteInputGui::updateWithStreamTime ( )
private

Definition at line 471 of file remoteinputgui.cpp.

References arg(), displayEventCounts(), displayEventTimer(), m_bufferGauge, m_bufferLengthInSecs, m_countRecovered, m_countUnrecoverable, m_framesDecodingStatus, m_maxNbRecovery, m_minNbBlocks, m_nbFECBlocks, m_nbOriginalBlocks, m_sampleBits, m_startingTimeStampms, and ui.

Referenced by handleMessage().

472 {
473  bool updateEventCounts = false;
474  QDateTime dt = QDateTime::fromMSecsSinceEpoch(m_startingTimeStampms);
475  QString s_date = dt.toString("yyyy-MM-dd HH:mm:ss.zzz");
476  ui->absTimeText->setText(s_date);
477 
478  if (m_framesDecodingStatus == 2)
479  {
480  ui->allFramesDecoded->setStyleSheet("QToolButton { background-color : green; }");
481  }
482  else if (m_framesDecodingStatus == 1)
483  {
484  if (m_countRecovered < 999) m_countRecovered++;
485  updateEventCounts = true;
486  ui->allFramesDecoded->setStyleSheet("QToolButton { background:rgb(56,56,56); }");
487  }
488  else
489  {
491  updateEventCounts = true;
492  ui->allFramesDecoded->setStyleSheet("QToolButton { background-color : red; }");
493  }
494 
495  QString s = QString::number(m_bufferLengthInSecs, 'f', 1);
496  ui->bufferLenSecsText->setText(tr("%1").arg(s));
497 
498  s = QString::number(m_bufferGauge, 'f', 0);
499  ui->bufferRWBalanceText->setText(tr("%1").arg(s));
500 
501  ui->bufferGaugeNegative->setValue((m_bufferGauge < 0 ? -m_bufferGauge : 0));
502  ui->bufferGaugePositive->setValue((m_bufferGauge < 0 ? 0 : m_bufferGauge));
503 
504  s = QString::number(m_minNbBlocks, 'f', 0);
505  ui->minNbBlocksText->setText(tr("%1").arg(s));
506 
507  s = QString("%1").arg(m_maxNbRecovery, 2, 10, QChar('0'));
508  ui->maxNbRecoveryText->setText(tr("%1").arg(s));
509 
510  s = QString::number(m_nbOriginalBlocks + m_nbFECBlocks, 'f', 0);
511  QString s1 = QString("%1").arg(m_nbFECBlocks, 2, 10, QChar('0'));
512  ui->nominalNbBlocksText->setText(tr("%1/%2").arg(s).arg(s1));
513 
514  ui->sampleBitsText->setText(tr("%1b").arg(m_sampleBits));
515 
516  if (updateEventCounts)
517  {
519  }
520 
522 }
uint32_t m_countUnrecoverable
uint32_t m_countRecovered
Ui::RemoteInputGui * ui
uint64_t m_startingTimeStampms
Fixed< IntType, IntBits > arg(const std::complex< Fixed< IntType, IntBits > > &val)
Definition: fixed.h:2401
int32_t m_bufferGauge
float m_bufferLengthInSecs
int m_framesDecodingStatus
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_acquisition

bool RemoteInputGui::m_acquisition
private

Definition at line 64 of file remoteinputgui.h.

Referenced by handleMessage().

◆ m_addressEdited

bool RemoteInputGui::m_addressEdited
private

Definition at line 93 of file remoteinputgui.h.

◆ m_allBlocksReceived

bool RemoteInputGui::m_allBlocksReceived
private

Definition at line 76 of file remoteinputgui.h.

Referenced by handleMessage().

◆ m_avgNbBlocks

float RemoteInputGui::m_avgNbBlocks
private

Definition at line 82 of file remoteinputgui.h.

Referenced by handleMessage().

◆ m_avgNbOriginalBlocks

float RemoteInputGui::m_avgNbOriginalBlocks
private

Definition at line 83 of file remoteinputgui.h.

Referenced by handleMessage().

◆ m_avgNbRecovery

float RemoteInputGui::m_avgNbRecovery
private

Definition at line 84 of file remoteinputgui.h.

Referenced by handleMessage().

◆ m_bufferGauge

int32_t RemoteInputGui::m_bufferGauge
private

Definition at line 78 of file remoteinputgui.h.

Referenced by handleMessage(), and updateWithStreamTime().

◆ m_bufferLengthInSecs

float RemoteInputGui::m_bufferLengthInSecs
private

Definition at line 77 of file remoteinputgui.h.

Referenced by handleMessage(), and updateWithStreamTime().

◆ m_countRecovered

uint32_t RemoteInputGui::m_countRecovered
private

◆ m_countUnrecoverable

uint32_t RemoteInputGui::m_countUnrecoverable
private

◆ m_dataPortEdited

bool RemoteInputGui::m_dataPortEdited
private

Definition at line 94 of file remoteinputgui.h.

◆ m_deviceUISet

DeviceUISet* RemoteInputGui::m_deviceUISet
private

Definition at line 61 of file remoteinputgui.h.

Referenced by RemoteInputGui(), updateSampleRateAndFrequency(), and updateStatus().

◆ m_doApplySettings

bool RemoteInputGui::m_doApplySettings
private

Definition at line 100 of file remoteinputgui.h.

Referenced by blockApplySettings(), on_startStop_toggled(), and updateHardware().

◆ m_eventsTime

QTime RemoteInputGui::m_eventsTime
private

Definition at line 98 of file remoteinputgui.h.

Referenced by displayEventTimer(), on_eventCountsReset_clicked(), and RemoteInputGui().

◆ m_forceSettings

bool RemoteInputGui::m_forceSettings
private

Definition at line 101 of file remoteinputgui.h.

Referenced by deserialize(), RemoteInputGui(), resetToDefaults(), and updateHardware().

◆ m_framesDecodingStatus

int RemoteInputGui::m_framesDecodingStatus
private

Definition at line 75 of file remoteinputgui.h.

Referenced by handleMessage(), and updateWithStreamTime().

◆ m_inputMessageQueue

MessageQueue RemoteInputGui::m_inputMessageQueue
private

Definition at line 70 of file remoteinputgui.h.

Referenced by handleInputMessages(), and RemoteInputGui().

◆ m_lastEngineState

int RemoteInputGui::m_lastEngineState
private

Definition at line 69 of file remoteinputgui.h.

Referenced by updateStatus().

◆ m_maxNbRecovery

int RemoteInputGui::m_maxNbRecovery
private

Definition at line 81 of file remoteinputgui.h.

Referenced by handleMessage(), and updateWithStreamTime().

◆ m_minNbBlocks

int RemoteInputGui::m_minNbBlocks
private

Definition at line 79 of file remoteinputgui.h.

Referenced by handleMessage(), and updateWithStreamTime().

◆ m_minNbOriginalBlocks

int RemoteInputGui::m_minNbOriginalBlocks
private

Definition at line 80 of file remoteinputgui.h.

Referenced by handleMessage().

◆ m_nbFECBlocks

int RemoteInputGui::m_nbFECBlocks
private

Definition at line 86 of file remoteinputgui.h.

Referenced by handleMessage(), and updateWithStreamTime().

◆ m_nbOriginalBlocks

int RemoteInputGui::m_nbOriginalBlocks
private

Definition at line 85 of file remoteinputgui.h.

Referenced by handleMessage(), and updateWithStreamTime().

◆ m_networkManager

QNetworkAccessManager* RemoteInputGui::m_networkManager
private

◆ m_networkRequest

QNetworkRequest RemoteInputGui::m_networkRequest
private

◆ m_paletteGreenText

QPalette RemoteInputGui::m_paletteGreenText
private

Definition at line 104 of file remoteinputgui.h.

Referenced by RemoteInputGui().

◆ m_paletteWhiteText

QPalette RemoteInputGui::m_paletteWhiteText
private

Definition at line 105 of file remoteinputgui.h.

Referenced by RemoteInputGui().

◆ m_sampleBits

int RemoteInputGui::m_sampleBits
private

Definition at line 87 of file remoteinputgui.h.

Referenced by handleMessage(), and updateWithStreamTime().

◆ m_sampleBytes

int RemoteInputGui::m_sampleBytes
private

Definition at line 88 of file remoteinputgui.h.

Referenced by handleMessage().

◆ m_samplesCount

int RemoteInputGui::m_samplesCount
private

Definition at line 90 of file remoteinputgui.h.

◆ m_sampleSource

RemoteInput* RemoteInputGui::m_sampleSource
private

◆ m_settings

RemoteInputSettings RemoteInputGui::m_settings
private

◆ m_startingTimeStampms

uint64_t RemoteInputGui::m_startingTimeStampms
private

Definition at line 74 of file remoteinputgui.h.

Referenced by handleMessage(), RemoteInputGui(), and updateWithStreamTime().

◆ m_statusTimer

QTimer RemoteInputGui::m_statusTimer
private

Definition at line 68 of file remoteinputgui.h.

Referenced by RemoteInputGui().

◆ m_streamCenterFrequency

quint64 RemoteInputGui::m_streamCenterFrequency
private

Center frequency of received stream.

Definition at line 66 of file remoteinputgui.h.

Referenced by displaySettings(), getCenterFrequency(), handleInputMessages(), and updateSampleRateAndFrequency().

◆ m_streamSampleRate

int RemoteInputGui::m_streamSampleRate
private

Sample rate of received stream.

Definition at line 65 of file remoteinputgui.h.

Referenced by displaySettings(), handleInputMessages(), and updateSampleRateAndFrequency().

◆ m_tickCount

std::size_t RemoteInputGui::m_tickCount
private

Definition at line 91 of file remoteinputgui.h.

◆ m_txDelay

double RemoteInputGui::m_txDelay
private

Definition at line 102 of file remoteinputgui.h.

◆ m_updateTimer

QTimer RemoteInputGui::m_updateTimer
private

Definition at line 67 of file remoteinputgui.h.

Referenced by RemoteInputGui(), sendSettings(), and updateHardware().

◆ ui

Ui::RemoteInputGui* RemoteInputGui::ui
private

The documentation for this class was generated from the following files: