5import QGroundControl.Controls
6import QGroundControl.FactControls
9 heading: qsTr("NMEA GPS")
10 visible: QGroundControl.settingsManager.autoConnectSettings.autoConnectNmeaPort.userVisible && QGroundControl.settingsManager.autoConnectSettings.autoConnectNmeaBaud.userVisible
18 onActivated: (index) => {
20 QGroundControl.settingsManager.autoConnectSettings.autoConnectNmeaPort.value = comboBox.textAt(index);
24 Component.onCompleted: {
27 model.push(qsTr("Disabled"))
28 model.push(qsTr("UDP Port"))
30 if (QGroundControl.linkManager.serialPorts.length === 0) {
31 model.push(qsTr("Serial <none available>"))
33 for (var i in QGroundControl.linkManager.serialPorts) {
34 model.push(QGroundControl.linkManager.serialPorts[i])
37 nmeaPortCombo.model = model
39 const index = nmeaPortCombo.comboBox.find(QGroundControl.settingsManager.autoConnectSettings.autoConnectNmeaPort.valueString);
40 nmeaPortCombo.currentIndex = index;
46 visible: nmeaPortCombo.currentIndex > 1
47 label: qsTr("Baudrate")
49 readonly property string _customLabel: qsTr("Custom")
50 readonly property bool isCustomBaud: currentText === _customLabel
52 onActivated: (index) => {
53 if (index !== -1 && !isCustomBaud) {
54 QGroundControl.settingsManager.autoConnectSettings.autoConnectNmeaBaud.value = parseInt(comboBox.textAt(index));
58 Component.onCompleted: {
59 var rates = QGroundControl.linkManager.serialBaudRates.slice()
60 rates.push(_customLabel)
61 nmeaBaudCombo.model = rates
63 var baud = QGroundControl.settingsManager.autoConnectSettings.autoConnectNmeaBaud.valueString
64 const index = nmeaBaudCombo.comboBox.find(baud);
66 nmeaBaudCombo.currentIndex = nmeaBaudCombo.comboBox.count - 1
67 customNmeaBaudField.text = baud
69 nmeaBaudCombo.currentIndex = index;
75 visible: nmeaBaudCombo.visible && nmeaBaudCombo.isCustomBaud
76 spacing: ScreenTools.defaultFontPixelWidth
79 text: qsTr("Custom Baud Rate")
80 Layout.fillWidth: true
83 id: customNmeaBaudField
84 numericValuesOnly: true
85 validator: IntValidator { bottom: 1 }
87 if (!nmeaBaudCombo.isCustomBaud) return
88 var baud = parseInt(text)
90 QGroundControl.settingsManager.autoConnectSettings.autoConnectNmeaBaud.value = baud
96 LabelledFactTextField {
97 visible: nmeaPortCombo.currentIndex === 1
98 label: qsTr("NMEA stream UDP port")
99 fact: QGroundControl.settingsManager.autoConnectSettings.nmeaUdpPort