1// Based on https://github.com/ArduPilot/MAVProxy/blob/9bf8b00fbc355650b060e546110877c7898baa81/MAVProxy/modules/lib/mp_util.py#L384
8import QGroundControl.Controls
11 property Fact fact: Fact { }
15 property var busTypes: {
25 property var compassTypes: {
51 property var imuTypes: {
75 0x31: 'INS_ADIS1647X',
90 property var baroTypes: {
117 property var airspeedTypes: {
130 function decode (device) {
131 var devid = parseInt(device.valueString)
132 var deviceName = device.name
133 var busType = busTypes[devid & 0x07]
134 var bus = (devid >> 3) & 0x1F
135 var address = (devid >> 8) & 0xFF
136 var devtype = (devid >> 16)
142 if (deviceName.startsWith('COMPASS')) {
143 if (busType === 'UAVCAN') {
144 decodedDevname = 'UAVCAN'
145 } else if (busType === 'EAHRS') {
146 decodedDevname = 'EAHRS'
148 decodedDevname = compassTypes[devtype] || '?'
151 if (deviceName.startsWith('INS')) {
152 decodedDevname = imuTypes[devtype] || '?'
154 if (deviceName.startsWith('GND_BARO')) {
155 decodedDevname = baroTypes[devtype] || '?'
157 if (deviceName.startsWith('BARO')) {
158 decodedDevname = baroTypes[devtype] || '?'
160 if (deviceName.startsWith('ARSP')) {
161 decodedDevname = airspeedTypes[devtype] || '?'
163 return `${decodedDevname} (${busType}${bus})`