예제 #1
0
        public Altimeter()
            : base("Altimeter", new Size(364, 376))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/F-16/Altimeter/altimeter_backplate.xaml", new Rect(32d, 38d, 300d, 300d)));

            _tensDrum = new GaugeDrumCounter("{Helios}/Gauges/F-16/Altimeter/alt_drum_tape.xaml", new Point(71d, 164d), "#", new Size(10d, 15d), new Size(30d, 45d));
            _tensDrum.Clip = new RectangleGeometry(new Rect(71d, 144d, 150d, 81d));
            Components.Add(_tensDrum);

            _drum = new GaugeDrumCounter("{Helios}/Gauges/F-16/Common/drum_tape.xaml", new Point(101d, 164d), "#%00", new Size(10d, 15d), new Size(30d, 45d));
            _drum.Clip = new RectangleGeometry(new Rect(101d, 144d, 150d, 81d));
            Components.Add(_drum);

            _airPressureDrum = new GaugeDrumCounter("{Helios}/Gauges/F-16/Common/drum_tape.xaml", new Point(214d, 233d), "###%", new Size(10d, 15d), new Size(15d, 20d));
            _airPressureDrum.Value = 2992d;
            _airPressureDrum.Clip = new RectangleGeometry(new Rect(214d, 233d, 60d, 20d));
            Components.Add(_airPressureDrum);

            Components.Add(new GaugeImage("{Helios}/Gauges/F-16/Altimeter/altimeter_faceplate.xaml", new Rect(32d, 38d, 300d, 300d)));

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 1000d, 360d);
            _needle = new GaugeNeedle("{Helios}/Gauges/F-16/Altimeter/altimeter_needle.xaml", new Point(182d, 188d), new Size(16d, 257d), new Point(8d, 138.5d));
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/F-16/Common/f16_gauge_bezel.png", new Rect(0d, 0d, 364d, 376d)));

            _airPressure = new HeliosValue(this, new BindingValue(0d), "", "air pressure", "Current air pressure calibaration setting for the altimeter.", "", BindingValueUnits.InchesOfMercury);
            _airPressure.SetValue(new BindingValue(29.92), true);
            _airPressure.Execute += new HeliosActionHandler(AirPressure_Execute);
            Actions.Add(_airPressure);

            _altitdue = new HeliosValue(this, new BindingValue(0d), "", "altitude", "Current altitude of the aricraft.", "", BindingValueUnits.Feet);
            _altitdue.Execute += new HeliosActionHandler(Altitude_Execute);
            Actions.Add(_altitdue);
        }
예제 #2
0
        public RollTrim()
            : base("Trim", new Size(100, 200))
        {
            _needleCalibration = new CalibrationPointCollectionDouble(-0.5d, -90d, 0.5d, 90d);
            _needleCalibration.Add(new CalibrationPointDouble(60d, 108d));

            Components.Add(new GaugeImage("{Helios}/Gauges/F-16/Trim/rolltrim_faceplate.xaml", new Rect(0d, 0d, 100d, 200d)));

            _needle = new GaugeNeedle("{Helios}/Gauges/F-16/Trim/rolltrim_needle.xaml", new Point(93d, 100d), new Size(90d, 14d), new Point(83d, 7d));
            //_needle.Clip = new RectangleGeometry(new Rect(0d, 0d, 100d, 200d));
            Components.Add(_needle);

            _trim = new HeliosValue(this, new BindingValue(0d), "", "roll trim", "Current amount of roll trim currently set.", "(-0.5 to 0.5)", BindingValueUnits.Numeric);
            _trim.SetValue(new BindingValue(29.92), true);
            _trim.Execute += new HeliosActionHandler(Trim_Execute);
            Actions.Add(_trim);
        }
