Var 8500, Link FSUIPC_IN, Offset $02C8, Length 4, Type 1 // Vertical Speed { L0 = V8500 * 0.7895 // FSUIPC conversion, L0=VS L0 = ABS L0 // L0 not signed L2 = L0 IF L0 <= 1000 // First sector { L1 = L2 * 0.086 // (86 steps/1000 values) = 0.086 } ELSE // Is a greater value { L2 = L0 - 1000 // L2 only have values for next sector IF L0 <= 2000 // Second sector { L1 = L2 * 0.05 // (50 steps / 1000 values) = 0.05 L1 = L1 + 86 // Add steps of others sectors } ELSE { L2 = L0 - 2000 // L2 only have values for next sector IF L0 <= 4000 // 3. Sector { L1 = L2 * 0.0295 // ( 59 / 2000) = 0.0295 L1 = L1 + 136 // Add steps of others sectors 50 + 86 } ELSE { L2 = L0 - 4000 // L2 only next sector (Value-1000-1000-200 IF L0 <= 6000 // 4. Sector { L1 = L2 * 0.0315 // ( 70 / 2000) =0.0315 L1 = L1 + 195 // Add steps of others sectors 59+50+86 } ELSE // Out of range { L1 = 265 // Max. position } } } } IF V8500 < 0 // If VSI is Negative { &VSI = 606 - L1 // Subctract from center } ELSE { &VSI = 606 + L1 // Else add to center } }
Var 8277, name VSI, Link USB_SERVOS, Output 4, PosL 348, PosC 606, PosR 871, Type 2 // VSI Servo
Var 9003, name IAS, Link FSUIPC_IN, Offset $02BC, Length 4 // IAS from Sim { L0 = DIV &IAS 128 L1 = L0 * 1.91 // Calculate Servo Slope L2 = L1 + 271.5 // Calculate Servo Intercept
V9000 = L2 } Var 9000, name Servo3, Link USB_SERVOS, Output 3, PosL 271, PosC 606, PosR 940, Type 2 // ASI gauge
Var 8666, Link FSUIPC_IN, Offset $126C, Length 4 // Fuel Weight { L0 = V8666 // FSUIPC Offset Variable = L0 L0 = ABS L0 // L0 not signed L2 = L0 IF L0 <= 400 // First sector { L1 = L2 * 0.91 // (364 steps/400 values) = 0.91 } ELSE // Is a greater value { L2 = L0 - 400 // L2 only have values for next sector IF L0 <= 1200 // Second sector { L1 = L2 * 0.5975 // (478 steps / 800 values) = 0.5975 L1 = L1 + 364 // Add steps of others sectors (+364) } ELSE { L2 = L0 - 1200 // L2 only have values for next sector IF L0 <= 1500 // 3. Sector { L1 = L2 * 0.47 // ( 141 / 300) = 0.47 L1 = L1 + 842 // Add steps of others sectors 364 + 478 } ELSE // Out of range { L1 = 983 // Max. position } } } &FuelGauge = 0 + L1 // Add to minimum (0) }
Var 6534, name FuelGauge, Link USB_SERVOS, Output 2, PosL 0, PosC 492, PosR 983, Type 2 // FuelGauge Servo Var 7777, Link FSUIPC_IN, Offset $3AB0, Length 8 // EGT2 { L0 = V7777 - 459.67 // FSUIPC Conversion Rankine -> Celcius L0 = L0 - 32 L0 = L0 * 5 L0 = L0 / 9 L0 = ABS L0 // L0 not signed L2 = L0 IF L0 <= 100 // First sector { L1 = L2 * 0.07 // (7 steps/100 values) = 0.07 } ELSE // Is a greater value { L2 = L0 - 100 // L2 only have values for next sector IF L0 <= 200 // Second sector { L1 = L2 * 1.37 // (137 steps / 100 values) = 1.37 L1 = L1 + 7 // Add steps of others sectors (+7) } ELSE { L2 = L0 - 200 // L2 only have values for next sector IF L0 <= 500 // 3. Sector { L1 = L2 * 1.463 // ( 439 / 300) = 1.463 L1 = L1 + 144 // Add steps of others sectors (7 + 137) } ELSE // Out of range { L2 = L0 - 500 // L2 only have values for next sector IF L0 <= 800 // 4. sector { L1 = L2 * 1.437 // (431 steps / 300 values) = 1.437 L1 = L1 + 583 // Add steps of others sectors (7 + 137 + 439) } ELSE { L1 = 1014 // Max. position } } } } &Servo1 = 0 + L1 // Add to minimum (0) }
Var 5676, name Servo1, Link USB_SERVOS, Output 1, PosL 0, PosC 507, PosR 1014, Type 2 // EGT2 Servo
Var 8785, Link FSUIPC_IN, Offset $3B70, Length 8 // EGT1 { L0 = V8785 - 459.67 // FSUIPC Conversion Rankine -> Celcius L0 = L0 - 32 L0 = L0 * 5 L0 = L0 / 9 L0 = ABS L0 // L0 not signed L2 = L0 IF L0 <= 100 // First sector { L1 = L2 * 0.10 // (10 steps/100 values) = 0.10 } ELSE // Is a greater value { L2 = L0 - 100 // L2 only have values for next sector IF L0 <= 200 // Second sector { L1 = L2 * 1.18 // (118 steps / 100 values) = 1.18 L1 = L1 + 10 // Add steps of others sectors (+10) } ELSE { L2 = L0 - 200 // L2 only have values for next sector IF L0 <= 500 // 3. Sector { L1 = L2 * 1.22 // ( 365 / 300) = 1.22 L1 = L1 + 128 // Add steps of others sectors (10 + 118) } ELSE // Out of range { L2 = L0 - 500 // L2 only have values for next sector IF L0 <= 800 // 4. sector { L1 = L2 * 1.373 // (412 steps / 300 values) = 1.373 L1 = L1 + 493 // Add steps of others sectors (10 + 118 + 365) } ELSE { L1 = 905 // Max. position } } } } &Servo5 = 0 + L1 // Add to minimum (0) }
Var 6551, name Servo5, Link USB_SERVOS, Output 5, PosL 0, PosC 453, PosR 905, Type 2 // EGT1 Servo
Var 9119, Link FSUIPC_IN, Offset $2824, Length 8 // Total Load Amps { L0 = V9119 * 10 // FSUIPC Assign Offset to Variable L0 = ABS L0 // L0 not signed L2 = L0 IF L0 <= 35 // First sector { L1 = L2 * 0.03 // (1 steps/35 values) = 0.03 } ELSE // Is a greater value { L2 = L0 - 35 // L2 only have values for next sector IF L0 <= 50 // Second sector { L1 = L2 * 3.4 // (51 steps / 15 values) = 3.4 L1 = L1 + 1 // Add steps of others sectors (+1) } ELSE { L2 = L0 - 50 // L2 only have values for next sector IF L0 <= 200 // 3. Sector { L1 = L2 * 2.53 // ( 506 / 200) = 2.53 L1 = L1 + 52 // Add steps of others sectors (1 + 51) } ELSE // Out of range { L2 = L0 - 200 // L2 only have values for next sector IF L0 <= 335 // 4. sector { L1 = L2 * 3.36 // (454 steps / 135 values) = 3.36 L1 = L1 + 558 // Add steps of others sectors (1 + 51 + 506) } ELSE { L1 = 1012 // Max. position } } } } &Servo6 = 0 + L1 // Add to minimum (0) }
Var 5370, name Servo6, Link USB_SERVOS, Output 6, PosL 0, PosC 506, PosR 1012, Type 2 // Total Load Amps Servo
|