6import QGroundControl.Controls
11 function saveSettings() {
17 rowSpacing: _rowSpacing
18 columnSpacing: _colSpacing
20 QGCLabel { text: qsTr("Serial Port") }
23 Layout.preferredWidth: _secondColumnWidth
24 enabled: QGroundControl.linkManager.serialPorts.length > 0
26 onActivated: (index) => {
28 if (index >= QGroundControl.linkManager.serialPortStrings.length) {
29 // This item was adding at the end, must use added text as name
30 subEditConfig.portName = commPortCombo.textAt(index)
32 subEditConfig.portName = QGroundControl.linkManager.serialPorts[index]
37 Component.onCompleted: {
40 if (QGroundControl.linkManager.serialPortStrings.length !== 0) {
41 for (var i=0; i<QGroundControl.linkManager.serialPortStrings.length; i++) {
42 serialPorts.push(QGroundControl.linkManager.serialPortStrings[i])
44 if (subEditConfig.portDisplayName === "" && QGroundControl.linkManager.serialPorts.length > 0) {
45 subEditConfig.portName = QGroundControl.linkManager.serialPorts[0]
47 index = serialPorts.indexOf(subEditConfig.portDisplayName)
49 serialPorts.push(subEditConfig.portName)
50 index = serialPorts.indexOf(subEditConfig.portName)
53 if (serialPorts.length === 0) {
54 serialPorts = [ qsTr("None Available") ]
57 commPortCombo.model = serialPorts
58 commPortCombo.currentIndex = index
62 QGCLabel { text: qsTr("Baud Rate") }
65 Layout.preferredWidth: _secondColumnWidth
66 model: QGroundControl.linkManager.serialBaudRates
68 onActivated: (index) => {
70 subEditConfig.baud = parseInt(QGroundControl.linkManager.serialBaudRates[index])
74 Component.onCompleted: {
76 if(subEditConfig != null) {
77 baud = subEditConfig.baud.toString()
79 var index = baudCombo.find(baud)
81 console.warn(qsTr("Baud rate name not in combo box"), baud)
83 baudCombo.currentIndex = index
91 text: qsTr("Advanced Settings")
97 rowSpacing: _rowSpacing
98 columnSpacing: _colSpacing
99 visible: advancedSettings.checked
103 text: qsTr("Enable Flow Control")
104 checked: subEditConfig.flowControl !== 0
105 onCheckedChanged: subEditConfig.flowControl = checked ? 1 : 0
110 text: qsTr("Force DTR Low")
111 checked: subEditConfig ? subEditConfig.dtrForceLow : false
112 onCheckedChanged: { if (subEditConfig) subEditConfig.dtrForceLow = checked }
115 QGCLabel { text: qsTr("Parity") }
117 Layout.preferredWidth: _secondColumnWidth
118 model: [qsTr("None"), qsTr("Even"), qsTr("Odd")]
120 onActivated: (index) => {
121 // Hard coded values from qserialport.h
124 subEditConfig.parity = 0
127 subEditConfig.parity = 2
130 subEditConfig.parity = 3
135 Component.onCompleted: {
136 switch (subEditConfig.parity) {
147 console.warn("Unknown parity", subEditConfig.parity)
153 QGCLabel { text: qsTr("Data Bits") }
155 Layout.preferredWidth: _secondColumnWidth
156 model: [ "5", "6", "7", "8" ]
157 currentIndex: Math.max(Math.min(subEditConfig.dataBits - 5, 3), 0)
158 onActivated: (index) => { subEditConfig.dataBits = index + 5 }
161 QGCLabel { text: qsTr("Stop Bits") }
163 Layout.preferredWidth: _secondColumnWidth
165 currentIndex: Math.max(Math.min(subEditConfig.stopBits - 1, 1), 0)
166 onActivated: (index) => { subEditConfig.stopBits = index + 1 }