예제 #3
0
파일: Nozzle.cs 프로젝트: Heliflyer/helios
        public Nozzle()
            : base("Nozzle", new Size(360, 360))
        {
            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 100d, 280d);

            Components.Add(new GaugeImage("{Helios}/Gauges/F-16/Nozzle/nozzle_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needle = new GaugeNeedle("{Helios}/Gauges/F-16/Nozzle/nozzle_needle.xaml", new Point(180d, 180d), new Size(60d, 144d), new Point(30d, 114d), 40d);
            _needle.Rotation = _needleCalibration.Interpolate(0);
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/F-16/Common/f16_engine_bezel.png", new Rect(0d, 0d, 360d, 360d)));

            _nozzlePosition = new HeliosValue(this, new BindingValue(0d), "", "nozzle position", "Current afterburner nozzel position.", "Percent open (0-100)", BindingValueUnits.Numeric);
            _nozzlePosition.SetValue(new BindingValue(29.92), true);
            _nozzlePosition.Execute += new HeliosActionHandler(NozzlePosition_Execute);
            Actions.Add(_nozzlePosition);
        }
예제 #4
0
파일: RPM.cs 프로젝트: Heliflyer/helios
        public RPM()
            : base("RPM", new Size(360, 360))
        {
            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 110d, 337.5d);
            _needleCalibration.Add(new CalibrationPointDouble(60d, 108d));

            Components.Add(new GaugeImage("{Helios}/Gauges/F-16/RPM/rpm_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needle = new GaugeNeedle("{Helios}/Gauges/F-16/RPM/rpm_needle.xaml", new Point(180d, 180d), new Size(60d, 144d), new Point(30d, 114d));
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/F-16/Common/f16_engine_bezel.png", new Rect(0d, 0d, 360d, 360d)));

            _rpm = new HeliosValue(this, new BindingValue(0d), "", "rpm", "Current RPM of the engine.", "", BindingValueUnits.RPMPercent);
            _rpm.SetValue(new BindingValue(29.92), true);
            _rpm.Execute += new HeliosActionHandler(RPM_Execute);
            Actions.Add(_rpm);
        }
예제 #5
0
파일: FTIT.cs 프로젝트: Heliflyer/helios
        public FTIT()
            : base("FTIT", new Size(360, 360))
        {
            _needleCalibration = new CalibrationPointCollectionDouble(200d, 18d, 1200d, 342d);
            _needleCalibration.Add(new CalibrationPointDouble(700d, 108d));
            _needleCalibration.Add(new CalibrationPointDouble(1000d, 306d));

            Components.Add(new GaugeImage("{Helios}/Gauges/F-16/FTIT/ftit_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needle = new GaugeNeedle("{Helios}/Gauges/F-16/FTIT/ftit_needle.xaml", new Point(180d, 180d), new Size(60d, 144d), new Point(30d, 114d), 90d);
            _needle.Rotation = _needleCalibration.Interpolate(0);
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/F-16/Common/f16_engine_bezel.png", new Rect(0d, 0d, 360d, 360d)));

            _ftit = new HeliosValue(this, new BindingValue(0d), "", "ftit", "Current fan turbine inlet temperature of the engine.", "", BindingValueUnits.Celsius);
            _ftit.SetValue(new BindingValue(29.92), true);
            _ftit.Execute += new HeliosActionHandler(FTIT_Execute);
            Actions.Add(_ftit);
        }
예제 #6
0
 private void ManualPosition_Execute(object action, HeliosActionEventArgs e)
 {
     _manualPosition.SetValue(e.Value, e.BypassCascadingTriggers);
     _manualNeedle.Rotation = _needleCalibration.Interpolate(e.Value.DoubleValue);
 }
예제 #7
0
파일: KPP.cs 프로젝트: BlueFinBima/Helios14
 void PitchSteering_Execute(object action, HeliosActionEventArgs e)
 {
     _pitchSteeringOffet.SetValue(e.Value, e.BypassCascadingTriggers);
     _pitchSteeringBarNeedle.VerticalOffset = _pitchSteeringCalibration.Interpolate(e.Value.DoubleValue);
 }
예제 #8
0
 private void Course_Execute(object action, HeliosActionEventArgs e)
 {
     _course.SetValue(e.Value, e.BypassCascadingTriggers);
     _courseNeedle.Rotation      = e.Value.DoubleValue - 180;
     _innerBezelMarkers.Rotation = e.Value.DoubleValue - 180;
 }
예제 #9
0
 private void Heading_Execute(object action, HeliosActionEventArgs e)
 {
     _heading.SetValue(e.Value, e.BypassCascadingTriggers);
     _compassCard.Rotation = e.Value.DoubleValue;
 }
예제 #10
0
 private void GlideslopeDeviation_Execute(object action, HeliosActionEventArgs e)
 {
     _glideslopeDeviation.SetValue(e.Value, e.BypassCascadingTriggers);
     _glideslopeDeviationNeedle.VerticalOffset = _deviationScale.Interpolate(e.Value.DoubleValue) * -1;
 }
예제 #11
0
 private void SignalValue_Execte(object action, HeliosActionEventArgs e)
 {
     _signalValue.SetValue(e.Value, e.BypassCascadingTriggers);
     Board.Device.SetServoValue(Number, (int)_signalValue.Value.DoubleValue);
 }
예제 #12
0
 void Bank_Execute(object action, HeliosActionEventArgs e)
 {
     _roll.SetValue(e.Value, e.BypassCascadingTriggers);
     _ball.Rotation       = -e.Value.DoubleValue;
     _bankNeedle.Rotation = e.Value.DoubleValue;
 }
예제 #13
0
 private void Zero_Execute(object action, HeliosActionEventArgs e)
 {
     Board.Device.ZeroStepperPosition(Number);
     _value.SetValue(new BindingValue(0), e.BypassCascadingTriggers);
 }
예제 #14
0
파일: ADI.cs 프로젝트: BlueFinBima/Helios14
		void Bank_Execute(object action, HeliosActionEventArgs e)
		{
			_bank.SetValue(e.Value, e.BypassCascadingTriggers);
			_aircraftSymbolNeedle.Rotation = e.Value.DoubleValue;
		}
예제 #15
0
파일: ADI.cs 프로젝트: BlueFinBima/Helios14
		void AirspeedDeviation_Execute(object action, HeliosActionEventArgs e)
		{
			_airspeedDeviation.SetValue(e.Value, e.BypassCascadingTriggers);
			_airspeedDeviationNeedle.VerticalOffset = _deviationCalibration.Interpolate(e.Value.DoubleValue);
		}
예제 #16
0
파일: ADI.cs 프로젝트: BlueFinBima/Helios14
		void LateralDeviation_Execute(object action, HeliosActionEventArgs e)
		{
			_lateralDeviation.SetValue(e.Value, e.BypassCascadingTriggers);
			_lateralDeviationNeedle.HorizontalOffset = _deviationCalibration.Interpolate(e.Value.DoubleValue);
		}
예제 #17
0
 private void TwoEng_Execute(object action, HeliosActionEventArgs e)
 {
     _twoE.SetValue(e.Value, e.BypassCascadingTriggers);
     _twoNeedle.Rotation = _needleCalibration.Interpolate(e.Value.DoubleValue);
 }
예제 #18
0
 void Pitch_Execute(object action, HeliosActionEventArgs e)
 {
     _pitch.SetValue(e.Value, e.BypassCascadingTriggers);
     _ball.VerticalOffset = _pitchCalibration.Interpolate(e.Value.DoubleValue);
 }
예제 #19
0
 private void CurrentO2Level_Execute(object action, HeliosActionEventArgs e)
 {
     _currentO2Level.SetValue(e.Value, e.BypassCascadingTriggers);
     _currentNeedle.Rotation = _needleCalibration.Interpolate(e.Value.DoubleValue);
 }
예제 #20
0
 void PitchAdjsut_Execute(object action, HeliosActionEventArgs e)
 {
     _pitchAdjustment.SetValue(e.Value, e.BypassCascadingTriggers);
     _wings.VerticalOffset = -_pitchAdjustCalibaration.Interpolate(e.Value.DoubleValue);
 }
예제 #21
0
파일: VVI.cs 프로젝트: BlueFinBima/Helios14
 private void VerticalVelocity_Execute(object action, HeliosActionEventArgs e)
 {
     _verticalVelocity.SetValue(e.Value, e.BypassCascadingTriggers);
     _needle.Rotation = _needleCalibration.Interpolate(e.Value.DoubleValue);
 }
예제 #22
0
 void Mach_Execute(object action, HeliosActionEventArgs e)
 {
     _mach.SetValue(e.Value, e.BypassCascadingTriggers);
     _machRing.Rotation = _needle.Rotation - _machCalibration.Interpolate(_mach.Value.DoubleValue);
 }
예제 #23
0
 private void LeftRPM_Execute(object action, HeliosActionEventArgs e)
 {
     _leftRpm.SetValue(e.Value, e.BypassCascadingTriggers);
     _needle1.Rotation = _needleCalibration.Interpolate(e.Value.DoubleValue);
 }
예제 #24
0
 private void Value_Execute(object action, HeliosActionEventArgs e)
 {
     _value.SetValue(e.Value, e.BypassCascadingTriggers);
     _signalValue.SetValue(new BindingValue(_calibration.Interpolate(e.Value.DoubleValue)), e.BypassCascadingTriggers);
     Board.Device.SetServoValue(Number, (int)_signalValue.Value.DoubleValue);
 }
예제 #25
0
 void SlipBall_Execute(object action, HeliosActionEventArgs e)
 {
     _slipBall.SetValue(e.Value, e.BypassCascadingTriggers);
     _slipBallNeedle.HorizontalOffset = _slipBallCalibration.Interpolate(e.Value.DoubleValue);
 }
예제 #26
0
 private void CourseDeviation_Execute(object action, HeliosActionEventArgs e)
 {
     _courseDeviation.SetValue(e.Value, e.BypassCascadingTriggers);
     _courseDeviationNeedle.HorizontalOffset = _deviationScale.Interpolate(e.Value.DoubleValue);
 }
예제 #27
0
파일: KPP.cs 프로젝트: BlueFinBima/Helios14
 void BankSteering_Execute(object action, HeliosActionEventArgs e)
 {
     _bankSteeringOffset.SetValue(e.Value, e.BypassCascadingTriggers);
     _bankSteeringBarNeedle.Rotation = _bankSteeringCalibration.Interpolate(e.Value.DoubleValue * 3);
 }
예제 #28
0
 private void Bearing_Execute(object action, HeliosActionEventArgs e)
 {
     _bearing.SetValue(e.Value, e.BypassCascadingTriggers);
     _bearingNeedle.Rotation = e.Value.DoubleValue;
 }
예제 #29
0
 private void CoilValue_Execte(object action, HeliosActionEventArgs e)
 {
     _coilValue.SetValue(e.Value, e.BypassCascadingTriggers);
     Board.Device.SetCoilPosition(Number, (int)_coilValue.Value.DoubleValue);
 }
예제 #30
0
 private void GFlag_Execute(object action, HeliosActionEventArgs e)
 {
     _gFlag.SetValue(e.Value, e.BypassCascadingTriggers);
     _gFlagImage.IsHidden = !e.Value.BoolValue;
 }
예제 #31
0
 void OffFlag_Execute(object action, HeliosActionEventArgs e)
 {
     _warningFlag.SetValue(e.Value, e.BypassCascadingTriggers);
     _warningFlagNeedle.Rotation = e.Value.BoolValue ? 0 : 20;
 }
예제 #32
0
 void turnIndicator_Execute(object action, HeliosActionEventArgs e)
 {
     _turnIndicator.SetValue(e.Value, e.BypassCascadingTriggers);
     _TurnMarker.HorizontalOffset = _slipBallCalibration.Interpolate(e.Value.DoubleValue);
 }
예제 #33
0
 public override void ProcessNetworkData(string id, string value)
 {
     _value.SetValue(new BindingValue(value), false);
 }
예제 #34
0
        public override void ProcessNetworkData(string id, string value)
        {
            double displayvalue = Convert.ToDouble(value);

            _five_digit_display.SetValue(new BindingValue(displayvalue), false);
        }
예제 #35
0
파일: AOA.cs 프로젝트: Phar71/Helios
 void AngleOfAttack_Execute(object action, HeliosActionEventArgs e)
 {
     _angleOfAttack.SetValue(e.Value, e.BypassCascadingTriggers);
     _aoaNeedle.VerticalOffset = _tapeCalibration.Interpolate(_angleOfAttack.Value.DoubleValue);
 }