/**************************************************************************** * * (c) 2009-2016 QGROUNDCONTROL PROJECT * * QGroundControl is licensed according to the terms in the file * COPYING.md in the root of the source code directory. * ****************************************************************************/ import QtQuick 2.3 import QtQuick.Controls 1.2 import QtQuick.Dialogs 1.2 import QGroundControl 1.0 import QGroundControl.Controls 1.0 import QGroundControl.ScreenTools 1.0 import QGroundControl.Palette 1.0 Item { id: serialLinkSettings width: parent ? parent.width : 0 height: serialColumn.height function saveSettings() { // No Need } Column { id: serialColumn width: serialLinkSettings.width spacing: ScreenTools.defaultFontPixelHeight / 2 QGCLabel { id: serialLabel text: qsTr("Serial Link Settings") } Rectangle { height: 1 width: serialLabel.width color: qgcPal.button } Item { height: ScreenTools.defaultFontPixelHeight / 2 width: parent.width } Row { spacing: ScreenTools.defaultFontPixelWidth QGCLabel { text: qsTr("Serial Port:") width: _firstColumn anchors.verticalCenter: parent.verticalCenter } QGCLabel { text: qsTr("No serial ports available"); visible: QGroundControl.linkManager.serialPortStrings.length == 0 } QGCComboBox { id: commPortCombo anchors.verticalCenter: parent.verticalCenter width: _secondColumn model: QGroundControl.linkManager.serialPortStrings visible: QGroundControl.linkManager.serialPortStrings.length > 0 onActivated: { if (index != -1) { subEditConfig.portName = QGroundControl.linkManager.serialPorts[index] } } Component.onCompleted: { if(subEditConfig != null) { if(subEditConfig.portDisplayName === "" && QGroundControl.linkManager.serialPorts.length > 0) subEditConfig.portName = QGroundControl.linkManager.serialPorts[0] var index = commPortCombo.find(subEditConfig.portDisplayName) if (index === -1) { console.warn(qsTr("Serial Port not present"), subEditConfig.portName) } else { commPortCombo.currentIndex = index } } else { commPortCombo.currentIndex = 0 } } } } Row { spacing: ScreenTools.defaultFontPixelWidth QGCLabel { text: qsTr("Baud Rate:") width: _firstColumn anchors.verticalCenter: parent.verticalCenter } QGCComboBox { id: baudCombo width: _secondColumn model: QGroundControl.linkManager.serialBaudRates anchors.verticalCenter: parent.verticalCenter onActivated: { if (index != -1) { subEditConfig.baud = parseInt(QGroundControl.linkManager.serialBaudRates[index]) } } Component.onCompleted: { var baud = "57600" if(subEditConfig != null) { baud = subEditConfig.baud.toString() } var index = baudCombo.find(baud) if (index === -1) { console.warn(qsTr("Baud rate name not in combo box"), baud) } else { baudCombo.currentIndex = index } } } } Item { height: ScreenTools.defaultFontPixelHeight / 2 width: parent.width } //----------------------------------------------------------------- //-- Advanced Serial Settings QGCCheckBox { id: showAdvanced text: qsTr("Show Advanced Serial Settings") } Item { height: ScreenTools.defaultFontPixelHeight / 2 width: parent.width } //-- Flow Control QGCCheckBox { text: qsTr("Enable Flow Control") checked: subEditConfig ? subEditConfig.flowControl !== 0 : false visible: showAdvanced.checked onCheckedChanged: { if(subEditConfig) { subEditConfig.flowControl = checked ? 1 : 0 } } } //-- Parity Row { spacing: ScreenTools.defaultFontPixelWidth visible: showAdvanced.checked QGCLabel { text: qsTr("Parity:") width: _firstColumn anchors.verticalCenter: parent.verticalCenter } QGCComboBox { id: parityCombo width: _firstColumn model: [qsTr("None"), qsTr("Even"), qsTr("Odd")] anchors.verticalCenter: parent.verticalCenter onActivated: { if (index != -1) { // Hard coded values from qserialport.h if(index == 0) subEditConfig.parity = 0 else if(index == 1) subEditConfig.parity = 2 else subEditConfig.parity = 3 } } Component.onCompleted: { var index = 0 if(subEditConfig != null) { index = subEditConfig.parity } if(index > 1) { index = index - 2 } parityCombo.currentIndex = index } } } //-- Data Bits Row { spacing: ScreenTools.defaultFontPixelWidth visible: showAdvanced.checked QGCLabel { text: "Data Bits:" width: _firstColumn anchors.verticalCenter: parent.verticalCenter } QGCComboBox { id: dataCombo width: _firstColumn model: ["5", "6", "7", "8"] anchors.verticalCenter: parent.verticalCenter onActivated: { if (index != -1) { subEditConfig.dataBits = index + 5 } } Component.onCompleted: { var index = 3 if(subEditConfig != null) { index = subEditConfig.parity - 5 if(index < 0) index = 3 } dataCombo.currentIndex = index } } } //-- Stop Bits Row { spacing: ScreenTools.defaultFontPixelWidth visible: showAdvanced.checked QGCLabel { text: qsTr("Stop Bits:") width: _firstColumn anchors.verticalCenter: parent.verticalCenter } QGCComboBox { id: stopCombo width: _firstColumn model: ["1", "2"] anchors.verticalCenter: parent.verticalCenter onActivated: { if (index != -1) { subEditConfig.stopBits = index + 1 } } Component.onCompleted: { var index = 0 if(subEditConfig != null) { index = subEditConfig.stopBits - 1 if(index < 0) index = 0 } stopCombo.currentIndex = index } } } QGCCheckBox { text: "High Latency" checked: false visible: editConfig ? editConfig.highLatencyAllowed : false onCheckedChanged: { if(editConfig) { editConfig.highLatency = checked } } Component.onCompleted: { if(editConfig) checked = editConfig.highLatency } } } }