5import QGroundControl.Controls
6import QGroundControl.FactControls
9 heading: qsTr("NMEA GPS")
10 visible: _autoConnectSettings.nmeaSource.userVisible && _autoConnectSettings.autoConnectNmeaBaud.userVisible
12 readonly property var _autoConnectSettings: QGroundControl.settingsManager.autoConnectSettings
13 readonly property bool _serialSource: _autoConnectSettings.nmeaSource.rawValue === AutoConnectSettings.NmeaSourceSerial
15 LabelledFactComboBox {
17 fact: _autoConnectSettings.nmeaSource
22 visible: _serialSource
27 onActivated: (index) => {
28 if (index !== -1 && QGroundControl.linkManager.serialPorts.length !== 0) {
29 _autoConnectSettings.autoConnectNmeaPort.value = comboBox.textAt(index)
33 Component.onCompleted: {
36 if (QGroundControl.linkManager.serialPorts.length === 0) {
37 model.push(qsTr("<none available>"))
39 for (var i in QGroundControl.linkManager.serialPorts) {
40 model.push(QGroundControl.linkManager.serialPorts[i])
43 nmeaPortCombo.model = model
45 nmeaPortCombo.currentIndex = nmeaPortCombo.comboBox.find(_autoConnectSettings.autoConnectNmeaPort.valueString)
51 visible: _serialSource
52 label: qsTr("Baudrate")
54 readonly property string _customLabel: qsTr("Custom")
55 readonly property bool isCustomBaud: currentText === _customLabel
57 onActivated: (index) => {
58 if (index !== -1 && !isCustomBaud) {
59 QGroundControl.settingsManager.autoConnectSettings.autoConnectNmeaBaud.value = parseInt(comboBox.textAt(index));
63 Component.onCompleted: {
64 var rates = QGroundControl.linkManager.serialBaudRates.slice()
65 rates.push(_customLabel)
66 nmeaBaudCombo.model = rates
68 var baud = _autoConnectSettings.autoConnectNmeaBaud.valueString
69 const index = nmeaBaudCombo.comboBox.find(baud);
71 nmeaBaudCombo.currentIndex = nmeaBaudCombo.comboBox.count - 1
72 customNmeaBaudField.text = baud
74 nmeaBaudCombo.currentIndex = index;
80 visible: nmeaBaudCombo.visible && nmeaBaudCombo.isCustomBaud
81 spacing: ScreenTools.defaultFontPixelWidth
84 text: qsTr("Custom Baud Rate")
85 Layout.fillWidth: true
88 id: customNmeaBaudField
89 numericValuesOnly: true
90 validator: IntValidator { bottom: 1 }
92 if (!nmeaBaudCombo.isCustomBaud) return
93 var baud = parseInt(text)
95 _autoConnectSettings.autoConnectNmeaBaud.value = baud
101 LabelledFactTextField {
102 visible: _autoConnectSettings.nmeaSource.rawValue === AutoConnectSettings.NmeaSourceUdp
103 label: qsTr("NMEA stream UDP port")
104 fact: _autoConnectSettings.nmeaUdpPort