From 3397a9d11c2bcdd59e34c52a67e80a88ca893b6d Mon Sep 17 00:00:00 2001 From: James Turner Date: Wed, 28 Sep 2016 21:33:42 -0500 Subject: [PATCH] Event-input files for GoFlight hardware. Note this requires recently pushed changes to EventInput that only work on Mac at present. --- Input/Event/GoFlight/MCP-pro.xml | 530 +++++++++++++++++++++++++++++++ Input/Event/GoFlight/MFR.xml | 217 +++++++++++++ 2 files changed, 747 insertions(+) create mode 100644 Input/Event/GoFlight/MCP-pro.xml create mode 100644 Input/Event/GoFlight/MFR.xml diff --git a/Input/Event/GoFlight/MCP-pro.xml b/Input/Event/GoFlight/MCP-pro.xml new file mode 100644 index 000000000..7b83a9eaf --- /dev/null +++ b/Input/Event/GoFlight/MCP-pro.xml @@ -0,0 +1,530 @@ + + + GoFlight MCP Pro + true + + + + 0) { + r ~= padChar; + padCount -=1; + } + + for (var i=0; i < size(s); i += 1) { + if (s[i] == `.`) { + # set the high bit to correspond to the decimal + var lastIndex = size(r) - 1; + r[lastIndex] = r[lastIndex] + 0x80; + } elsif (s[i] == `-`) { + r ~= chr(0x40); + } else { + var digitCode = s[i] - `0`; + r ~= chr(translateDigitToSevenSegment[digitCode]); + } + } + + return r; + } + + var altitudeAlphanumeric = func() { + var alt = getprop("/autopilot/settings/target-altitude-ft"); + var altStr = sprintf("%d", alt); + return encodeString(altStr, 5); + } + + var headingAlphanumeric = func() { + var hdg = getprop("/autopilot/settings/heading-bug-deg"); + return encodeString(sprintf("%d", hdg), 3); + } + + var courseAlphanumeric = func() { + var crs = getprop("/instrumentation/nav[0]/radials/selected-deg"); + return encodeString(sprintf("%d", crs), 3); + } + + var course2Alphanumeric = func() { + var crs = getprop("/instrumentation/nav[1]/radials/selected-deg"); + return encodeString(sprintf("%d", crs), 3); + } + + var speedAlphanumeric = func() { + var spd = getprop("/autopilot/settings/target-speed-kt"); + return encodeString(sprintf("%d", spd), 5); + } + + var vspeedAlphanumeric = func() { + var vs = getprop("/autopilot/settings/vertical-speed-fpm"); + return encodeString(sprintf("%d", vs), 5); + } + + var ledState = func() + { + if (activeChannel == 1) return chr(0x04); + return chr(0x2); + } + ]]> + + + + + rel-dial + + 00 + 11 + 25 + 310 + 420 + + + property-adjust + /autopilot/settings/target-altitude-ft + 100 + 0 + + + + + rel-dial-1 + + property-adjust + /autopilot/settings/heading-bug-deg + true + 0 + 359 + + + 00 + 11 + 25 + 310 + 420 + + + + + rel-dial-2 + + property-adjust + /instrumentation/nav[0]/radials/selected-deg + true + 0 + 359 + + + 00 + 11 + 25 + 310 + 420 + + + + rel-dial-3 + + property-adjust + /autopilot/settings/vertical-speed-fpm + 10 + + + 00 + 11 + 25 + 310 + 420 + + + + + rel-dial-4 + + property-adjust + /autopilot/settings/target-speed-kt + 0 + + + 00 + 11 + 25 + 310 + 420 + + + + + rel-dial-5 + + property-adjust + /instrumentation/nav[1]/radials/selected-deg + true + 0 + 359 + + + 00 + 11 + 25 + 310 + 420 + + + + + + 9 + /autopilot/settings/target-altitude-ft + altitudeAlphanumeric + + + + 7 + /autopilot/settings/heading-bug-deg + headingAlphanumeric + + + + 3 + /instrumentation/nav[0]/radials/selected-deg + courseAlphanumeric + + + + 11 + /autopilot/settings/vertical-speed-fpm + vspeedAlphanumeric + + + + 5 + /autopilot/settings/target-speed-kt + speedAlphanumeric + + + + 13 + /instrumentation/nav[1]/radials/selected-deg + course2Alphanumeric + + + + + led-misc + + 1 + + /gear/gear[0]/indicator-servicable + + /gear/gear[0]/position-norm + 0.9 + + + + + 0 + + + + /gear/gear[0]/indicator-servicable + + /gear/gear[0]/position-norm + 0.9 + + + + + + + + + + button-1 + + nasal + + + + + + button-2 + + nasal + + + + + + button-3 + + nasal + + + + + + button-4 + + nasal + + + + + + button-5 + + nasal + + + + + + button-6 + + nasal + + + + + + button-7 + + nasal + + + + + + button-8 + + nasal + + + + + + Speed + button-9 + + nasal + + + + + + button-10 + Level Change + + nasal + + + + + + button-11 + Heading + + nasal + + + + + + button-12 + Approach + + nasal + + + + + + button-13 + Altitude + + nasal + + + + + + button-14 + Vertical Speed + + nasal + + + + + + button-15 + Disengage Bar + + nasal + + + + + + + button-16 + F/O FD Enable + + nasal + + + + + + button-17 + Altitude Intervention + + nasal + + + + + + button-18 + CWS-A + + nasal + + + + + + button-19 + CWS-B + + nasal + + + + + + button-20 + IAS knob push + + nasal + + + + + + button-21 + HDG knob push + + nasal + + + + + + button-22 + Altitude Knob Push + + nasal + + + + + + button-23 + Captain's FD Enable + + nasal + + + + + + button-24 + N1 select + + nasal + + + + + + button-25 + VNAV + + nasal + + + + + + button-26 + LNAV + + nasal + + + + + + button-27 + CMD A + + nasal + + + + + + button-28 + CMD B + + nasal + + + + + + button-29 + AT arm + + nasal + + + + + + button-30 + Soeed crossover + + nasal + + + + + + button-31 + Speed intervention + + nasal + + + + + + button-32 + VOR / Localizer + + nasal + + + + diff --git a/Input/Event/GoFlight/MFR.xml b/Input/Event/GoFlight/MFR.xml new file mode 100644 index 000000000..3b022e475 --- /dev/null +++ b/Input/Event/GoFlight/MFR.xml @@ -0,0 +1,217 @@ + + + GoFlight MFR + true + + + + = 2) activeChannel = 0; + updateActive(); + } + + # map decimal digits 0..9 to standard 7-segment LCD pattern + var translateDigitToSevenSegment = [0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f]; + + var formatFrequency = func(freqMhz) + { + var s = sprintf("%.3f", freqMhz); + var padCount = 6 - size(s); + var r = ""; + + while (padCount > 0) { + r ~= chr(0); + padCount -=1; + } + + for (var i=0; i < size(s); i += 1) { + if (s[i] == `.`) { + # set the high bit to correspond to the decimal + var lastIndex = size(r) - 1; + r[lastIndex] = r[lastIndex] + 0x80; + } else { + var digitCode = s[i] - `0`; + r ~= chr(translateDigitToSevenSegment[digitCode]); + } + } + + return r; + } + + var standbyAlphanumeric = func() { + return formatFrequency(standbyNode.getValue()); + } + + var selectedAlphanumeric = func() { + return formatFrequency(selectedNode.getValue()); + } + + var ledState = func() + { + if (activeChannel == 1) return chr(0x04); + return chr(0x2); + } + + updateActive(0); + ]]> + + + + + rel-dial + + property-adjust + /input/goflight/mfr/standby-mhz + 108.0 + 117.95 + true + + + 00 + 11 + 22 + 34 + 48 + + + + + rel-dial-1 + + property-adjust + /input/goflight/mfr/standby-mhz + 0.025 + 108.0 + 117.95 + true + + + 00 + 11 + 22 + 34 + 48 + + + + + 3 + /input/goflight/mfr/active + + /instrumentation/nav[0]/frequencies/selected-mhz + /instrumentation/nav[1]/frequencies/selected-mhz + selectedAlphanumeric + + + + 5 + /input/goflight/mfr/active + + /instrumentation/nav[0]/frequencies/standby-mhz + /instrumentation/nav[1]/frequencies/standby-mhz + standbyAlphanumeric + + + + 7 + /input/goflight/mfr/active + ledState + + + + Transfer Button + button-1 + + property-swap + /input/goflight/mfr/standby-mhz + /input/goflight/mfr/selected-mhz + + + + + Nav 1 Button + button-2 + + nasal + + + + + + Nav 2 Button + button-3 + + nasal + + + + +