21#if defined( HAVE_QTSERIALPORT )
23#include <QSerialPortInfo>
35QgsTcpSocketSensorWidget::QgsTcpSocketSensorWidget( QWidget *parent )
48 s->
setPort( mPortSpinBox->value() );
59 s->
setPort( mPortSpinBox->value() );
69 mHostNameLineEdit->setText( ts->
hostName() );
70 mPortSpinBox->setValue( ts->
port() );
77 mHostNameLineEdit->setText( us->
hostName() );
78 mPortSpinBox->setValue( us->
port() );
87QgsUdpSocketSensorWidget::QgsUdpSocketSensorWidget( QWidget *parent )
100 s->
setPort( mPortSpinBox->value() );
111 s->
setPort( mPortSpinBox->value() );
121 mHostNameLineEdit->setText( ts->
hostName() );
122 mPortSpinBox->setValue( ts->
port() );
129 mHostNameLineEdit->setText( us->
hostName() );
130 mPortSpinBox->setValue( us->
port() );
139#if defined( HAVE_QTSERIALPORT )
140QgsSerialPortSensorWidget::QgsSerialPortSensorWidget( QWidget *parent )
145 for (
const QSerialPortInfo &info : QSerialPortInfo::availablePorts() )
147 mSerialPortComboBox->addItem( QStringLiteral(
"%1: %2" ).arg( info.portName(), info.description() ), info.portName() );
150 mBaudRateComboBox->addItem( QStringLiteral(
"1200 baud" ),
static_cast<int>( QSerialPort::Baud1200 ) );
151 mBaudRateComboBox->addItem( QStringLiteral(
"2400 baud" ),
static_cast<int>( QSerialPort::Baud2400 ) );
152 mBaudRateComboBox->addItem( QStringLiteral(
"4800 baud" ),
static_cast<int>( QSerialPort::Baud4800 ) );
153 mBaudRateComboBox->addItem( QStringLiteral(
"9600 baud" ),
static_cast<int>( QSerialPort::Baud9600 ) );
154 mBaudRateComboBox->addItem( QStringLiteral(
"19200 baud" ),
static_cast<int>( QSerialPort::Baud19200 ) );
155 mBaudRateComboBox->addItem( QStringLiteral(
"38400 baud" ),
static_cast<int>( QSerialPort::Baud38400 ) );
156 mBaudRateComboBox->addItem( QStringLiteral(
"57600 baud" ),
static_cast<int>( QSerialPort::Baud57600 ) );
157 mBaudRateComboBox->addItem( QStringLiteral(
"115200 baud" ),
static_cast<int>( QSerialPort::Baud115200 ) );
158 mBaudRateComboBox->setCurrentIndex( 3 );
160 updateSerialPortDetails();
162 connect( mSerialPortComboBox,
static_cast<void ( QComboBox::* )(
int )
>( &QComboBox::currentIndexChanged ),
this, [ = ]()
164 updateSerialPortDetails();
168 connect( mBaudRateComboBox,
static_cast<void ( QComboBox::* )(
int )
>( &QComboBox::currentIndexChanged ),
this, [ = ]()
170 updateSerialPortDetails();
178 QgsSerialPortSensor *s =
new QgsSerialPortSensor();
179 s->setPortName( mSerialPortComboBox->currentData().toString() );
180 s->setBaudRate(
static_cast< QSerialPort::BaudRate
>( mBaudRateComboBox->currentData().toInt() ) );
186 QgsSerialPortSensor *s =
dynamic_cast<QgsSerialPortSensor *
>( sensor );
190 s->setPortName( mSerialPortComboBox->currentData().toString() );
191 s->setBaudRate(
static_cast< QSerialPort::BaudRate
>( mBaudRateComboBox->currentData().toInt() ) );
197 QgsSerialPortSensor *s =
dynamic_cast<QgsSerialPortSensor *
>( sensor );
201 const int index = mSerialPortComboBox->findData( s->portName() );
204 mSerialPortComboBox->setCurrentIndex( index );
208 mSerialPortComboBox->addItem( s->portName(), s->portName() );
209 mSerialPortComboBox->setCurrentIndex( mSerialPortComboBox->count() - 1 );
212 const int baudRateIndex = mBaudRateComboBox->findData( s->baudRate() );
215 mBaudRateComboBox->setCurrentIndex( baudRateIndex );
219 mBaudRateComboBox->setCurrentIndex( mBaudRateComboBox->count() - 1 );
226void QgsSerialPortSensorWidget::updateSerialPortDetails()
228 if ( mSerialPortComboBox->currentIndex() < 0 )
233 const QString ¤tPortName = mSerialPortComboBox->currentData().toString();
234 bool serialPortFound =
false;
235 for (
const QSerialPortInfo &info : QSerialPortInfo::availablePorts() )
237 serialPortFound = info.portName() == currentPortName;
238 if ( serialPortFound )
240 mSerialPortDetails->setText( QStringLiteral(
"%1:\n- %2: %3\n- %4: %5\n- %6: %7\n- %8: %9\n- %10: %11" ).arg( tr(
"Serial port details" ),
241 tr(
"Port name" ), info.portName(),
242 tr(
"Description" ), info.description(),
243 tr(
"Manufacturer" ), info.manufacturer(),
244 tr(
"Product identifier" ), QString::number( info.productIdentifier() ),
245 tr(
"Serial number" ), info.serialNumber() ) );
249 if ( !serialPortFound )
251 mSerialPortDetails->setText( QStringLiteral(
"%1:\n- %2: %3" ).arg( tr(
"Serial port details" ),
252 tr(
"Port name" ), currentPortName ) );
An abstract base class for sensor classes.
A TCP socket sensor class.
void setHostName(const QString &hostName)
Sets the host name the socket connects to.
int port() const
Returns the port the socket connects to.
void setPort(int port)
Sets the port the socket connects to.
QString hostName() const
Returns the host name the socket connects to.
A UDP socket sensor class.
void setHostName(const QString &hostName)
Sets the host name the socket connects to.
int port() const
Returns the port the socket connects to.
void setPort(int port)
Sets the port the socket connects to.
QString hostName() const
Returns the host name the socket connects to.