From b339ff135815eb2b4cacc4400aa84600979316e9 Mon Sep 17 00:00:00 2001 From: Stuart Buchanan Date: Tue, 29 Jan 2013 22:38:39 +0000 Subject: [PATCH] Enhancement to the checklists function to support . Checklist items now support a element that evaluates when the checklist item is complete, and is used to provide color coding in the checklist dialog. --- Aircraft/c172p/c172-checklists.xml | 477 ++++++++++++++++++++++++++++- Docs/README.checklists | 16 + gui/dialogs/checklist.xml | 51 ++- 3 files changed, 538 insertions(+), 6 deletions(-) create mode 100644 Docs/README.checklists diff --git a/Aircraft/c172p/c172-checklists.xml b/Aircraft/c172p/c172-checklists.xml index 646299de8..bba3382fa 100644 --- a/Aircraft/c172p/c172-checklists.xml +++ b/Aircraft/c172p/c172-checklists.xml @@ -6,7 +6,7 @@ COMPLETE - Passenger + Passenger Briefing COMPLETE @@ -16,6 +16,12 @@ Brakes TEST and SET (shift-B) + + + /controls/gear/brake-parking + 1 + + Avionics Power Switch @@ -32,6 +38,18 @@ Fuel Selector Valve BOTH + + + + /consumables/fuel/tank/selected + 1 + + + /consumables/fuel/tank[1]/selected + 1 + + + @@ -45,14 +63,38 @@ Carburetor Heat COLD + + + /controls/anti-ice/engine[0]/carb-heat + 0 + + Throttle OPEN 1/8 INCH + + + + /controls/engines/engine[0]/throttle + 0.1 + + + /controls/engines/engine[0]/throttle + 0.4 + + + Mixture RICH + + + /controls/engines/engine[0]/mixture + 0.9 + + Propellor Area @@ -66,6 +108,12 @@ Magnetos BOTH (press } three times) + + + /controls/engines/engine[0]/magnetos + 3 + + Ignition Switch @@ -81,12 +129,36 @@ ON - Navigation Lights and Flashing Beacon + Navigation Lights, Flashing Beacon ON as required + + + + /controls/lighting/nav-lights + 1 + + + /controls/lighting/beacon + 1 + + + Radios ON + + + + /instrumentation/comm[0]/volume + 0.0 + + + /instrumentation/comm[1]/volume + 0.0 + + + @@ -95,6 +167,12 @@ Parking Brake SET (shift-B) + + + /controls/gear/brake-parking + 1 + + Seats, Seat Belts, Shoulder Harnesses @@ -119,18 +197,60 @@ Mixture RICH + + + /controls/engines/engine[0]/mixture + 0.9 + + Fuel Selector Valve RECHECK BOTH + + + + /consumables/fuel/tank/selected + 1 + + + /consumables/fuel/tank[1]/selected + 1 + + + Elevator Trim SET for takeoff + + + + /controls/flight/elevator-trim + -0.25 + + + /controls/flight/elevator-trim + 0.0 + + + Throttle 1700 RPM + + + + /engines/engine/rpm + 1600 + + + /engines/engine/rpm + 1700 + + + Magnetos @@ -160,6 +280,12 @@ Strobe Lights AS DESIRED + + + /controls/lighting/strobe + 1 + + Radios and Avionics @@ -172,10 +298,22 @@ Wing Flaps SET for takeoff + + + /controls/flight/flaps + 0.5 + + Brakes RELEASE + + + /controls/gear/brake-parking + 1 + + @@ -184,19 +322,54 @@ Wing Flaps 0 - 10 degrees + + + /controls/flight/flaps + 0.5 + + Carburetor Heat COLD + + + /controls/anti-ice/engine[0]/carb-heat + 0 + + + + + Mixture + RICH + (above 3000ft, LEAN to obtain maximum RPM) + + + /controls/engines/engine[0]/mixture + 0.9 + + Throttle FULL OPEN + + + /controls/engines/engine/throttle + 0.95 + + Elevator Control LIFT NOSE WHEEL (at 55 KIAS) + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 55.0 + + @@ -205,27 +378,81 @@ Wing Flaps 10 degrees + + + + /controls/flight/flaps + 0.2 + + + /controls/flight/flaps + 0.5 + + + Carburetor Heat COLD + + + /controls/anti-ice/engine[0]/carb-heat + 0 + + Brakes APPLY + + + + /controls/gear/brake-left + 0.9 + + + /controls/gear/brake-right + 0.9 + + + Throttle FULL OPEN + + + /controls/engines/engine/throttle + 0.95 + + Mixture RICH (above 3000ft, LEAN to obtain maximum RPM) + + + /controls/engines/engine[0]/mixture + 0.9 + + Brakes RELEASE + + + + /controls/gear/brake-left + 0.1 + + + /controls/gear/brake-right + 0.1 + + + Elevator Control @@ -242,15 +469,39 @@ Airspeed 70-85 KIAS + + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 70.0 + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 85.0 + + + Throttle FULL OPEN + + + /controls/engines/engine/throttle + 0.95 + + Mixture RICH (above 3000ft, LEAN to obtain maximum RPM) + + + /controls/engines/engine[0]/mixture + 0.9 + + @@ -260,6 +511,18 @@ Power 2100-2700 RPM (no more than 75% recommended) + + + + /engines/engine/rpm + 2100 + + + /engines/engine/rpm + 2700 + + + Elevator Trim @@ -276,6 +539,18 @@ Fuel Selector Valve BOTH + + + + /consumables/fuel/tank/selected + 1 + + + /consumables/fuel/tank[1]/selected + 1 + + + Power @@ -290,6 +565,12 @@ Carburetor Heat FULL HEAT AS REQUIRED (to prevent carburetor icing) + + + /controls/anti-ice/engine[0]/carb-heat + 1 + + @@ -302,15 +583,39 @@ Fuel Selector Valve BOTH + + + + /consumables/fuel/tank/selected + 1 + + + /consumables/fuel/tank[1]/selected + 1 + + + Mixture RICH + + + /controls/engines/engine[0]/mixture + 0.9 + + Carburetor Heat FULL HEAT (apply full heat before reducing power) + + + /controls/anti-ice/engine[0]/carb-heat + 1 + + Autopilot @@ -323,16 +628,52 @@ Airspeed 65-75 KIAS (flaps UP) + + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 65.0 + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 75.0 + + + Wing Flaps AS DESIRED - (0 - 10 degrees below 110KIAS + 0 - 10 degrees below 110KIAS 10 - 30 degrees below 85KIAS + + + + /controls/flight/flaps + 0.2 + + + /controls/flight/flaps + 0.5 + + + Airspeed 60-70 KIAS (flaps DOWN) + + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 60.0 + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 70.0 + + + Touchdown @@ -353,18 +694,54 @@ Airspeed 65-75 KIAS (flaps UP) + + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 65.0 + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 75.0 + + + Wing Flaps FULL DOWN (30 degrees) + + + /controls/flight/flaps + 0.9 + + Airspeed 61 KIAS (until flare) + + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 59.0 + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 63.0 + + + Power REDUCE to idle after clearing obstacle + + + /controls/engines/engine/throttle + 0.05 + + Touchdown @@ -373,10 +750,28 @@ Braking APPLY HEAVILY + + + + /controls/gear/brake-left + 0.9 + + + /controls/gear/brake-right + 0.9 + + + Wing Flaps RETRACT + + + /controls/flight/flaps + 0.2 + + @@ -385,23 +780,67 @@ Throttle FULL OPEN + + + /controls/engines/engine/throttle + 0.95 + + Carburetor Heat COLD + + + /controls/anti-ice/engine[0]/carb-heat + 0 + + Wing Flaps 20 degrees (immediately) + + + + /controls/flight/flaps + 0.6 + + + /controls/flight/flaps + 0.7 + + + Climb Speed 55 KIAS + + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 53.0 + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 58.0 + + + Wing Flaps 10 degrees (until obstacles are cleared) RETRACT (after reaching safe altitude and 60 KIAS) + + + + /controls/flight/flaps + 0.4 + + + @@ -410,10 +849,24 @@ Carburetor Heat COLD + + + /controls/anti-ice/engine[0]/carb-heat + 0 + + Wing Flaps UP + + + + /controls/flight/flaps + 0.2 + + + @@ -422,6 +875,12 @@ Parking Brake SET + + + /controls/gear/brake-parking + 1 + + Avionics, Power, Electrical, Autopilot @@ -430,10 +889,22 @@ Mixture PULLED FULL OUT + + + /controls/engines/engine[0]/mixture + 0.05 + + Ignition Switch OFF + + + /controls/engines/engine[0]/magnetos + 0 + + Control Lock diff --git a/Docs/README.checklists b/Docs/README.checklists new file mode 100644 index 000000000..b3dfba257 --- /dev/null +++ b/Docs/README.checklists @@ -0,0 +1,16 @@ +CHECKLISTS + +You can create one or more checklist for an aircraft under /sim/checklists. + +Each checklist is defined as a property tree under /sim/checklists/checklist[n] +with the following tags + + - Name of the checklist +<item> - One or more checklist items containing: + <name> - name of the checklist item (e.g. Carb Heat), to appear on the left + <value> - One or more values for the checklist item, to appear on the right hand side + <condition> - Option standard FlightGear condition node that evaluates when the + checklist item has been completed. + +See the c172p for an example of this in action (Aircraft/c172p/c172-checklists.xml). + diff --git a/gui/dialogs/checklist.xml b/gui/dialogs/checklist.xml index 4f39deaba..685ffd70e 100644 --- a/gui/dialogs/checklist.xml +++ b/gui/dialogs/checklist.xml @@ -47,8 +47,8 @@ var item = items[i]; var t = table.getChild("text", txtcount, 1); - txtcount += 1; - + txtcount += 1; + var values = item.getChildren("value"); if (size(values) == 0) { @@ -63,7 +63,7 @@ t.getNode("halign", 1).setValue("left"); t.getNode("row", 1).setValue(row); t.getNode("col", 1).setValue(0); - t.getNode("label", 1).setValue(item.getNode("name", 1).getValue()); + t.getNode("label", 1).setValue(item.getNode("name", 1).getValue()); forindex (var v; values) { var t = table.getChild("text", txtcount, 1); @@ -81,9 +81,54 @@ } t.getNode("label", 1).setValue(values[v].getValue()); + + # If there's a complete node, it contains a condition + # that can be checked to ensure the checklist item is + # complete. We display this item in yellow while the + # condition is not met, and green once it is complete. + + var condition = item.getNode("condition"); + + if (condition != nil) { + var vis = t.getNode("visible", 1); + props.copy(condition, vis); + var c = t.getNode("color", 1); + c.getNode("red", 1).setValue(0.2); + c.getNode("green", 1).setValue(1.0); + c.getNode("blue", 1).setValue(0.2); + + # Now create an yellow version for when the condition + # is not met. + t = table.getChild("text", txtcount, 1); + txtcount += 1; + + t.getNode("halign", 1).setValue("right"); + t.getNode("row", 1).setValue(row); + if (v > 0) { + # The second row of values can overlap with the + # first column if required - helps keep the + # checklist dialog as compact as possible + t.getNode("col", 1).setValue(0); + t.getNode("colspan", 1).setValue(2); + } else { + t.getNode("col", 1).setValue(1); + } + + t.getNode("label", 1).setValue(values[v].getValue()); + + c = t.getNode("color", 1); + c.getNode("red", 1).setValue(1.0); + c.getNode("green", 1).setValue(1.0); + c.getNode("blue", 1).setValue(0.2); + + vis = t.getNode("visible", 1).getNode("not", 1); + props.copy(condition, vis); + } + row = row + 1; } } + } }