Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion src/Comms/SerialLink.cc
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ void SerialConfiguration::copyFrom(const LinkConfiguration *source)
setPortName(serialSource->portName());
setPortDisplayName(serialSource->portDisplayName());
setUsbDirect(serialSource->usbDirect());
setdtrForceLow(serialSource->dtrForceLow());
}

void SerialConfiguration::loadSettings(QSettings &settings, const QString &root)
Expand All @@ -88,6 +89,7 @@ void SerialConfiguration::loadSettings(QSettings &settings, const QString &root)
setParity(static_cast<QSerialPort::Parity>(settings.value("parity", _parity).toInt()));
setPortName(settings.value("portName", _portName).toString());
setPortDisplayName(settings.value("portDisplayName", _portDisplayName).toString());
setdtrForceLow(settings.value("dtrForceLow", _dtrForceLow).toBool());

settings.endGroup();
}
Expand All @@ -103,6 +105,7 @@ void SerialConfiguration::saveSettings(QSettings &settings, const QString &root)
settings.setValue("parity", _parity);
settings.setValue("portName", _portName);
settings.setValue("portDisplayName", _portDisplayName);
settings.setValue("dtrForceLow", _dtrForceLow);

settings.endGroup();
}
Expand Down Expand Up @@ -312,7 +315,7 @@ void SerialWorker::_onPortConnected()
{
qCDebug(SerialLinkLog) << "Port connected:" << _port->portName();

_port->setDataTerminalReady(true);
_port->setDataTerminalReady(_serialConfig->dtrForceLow() ? false : true);
_port->setBaudRate(_serialConfig->baud());
_port->setDataBits(static_cast<QSerialPort::DataBits>(_serialConfig->dataBits()));
_port->setFlowControl(static_cast<QSerialPort::FlowControl>(_serialConfig->flowControl()));
Expand Down
6 changes: 6 additions & 0 deletions src/Comms/SerialLink.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ class SerialConfiguration : public LinkConfiguration
Q_PROPERTY(QString portName READ portName WRITE setPortName NOTIFY portNameChanged)
Q_PROPERTY(QString portDisplayName READ portDisplayName NOTIFY portDisplayNameChanged)
Q_PROPERTY(bool usbDirect READ usbDirect WRITE setUsbDirect NOTIFY usbDirectChanged)
Q_PROPERTY(bool dtrForceLow READ dtrForceLow WRITE setdtrForceLow NOTIFY dtrForceLowChanged)

public:
explicit SerialConfiguration(const QString &name, QObject *parent = nullptr);
Expand Down Expand Up @@ -76,6 +77,9 @@ class SerialConfiguration : public LinkConfiguration
bool usbDirect() const { return _usbDirect; }
void setUsbDirect(bool usbDirect) { if (usbDirect != _usbDirect) { _usbDirect = usbDirect; emit usbDirectChanged(); } }

bool dtrForceLow() const { return _dtrForceLow; }
void setdtrForceLow(bool dtrForceLow) { if (dtrForceLow != _dtrForceLow) { _dtrForceLow = dtrForceLow; emit dtrForceLowChanged(); } }

static QStringList supportedBaudRates();
static QString cleanPortDisplayName(const QString &name);

Expand All @@ -88,6 +92,7 @@ class SerialConfiguration : public LinkConfiguration
void portNameChanged();
void portDisplayNameChanged();
void usbDirectChanged();
void dtrForceLowChanged();

private:
qint32 _baud = QSerialPort::Baud57600;
Expand All @@ -98,6 +103,7 @@ class SerialConfiguration : public LinkConfiguration
QString _portName;
QString _portDisplayName;
bool _usbDirect = false;
bool _dtrForceLow = false;
};

/*===========================================================================*/
Expand Down
7 changes: 7 additions & 0 deletions src/UI/AppSettings/SerialSettings.qml
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,13 @@ ColumnLayout {
onCheckedChanged: subEditConfig.flowControl = checked ? 1 : 0
}

QGCCheckBox {
Layout.columnSpan: 2
text: qsTr("Force DTR Low")
checked: subEditConfig ? subEditConfig.dtrForceLow : false
onCheckedChanged: { if (subEditConfig) subEditConfig.dtrForceLow = checked }
}

QGCLabel { text: qsTr("Parity") }
QGCComboBox {
Layout.preferredWidth: _secondColumnWidth
Expand Down
Loading