示例#1
0
        public FuelGauge()
            : base("Fuel Gauge", new Size(360, 360))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/FuelGauge/fuel_gauge_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 6000d, 168d);

            _totalDrum       = new GaugeDrumCounter("{Helios}/Gauges/A-10/Common/drum_tape.xaml", new Point(135d, 95d), "##%00", new Size(10d, 15d), new Size(18d, 28d));
            _totalDrum.Clip  = new RectangleGeometry(new Rect(135d, 95d, 90d, 28d));
            _totalDrum.Value = 0d;
            Components.Add(_totalDrum);

            _leftNeedle = new GaugeNeedle("{Helios}/Gauges/A-10/FuelGauge/fuel_gauge_needle.xaml", new Point(180d, 180d), new Size(90d, 177d), new Point(45d, 132d), 186d);
            Components.Add(_leftNeedle);

            _rightNeedle = new GaugeNeedle("{Helios}/Gauges/A-10/FuelGauge/fuel_gauge_needle.xaml", new Point(180d, 180d), new Size(90d, 177d), new Point(45d, 132d), 174d);
            Components.Add(_rightNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/engine_bezel.png", new Rect(0d, 0d, 360d, 360d)));

            _leftQuantity          = new HeliosValue(this, new BindingValue(0d), "", "left quantity", "Quantity of fuel to display on left needle.", "(0 - 6000)", BindingValueUnits.Pounds);
            _leftQuantity.Execute += new HeliosActionHandler(LeftQuantity_Execute);
            Actions.Add(_leftQuantity);

            _rightQuantity          = new HeliosValue(this, new BindingValue(0d), "", "right quantity", "Quantity of fuel to display on right needle.", "(0 - 6000)", BindingValueUnits.Pounds);
            _rightQuantity.Execute += new HeliosActionHandler(RightQuantity_Execute);
            Actions.Add(_rightQuantity);

            _totalQuantity          = new HeliosValue(this, new BindingValue(0d), "", "total quantity", "Quantity of fuel to display on the totalizer.", "(0 - 99,999)", BindingValueUnits.Pounds);
            _totalQuantity.Execute += new HeliosActionHandler(TotalQuantity_Execute);
            Actions.Add(_totalQuantity);
        }
示例#2
0
        public O2Pressure()
            : base("O2Pressure", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0, 0d, 20d, 277d);
            _needleCalibration.Add(new CalibrationPointDouble(2d, 30d));
            _needleCalibration.Add(new CalibrationPointDouble(4d, 58d));
            _needleCalibration.Add(new CalibrationPointDouble(6d, 86d));
            _needleCalibration.Add(new CalibrationPointDouble(8d, 115d));
            _needleCalibration.Add(new CalibrationPointDouble(10d, 137.9d));
            _needleCalibration.Add(new CalibrationPointDouble(12d, 160.7d));
            _needleCalibration.Add(new CalibrationPointDouble(14d, 189d));
            _needleCalibration.Add(new CalibrationPointDouble(16d, 210.1d));
            _needleCalibration.Add(new CalibrationPointDouble(18d, 245d));

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/O2Pressure/o2_pressure_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/MiG-21/Common/small_needle.xaml", center, new Size(23, 164), new Point(11.5, 127), 222d);
            Components.Add(_currentNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentO2Pressure          = new HeliosValue(this, BindingValue.Empty, "", "Current O2 Pressure", "Current O2 Pressure", "", BindingValueUnits.Numeric);
            _currentO2Pressure.Execute += CurrentO2Pressure_Execute;
            Actions.Add(_currentO2Pressure);
        }
示例#3
0
        public EngExhaustTempGauge()
            : base("EngExhaustTempGauge", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(300d, 0d, 900d, 231d);
            _needleCalibration.Add(new CalibrationPointDouble(400d, 29d));
            _needleCalibration.Add(new CalibrationPointDouble(500d, 59));
            _needleCalibration.Add(new CalibrationPointDouble(600d, 88d));
            _needleCalibration.Add(new CalibrationPointDouble(650d, 118d));
            _needleCalibration.Add(new CalibrationPointDouble(700d, 148d));
            _needleCalibration.Add(new CalibrationPointDouble(750d, 177d));
            _needleCalibration.Add(new CalibrationPointDouble(800d, 206d));
            _needleCalibration.Add(new CalibrationPointDouble(850d, 218d));

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/EngExhaustTemp/EngExhaustTemp_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/EngExhaustTemp/EngExhaustTemp_needle.xaml", center, new Size(69d, 178d), new Point(34.5d, 126.5d), 242d);
            Components.Add(_currentNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/EngExhaustTemp/EngExhaustTemp_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentTemp = new HeliosValue(this, BindingValue.Empty, "", "Engine Exhaust", "Current Temp", "", BindingValueUnits.Numeric);
            _currentTemp.Execute += CurrentFuel_Execute;
            Actions.Add(_currentTemp);
        }
示例#4
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);
        }
示例#5
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);
        }
示例#6
0
        public EngingeRpm()
            : base("EngingeRpm", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 110d, 344.5d);
            _needleCalibration.Add(new CalibrationPointDouble(100d, 315d));

            _needleCalibration1 = new CalibrationPointCollectionDouble(0d, 0d, 110d, 344.5d);
            _needleCalibration1.Add(new CalibrationPointDouble(25d, 6d));  
            _needleCalibration1.Add(new CalibrationPointDouble(65d, 158d));  
            _needleCalibration1.Add(new CalibrationPointDouble(92d, 281d));   
            _needleCalibration1.Add(new CalibrationPointDouble(100d, 318d));

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/EngineRpm/enginerpm_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _twoNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/EngineRpm/enginerpm_needle2.xaml", center, new Size(32, 185), new Point(16, 127), 44);
            Components.Add(_twoNeedle);

            _oneNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/EngineRpm/enginerpm_needle1.xaml", center, new Size(32, 185), new Point(16, 127), 44);
            Components.Add(_oneNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/EngineRpm/enginerpm_bezel.xaml", new Rect(0, 0, 340, 340)));

            _oneE = new HeliosValue(this, BindingValue.Empty, "", "rpm1", "Engine rpm 1", "", BindingValueUnits.Numeric);
            _oneE.Execute += OneEng_Execute;
            Actions.Add(_oneE);

            _twoE = new HeliosValue(this, BindingValue.Empty, "", "rpm2", "Engine rpm 2", "", BindingValueUnits.Numeric);
            _twoE.Execute += TwoEng_Execute;
            Actions.Add(_twoE);

        }
示例#7
0
        public FuelGauge()
            : base("Fuel Gauge", new Size(360, 360))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/FuelGauge/fuel_gauge_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 6000d, 168d);

            _totalDrum = new GaugeDrumCounter("{Helios}/Gauges/A-10/Common/drum_tape.xaml", new Point(135d, 95d), "##%00", new Size(10d, 15d), new Size(18d, 28d));
            _totalDrum.Clip = new RectangleGeometry(new Rect(135d, 95d, 90d, 28d));
            _totalDrum.Value = 0d;
            Components.Add(_totalDrum);

            _leftNeedle = new GaugeNeedle("{Helios}/Gauges/A-10/FuelGauge/fuel_gauge_needle.xaml", new Point(180d, 180d), new Size(90d, 177d), new Point(45d, 132d), 186d);
            Components.Add(_leftNeedle);

            _rightNeedle = new GaugeNeedle("{Helios}/Gauges/A-10/FuelGauge/fuel_gauge_needle.xaml", new Point(180d, 180d), new Size(90d, 177d), new Point(45d, 132d), 174d);
            Components.Add(_rightNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/engine_bezel.png", new Rect(0d, 0d, 360d, 360d)));

            _leftQuantity = new HeliosValue(this, new BindingValue(0d), "", "left quantity", "Quantity of fuel to display on left needle.", "(0 - 6000)", BindingValueUnits.Pounds);
            _leftQuantity.Execute += new HeliosActionHandler(LeftQuantity_Execute);
            Actions.Add(_leftQuantity);

            _rightQuantity = new HeliosValue(this, new BindingValue(0d), "", "right quantity", "Quantity of fuel to display on right needle.", "(0 - 6000)", BindingValueUnits.Pounds);
            _rightQuantity.Execute += new HeliosActionHandler(RightQuantity_Execute);
            Actions.Add(_rightQuantity);

            _totalQuantity = new HeliosValue(this, new BindingValue(0d), "", "total quantity", "Quantity of fuel to display on the totalizer.", "(0 - 99,999)", BindingValueUnits.Pounds);
            _totalQuantity.Execute += new HeliosActionHandler(TotalQuantity_Execute);
            Actions.Add(_totalQuantity);
        }
示例#8
0
        public TAS()
            : base("TAS", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleTasCalibration = new CalibrationPointCollectionDouble(167d, 0d, 833d, 335d);
            _needleTasCalibration.Add(new CalibrationPointDouble(278d, 46d));
            _needleTasCalibration.Add(new CalibrationPointDouble(417d, 127d));
            _needleTasCalibration.Add(new CalibrationPointDouble(555d, 207d));

            _needleMCalibration = new CalibrationPointCollectionDouble(0.0d, 0d, 3.0d, 335d);
            _needleMCalibration.Add(new CalibrationPointDouble(0.6d, 0d));
            _needleMCalibration.Add(new CalibrationPointDouble(1d, 56d));
            _needleMCalibration.Add(new CalibrationPointDouble(1.8d, 167d));
            _needleTasCalibration.Add(new CalibrationPointDouble(2.0d, 223d));

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/TAS/tas_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentTasNeedle = new GaugeNeedle("{Helios}/Gauges/MiG-21/TAS/tas_needle.xaml", center, new Size(24, 135), new Point(12, 127), 11d);
            Components.Add(_currentTasNeedle);

            _currentMNeedle = new GaugeNeedle("{Helios}/Gauges/MiG-21/TAS/m_needle.xaml", center, new Size(32, 185), new Point(16, 127), 11d);
            Components.Add(_currentMNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentTAS          = new HeliosValue(this, BindingValue.Empty, "", "TAS", "Current TAS", "", BindingValueUnits.Numeric);
            _currentTAS.Execute += CurrentTas_Execute;
            Actions.Add(_currentTAS);

            _currentM          = new HeliosValue(this, BindingValue.Empty, "", "M", "Current M", "", BindingValueUnits.Numeric);
            _currentM.Execute += CurrentM_Execute;
            Actions.Add(_currentM);
        }
示例#9
0
        public RotarySwitch()
            : base("Rotary Switch", new Size(100, 100))
        {
            _swipeCalibration = new CalibrationPointCollectionDouble(-1d, 2d, 1d, 0.5d);
            _swipeCalibration.Add(new CalibrationPointDouble(0.0d, 1d));

            _labelFormat.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(LabelFormat_PropertyChanged);

            _positionValue = new HeliosValue(this, new BindingValue(1), "", "position", "Current position of the switch.", "", BindingValueUnits.Numeric);
            _positionValue.Execute += new HeliosActionHandler(SetPositionAction_Execute);
            Values.Add(_positionValue);
            Actions.Add(_positionValue);
            Triggers.Add(_positionValue);

            _positionNameValue = new HeliosValue(this, new BindingValue("0"), "", "position name", "Name of the current position of the switch.", "", BindingValueUnits.Text);
            Values.Add(_positionNameValue);
            Triggers.Add(_positionNameValue);

            _positions.CollectionChanged += new NotifyCollectionChangedEventHandler(Positions_CollectionChanged);
            _positions.PositionChanged += new EventHandler<RotarySwitchPositionChangeArgs>(PositionChanged);
            _positions.Add(new RotarySwitchPosition(this, 1, "0", 0d));
            _positions.Add(new RotarySwitchPosition(this, 2, "1", 90d));
            _currentPosition = 1;
            _defaultPosition = 1;
        }
示例#10
0
        public O2Level()
            : base("O2Level", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0, 0d, 150d, 158d);
            _needleCalibration.Add(new CalibrationPointDouble(10d, 4d));
            _needleCalibration.Add(new CalibrationPointDouble(50d, 47.8d));
            _needleCalibration.Add(new CalibrationPointDouble(100d, 103d));

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/O2Level/o2_level_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/Common/small_needle.xaml", center, new Size(23, 164), new Point(11.5, 127), 277.5d);
            Components.Add(_currentNeedle);

            _lLungImage = new GaugeImage("{Helios}/Gauges/Mig-21/O2Level/o2_level_blinker_l.xaml", new Rect(136, 194, 25, 63.9));
            Components.Add(_lLungImage);

            _rLungImage = new GaugeImage("{Helios}/Gauges/Mig-21/O2Level/o2_level_blinker_r.xaml", new Rect(180, 194, 25, 63.9));
            Components.Add(_rLungImage);

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentO2Level = new HeliosValue(this, BindingValue.Empty, "", "O2 Level", "Current O2 Level", "", BindingValueUnits.Numeric);
            _currentO2Level.Execute += CurrentO2Level_Execute;
            Actions.Add(_currentO2Level);

            _lLungFlag = new HeliosValue(this, new BindingValue(false), "", "Lung Blinkers", "White when working", "True if displayed.", BindingValueUnits.Boolean);
            _lLungFlag.Execute += LFlags_Execute;
            Actions.Add(_lLungFlag);
        }
示例#11
0
        public EngingeRpm()
            : base("EngingeRpm", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 110d, 344.5d);
            _needleCalibration.Add(new CalibrationPointDouble(100d, 315d));

            _needleCalibration1 = new CalibrationPointCollectionDouble(0d, 0d, 110d, 344.5d);
            _needleCalibration1.Add(new CalibrationPointDouble(25d, 6d));
            _needleCalibration1.Add(new CalibrationPointDouble(65d, 158d));
            _needleCalibration1.Add(new CalibrationPointDouble(92d, 281d));
            _needleCalibration1.Add(new CalibrationPointDouble(100d, 318d));

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/EngineRpm/enginerpm_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _twoNeedle = new GaugeNeedle("{Helios}/Gauges/MiG-21/EngineRpm/enginerpm_needle2.xaml", center, new Size(32, 185), new Point(16, 127), 44);
            Components.Add(_twoNeedle);

            _oneNeedle = new GaugeNeedle("{Helios}/Gauges/MiG-21/EngineRpm/enginerpm_needle1.xaml", center, new Size(32, 185), new Point(16, 127), 44);
            Components.Add(_oneNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/EngineRpm/enginerpm_bezel.xaml", new Rect(0, 0, 340, 340)));

            _oneE          = new HeliosValue(this, BindingValue.Empty, "", "rpm1", "Engine rpm 1", "", BindingValueUnits.Numeric);
            _oneE.Execute += OneEng_Execute;
            Actions.Add(_oneE);

            _twoE          = new HeliosValue(this, BindingValue.Empty, "", "rpm2", "Engine rpm 2", "", BindingValueUnits.Numeric);
            _twoE.Execute += TwoEng_Execute;
            Actions.Add(_twoE);
        }
示例#12
0
        public Nosecone()
            : base("Nosecone", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 1d, 300d);

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/Nosecone/nosecone_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/MiG-21/Common/generic_needle.xaml", center, new Size(32, 185), new Point(16, 127), 180d);
            Components.Add(_currentNeedle);

            _manualNeedle = new GaugeNeedle("{Helios}/Gauges/MiG-21/Nosecone/nosecone_outer_needle.xaml", center, new Size(32, 230), new Point(16, 132), 180d);
            Components.Add(_manualNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));


            _currentPosition          = new HeliosValue(this, BindingValue.Empty, "", "Nosecone", "Current Position", "", BindingValueUnits.Numeric);
            _currentPosition.Execute += CurrentPosition_Execute;
            Actions.Add(_currentPosition);

            _manualPosition          = new HeliosValue(this, BindingValue.Empty, "", "Nosecone Manual", "Use Manual Knob controller output", "", BindingValueUnits.Numeric);
            _manualPosition.Execute += ManualPosition_Execute;
            Actions.Add(_manualPosition);
        }
示例#13
0
        public Nosecone()
            : base("Nosecone", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 1d, 300d);

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/Nosecone/nosecone_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/Common/generic_needle.xaml", center, new Size(32, 185), new Point(16, 127), 180d);
            Components.Add(_currentNeedle);

            _manualNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/Nosecone/nosecone_outer_needle.xaml", center, new Size(32, 230), new Point(16, 132), 180d);
            Components.Add(_manualNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));


            _currentPosition = new HeliosValue(this, BindingValue.Empty, "", "Nosecone", "Current Position", "", BindingValueUnits.Numeric);
            _currentPosition.Execute += CurrentPosition_Execute;
            Actions.Add(_currentPosition);

            _manualPosition = new HeliosValue(this, BindingValue.Empty, "", "Nosecone Manual", "Use Manual Knob controller output", "", BindingValueUnits.Numeric);
            _manualPosition.Execute += ManualPosition_Execute;
            Actions.Add(_manualPosition);
        }
示例#14
0
        public RadioAltimeter()
            : base("RadioAltimeter", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0.0d, 0d, 1000d, 231d);
            _needleCalibration.Add(new CalibrationPointDouble(10d, 22.5d));
            _needleCalibration.Add(new CalibrationPointDouble(20d, 34.6d));
            _needleCalibration.Add(new CalibrationPointDouble(30d, 55.6d));
            _needleCalibration.Add(new CalibrationPointDouble(40d, 73.8d));
            _needleCalibration.Add(new CalibrationPointDouble(50d, 94.2d));
            _needleCalibration.Add(new CalibrationPointDouble(60d, 103.2d));
            _needleCalibration.Add(new CalibrationPointDouble(70d, 114.2d));
            _needleCalibration.Add(new CalibrationPointDouble(80d, 119.6d));
            _needleCalibration.Add(new CalibrationPointDouble(90d, 127d));
            _needleCalibration.Add(new CalibrationPointDouble(100d, 130.5d));
            _needleCalibration.Add(new CalibrationPointDouble(150d, 151.2d));
            _needleCalibration.Add(new CalibrationPointDouble(200d, 160.6d));
            _needleCalibration.Add(new CalibrationPointDouble(250d, 181.9d));
            _needleCalibration.Add(new CalibrationPointDouble(300d, 192.6d));
            _needleCalibration.Add(new CalibrationPointDouble(400d, 210.9d));
            _needleCalibration.Add(new CalibrationPointDouble(500d, 220.6d));
            _needleCalibration.Add(new CalibrationPointDouble(600d, 231d));

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/RadioAltimeter/radalt_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/RadioAltimeter/radalt_needle.xaml", center, new Size(69d, 178d), new Point(34.5d, 126.5d), -120d);
            Components.Add(_currentNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentRadAlt = new HeliosValue(this, BindingValue.Empty, "", "Current RadAlt", "Current RadAlt", "", BindingValueUnits.Numeric);
            _currentRadAlt.Execute += CurrentRadAlt_Execute;
            Actions.Add(_currentRadAlt);
        }
示例#15
0
        public Airspeed()
            : base("Airspeed", new Size(364, 376))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/F-16/Airspeed/asi_faceplate.xaml", new Rect(32d, 38d, 300d, 300d)));

            _machCalibration = new CalibrationPointCollectionDouble(0d, 0d, 1.9d, 270d);
            _machCalibration.Add(new CalibrationPointDouble(0.5d, 60d));

            _machRing = new GaugeNeedle("{Helios}/Gauges/F-16/Airspeed/asi_inner_faceplate.xaml", new Point(182d, 188d), new Size(188d, 188d), new Point(94d, 94d), -90d);
            Components.Add(_machRing);

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 850d, 350d);
            _needleCalibration.Add(new CalibrationPointDouble(200d, 135d));
            _needleCalibration.Add(new CalibrationPointDouble(300d, 195d));
            _needleCalibration.Add(new CalibrationPointDouble(400d, 235d));
            _needleCalibration.Add(new CalibrationPointDouble(500d, 267d));

            _needle = new GaugeNeedle("{Helios}/Gauges/F-16/Airspeed/asi_needle.xaml", new Point(182d, 188d), new Size(300d, 300d), new Point(150d, 150d), -90d);
            Components.Add(_needle);

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

            _airspeed = new HeliosValue(this, new BindingValue(0d), "", "indicated air speed", "Current airspeed of the aricraft.", "", BindingValueUnits.Knots);
            _airspeed.Execute += new HeliosActionHandler(Airspeed_Execute);
            Actions.Add(_airspeed);

            _mach = new HeliosValue(this, new BindingValue(0d), "", "mach", "Current airspeed of the aricraft.", "", BindingValueUnits.Numeric);
            _mach.Execute += new HeliosActionHandler(Mach_Execute);
            Actions.Add(_mach);
        }
示例#16
0
        public Accelerometer()
            : base("Accelerometer", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(-2d, -100d, 4d, 200d);

            Components.Add(new GaugeImage("{Helios}/Gauges/KA-50/Accelerometer/accelerometer_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _lowNeedle = new GaugeNeedle("{Helios}/Gauges/KA-50/Accelerometer/accelerometer_limit_needle.xaml", center, new Size(32, 189), new Point(16, 131));
            Components.Add(_lowNeedle);

            _highNeedle = new GaugeNeedle("{Helios}/Gauges/KA-50/Accelerometer/accelerometer_limit_needle.xaml", center, new Size(32, 189), new Point(16, 131));
            Components.Add(_highNeedle);

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/KA-50/Accelerometer/accelerometer_needle.xaml", center, new Size(32, 185), new Point(16, 127));
            Components.Add(_currentNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/KA-50/Accelerometer/accelerometer_bezel.xaml", new Rect(0, 0, 340, 340)));

            _lowG = new HeliosValue(this, BindingValue.Empty, "", "Low G", "Lowest G attained", "", BindingValueUnits.Numeric);
            _lowG.Execute += LowG_Execute;
            Actions.Add(_lowG);

            _highG = new HeliosValue(this, BindingValue.Empty, "", "High G", "Highest G attained", "", BindingValueUnits.Numeric);
            _highG.Execute += HighG_Execute;
            Actions.Add(_highG);

            _currentG = new HeliosValue(this, BindingValue.Empty, "", "Current G", "Current G", "", BindingValueUnits.Numeric);
            _currentG.Execute += CurrentG_Execute;
            Actions.Add(_currentG);
        }
示例#17
0
        public IAS()
            : base("IAS", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 555.55d, 720d);
            _needleCalibration.Add(new CalibrationPointDouble(83.33d, 108d));
            _needleCalibration.Add(new CalibrationPointDouble(166.67d, 216d));
            _needleCalibration.Add(new CalibrationPointDouble(250d, 324d));
            _needleCalibration.Add(new CalibrationPointDouble(333.34d, 432d));
            _needleCalibration.Add(new CalibrationPointDouble(416.67d, 540d));

            _backCalibration = new CalibrationPointCollectionDouble(0d, 0d, 555.55d, 90d);
            _backCalibration.Add(new CalibrationPointDouble(277, 90d));
            _backCalibration.Add(new CalibrationPointDouble(270, 0d));
            _currentBack = new GaugeNeedle("{Helios}/Gauges/MiG-21/IAS/ias_back.xaml", center, new Size(340, 340), center, -90);
            Components.Add(_currentBack);

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/IAS/ias_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/MiG-21/Common/generic_needle.xaml", center, new Size(32, 185), new Point(16, 127));
            Components.Add(_currentNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentIas          = new HeliosValue(this, BindingValue.Empty, "", "IAS", "Current IAS", "", BindingValueUnits.Numeric);
            _currentIas.Execute += CurrentIas_Execute;
            _currentIas.Execute += CurrentBack_Execute;
            Actions.Add(_currentIas);
        }
示例#18
0
        public Airspeed()
            : base("Airspeed", new Size(364, 376))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/F-16/Airspeed/asi_faceplate.xaml", new Rect(32d, 38d, 300d, 300d)));

            _machCalibration = new CalibrationPointCollectionDouble(0d, 0d, 1.9d, 270d);
            _machCalibration.Add(new CalibrationPointDouble(0.5d, 60d));

            _machRing = new GaugeNeedle("{Helios}/Gauges/F-16/Airspeed/asi_inner_faceplate.xaml", new Point(182d, 188d), new Size(188d, 188d), new Point(94d, 94d), -90d);
            Components.Add(_machRing);

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 850d, 350d);
            _needleCalibration.Add(new CalibrationPointDouble(200d, 135d));
            _needleCalibration.Add(new CalibrationPointDouble(300d, 195d));
            _needleCalibration.Add(new CalibrationPointDouble(400d, 235d));
            _needleCalibration.Add(new CalibrationPointDouble(500d, 267d));

            _needle = new GaugeNeedle("{Helios}/Gauges/F-16/Airspeed/asi_needle.xaml", new Point(182d, 188d), new Size(300d, 300d), new Point(150d, 150d), -90d);
            Components.Add(_needle);

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

            _airspeed          = new HeliosValue(this, new BindingValue(0d), "", "indicated air speed", "Current airspeed of the aricraft.", "", BindingValueUnits.Knots);
            _airspeed.Execute += new HeliosActionHandler(Airspeed_Execute);
            Actions.Add(_airspeed);

            _mach          = new HeliosValue(this, new BindingValue(0d), "", "mach", "Current airspeed of the aricraft.", "", BindingValueUnits.Numeric);
            _mach.Execute += new HeliosActionHandler(Mach_Execute);
            Actions.Add(_mach);
        }
示例#19
0
        public BatteryCapacity()
            : base("BatteryCapacity", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 100d, 300d);
            _needleCalibration.Add(new CalibrationPointDouble(10d, 36d));
            _needleCalibration.Add(new CalibrationPointDouble(20d, 66d));
            _needleCalibration.Add(new CalibrationPointDouble(30d, 96d));
            _needleCalibration.Add(new CalibrationPointDouble(40d, 126d));
            _needleCalibration.Add(new CalibrationPointDouble(50d, 156d));
            _needleCalibration.Add(new CalibrationPointDouble(60d, 186d));
            _needleCalibration.Add(new CalibrationPointDouble(70d, 216d));
            _needleCalibration.Add(new CalibrationPointDouble(80d, 246d));
            _needleCalibration.Add(new CalibrationPointDouble(90d, 276d));

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/BatteryCapacity/battery_capacity_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/MiG-21/Common/generic_small_gray_needle.xaml", center, new Size(32, 185), new Point(16, 127), 210d);
            Components.Add(_currentNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentBatteryCapacity          = new HeliosValue(this, BindingValue.Empty, "", "Current Battery Capacity", "Current Battery Capacity", "", BindingValueUnits.Numeric);
            _currentBatteryCapacity.Execute += CurrentBatteryCapacity_Execute;
            Actions.Add(_currentBatteryCapacity);
        }
示例#20
0
        public O2Pressure()
            : base("O2Pressure", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0, 0d, 20d, 277d);
            _needleCalibration.Add(new CalibrationPointDouble(2d, 30d));
            _needleCalibration.Add(new CalibrationPointDouble(4d, 58d));
            _needleCalibration.Add(new CalibrationPointDouble(6d, 86d));
            _needleCalibration.Add(new CalibrationPointDouble(8d, 115d));
            _needleCalibration.Add(new CalibrationPointDouble(10d, 137.9d));
            _needleCalibration.Add(new CalibrationPointDouble(12d, 160.7d));
            _needleCalibration.Add(new CalibrationPointDouble(14d, 189d));
            _needleCalibration.Add(new CalibrationPointDouble(16d, 210.1d));
            _needleCalibration.Add(new CalibrationPointDouble(18d, 245d));

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/O2Pressure/o2_pressure_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/Common/small_needle.xaml", center, new Size(23, 164), new Point(11.5, 127), 222d);
            Components.Add(_currentNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentO2Pressure = new HeliosValue(this, BindingValue.Empty, "", "Current O2 Pressure", "Current O2 Pressure", "", BindingValueUnits.Numeric);
            _currentO2Pressure.Execute += CurrentO2Pressure_Execute;
            Actions.Add(_currentO2Pressure);
        }
示例#21
0
        public BAltimeter()
            : base("Barometric Altimeter", new Size(376, 376))
        {
            _tensDrum      = new GaugeDrumCounter("{Helios}/Gauges/FA-18C/Altimeter/alt_drum_tape.xaml", new Point(73d, 129d), "#", new Size(10d, 15d), new Size(31d, 38d));
            _tensDrum.Clip = new RectangleGeometry(new Rect(71d, 144d, 31d, 38d));
            Components.Add(_tensDrum);

            _drum      = new GaugeDrumCounter("{Helios}/Gauges/FA-18C/Common/drum_tape.xaml", new Point(123d, 128d), "#%00", new Size(10d, 15d), new Size(31d, 38d));
            _drum.Clip = new RectangleGeometry(new Rect(123d, 130d, 31d, 38d));
            Components.Add(_drum);

            _airPressureDrum       = new GaugeDrumCounter("{Helios}/Gauges/FA-18C/Common/drum_tape.xaml", new Point(135d, 276d), "###%", new Size(10d, 15d), new Size(24d, 32d));
            _airPressureDrum.Value = 2992d;
            _airPressureDrum.Clip  = new RectangleGeometry(new Rect(135d, 276d, 96d, 32d));
            Components.Add(_airPressureDrum);

            Components.Add(new GaugeImage("{Helios}/Gauges/FA-18C/Altimeter/Altimeter_Faceplate.png", new Rect(0d, 0d, 376d, 376d)));

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

            //Components.Add(new GaugeImage("{Helios}/Gauges/FA-18C/Common/engine_bezel.png", new Rect(0d, 0d, 376d, 376d)));
            _altitude          = new HeliosValue(this, new BindingValue(0d), "", "altitude", "Current altitude of the aircraft in feet.", "", BindingValueUnits.Feet);
            _altitude.Execute += new HeliosActionHandler(Altitude_Execute);
            Actions.Add(_altitude);

            _airPressure = new HeliosValue(this, new BindingValue(0d), "", "air pressure", "Current air pressure calibaration setting for the altimeter.", "", BindingValueUnits.InchesOfMercury);
            _airPressure.SetValue(new BindingValue(29.92d), true);
            _airPressure.Execute += new HeliosActionHandler(AirPressure_Execute);
            Actions.Add(_airPressure);
        }
示例#22
0
        public Tachometer()
            : base("Tachometer", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 110d, 346.5d);

            Components.Add(new GaugeImage("{Helios}/Gauges/KA-50/Tachometer/tachometer_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _needle2 = new GaugeNeedle("{Helios}/Gauges/KA-50/Tachometer/tachometer_needle_2.xaml", center, new Size(25, 152), new Point(12.5, 139.5), 45d);
            Components.Add(_needle2);

            _needle1 = new GaugeNeedle("{Helios}/Gauges/KA-50/Tachometer/tachometer_needle_1.xaml", center, new Size(25, 152), new Point(12.5, 139.5), 45d);
            Components.Add(_needle1);

            Components.Add(new GaugeImage("{Helios}/Gauges/KA-50/Tachometer/tachometer_bezel.xaml", new Rect(0, 0, 340, 340)));

            _rightRpm          = new HeliosValue(this, BindingValue.Empty, "", "Right Engine RPM", "Current RPM of the rotor blades", "", BindingValueUnits.RPMPercent);
            _rightRpm.Execute += RightRPM_Execute;
            Actions.Add(_rightRpm);

            _leftRpm          = new HeliosValue(this, BindingValue.Empty, "", "Left Engine RPM", "Current RPM of the rotor blades", "", BindingValueUnits.RPMPercent);
            _leftRpm.Execute += LeftRPM_Execute;
            Actions.Add(_leftRpm);
        }
示例#23
0
文件: IAS.cs 项目: oskargargas/helios
        public IAS()
            : base("IAS", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 555.55d, 720d);
            _needleCalibration.Add(new CalibrationPointDouble(83.33d, 108d));
            _needleCalibration.Add(new CalibrationPointDouble(166.67d, 216d));
            _needleCalibration.Add(new CalibrationPointDouble(250d, 324d));
            _needleCalibration.Add(new CalibrationPointDouble(333.34d, 432d));
            _needleCalibration.Add(new CalibrationPointDouble(416.67d, 540d));

            _backCalibration = new CalibrationPointCollectionDouble(0d, 0d, 555.55d, 90d);
            _backCalibration.Add(new CalibrationPointDouble(277, 90d));
            _backCalibration.Add(new CalibrationPointDouble(270, 0d));
            _currentBack = new GaugeNeedle("{Helios}/Gauges/Mig-21/IAS/ias_back.xaml", center, new Size(340, 340), center, -90);
            Components.Add(_currentBack);

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/IAS/ias_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/Common/generic_needle.xaml", center, new Size(32, 185), new Point(16, 127));
            Components.Add(_currentNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentIas = new HeliosValue(this, BindingValue.Empty, "", "IAS", "Current IAS", "", BindingValueUnits.Numeric);
            _currentIas.Execute += CurrentIas_Execute;
            _currentIas.Execute += CurrentBack_Execute;
            Actions.Add(_currentIas);

        }
示例#24
0
        public VVI1()
            : base("Flight Instruments", new Size(364, 376))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/VVI/vvi_faceplate.xaml", new Rect(32d, 38d, 300d, 300d)));

            _needle = new GaugeNeedle("{Helios}/Gauges/A-10/Common/needle_a.xaml", new Point(182d, 188d), new Size(22, 165), new Point(11, 130), -90d);
            Components.Add(_needle);

            //Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/gauge_bezel.png", new Rect(0d, 0d, 364d, 376d)));
            //Components.Add(new GaugeImage("{AV-8B}/Images/WQHD/Panel/crystal_reflection_round.png", new Rect(32d, 38d, 300d, 300d)));
            GaugeImage _gauge = new GaugeImage("{AV-8B}/Images/WQHD/Panel/crystal_reflection_round.png", new Rect(32d, 38d, 300d, 300d));

            _gauge.Opacity = 0.4;
            Components.Add(_gauge);

            _verticalVelocity          = new HeliosValue(this, new BindingValue(0d), "Flight Instruments", "vertical velocity", "Veritcal velocity of the aircraft", "(-6,000 to 6,000)", BindingValueUnits.FeetPerMinute);
            _verticalVelocity.Execute += new HeliosActionHandler(VerticalVelocity_Execute);
            Actions.Add(_verticalVelocity);

            _calibrationPoints = new CalibrationPointCollectionDouble(-6000d, -169d, 6000d, 169d);
            _calibrationPoints.Add(new CalibrationPointDouble(-2000d, -81d));
            _calibrationPoints.Add(new CalibrationPointDouble(-1000d, -45d));
            _calibrationPoints.Add(new CalibrationPointDouble(0d, 0d));
            _calibrationPoints.Add(new CalibrationPointDouble(1000d, 45d));
            _calibrationPoints.Add(new CalibrationPointDouble(2000d, 81d));
        }
示例#25
0
        public RadioAltimeter()
            : base("RadioAltimeter", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0.0d, 0d, 1000d, 231d);
            _needleCalibration.Add(new CalibrationPointDouble(10d, 22.5d));
            _needleCalibration.Add(new CalibrationPointDouble(20d, 34.6d));
            _needleCalibration.Add(new CalibrationPointDouble(30d, 55.6d));
            _needleCalibration.Add(new CalibrationPointDouble(40d, 73.8d));
            _needleCalibration.Add(new CalibrationPointDouble(50d, 94.2d));
            _needleCalibration.Add(new CalibrationPointDouble(60d, 103.2d));
            _needleCalibration.Add(new CalibrationPointDouble(70d, 114.2d));
            _needleCalibration.Add(new CalibrationPointDouble(80d, 119.6d));
            _needleCalibration.Add(new CalibrationPointDouble(90d, 127d));
            _needleCalibration.Add(new CalibrationPointDouble(100d, 130.5d));
            _needleCalibration.Add(new CalibrationPointDouble(150d, 151.2d));
            _needleCalibration.Add(new CalibrationPointDouble(200d, 160.6d));
            _needleCalibration.Add(new CalibrationPointDouble(250d, 181.9d));
            _needleCalibration.Add(new CalibrationPointDouble(300d, 192.6d));
            _needleCalibration.Add(new CalibrationPointDouble(400d, 210.9d));
            _needleCalibration.Add(new CalibrationPointDouble(500d, 220.6d));
            _needleCalibration.Add(new CalibrationPointDouble(600d, 231d));

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/RadioAltimeter/radalt_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/MiG-21/RadioAltimeter/radalt_needle.xaml", center, new Size(69d, 178d), new Point(34.5d, 126.5d), -120d);
            Components.Add(_currentNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentRadAlt          = new HeliosValue(this, BindingValue.Empty, "", "Current RadAlt", "Current RadAlt", "", BindingValueUnits.Numeric);
            _currentRadAlt.Execute += CurrentRadAlt_Execute;
            Actions.Add(_currentRadAlt);
        }
示例#26
0
        public Tachometer()
            : base("Tachometer", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 110d, 346.5d);

            Components.Add(new GaugeImage("{Helios}/Gauges/KA-50/Tachometer/tachometer_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _needle2 = new GaugeNeedle("{Helios}/Gauges/KA-50/Tachometer/tachometer_needle_2.xaml", center, new Size(25, 152), new Point(12.5, 139.5), 45d);
            Components.Add(_needle2);

            _needle1 = new GaugeNeedle("{Helios}/Gauges/KA-50/Tachometer/tachometer_needle_1.xaml", center, new Size(25, 152), new Point(12.5, 139.5), 45d);
            Components.Add(_needle1);

            Components.Add(new GaugeImage("{Helios}/Gauges/KA-50/Tachometer/tachometer_bezel.xaml", new Rect(0, 0, 340, 340)));

            _rightRpm = new HeliosValue(this, BindingValue.Empty, "", "Right Engine RPM", "Current RPM of the rotor blades", "", BindingValueUnits.RPMPercent);
            _rightRpm.Execute += RightRPM_Execute;
            Actions.Add(_rightRpm);

            _leftRpm = new HeliosValue(this, BindingValue.Empty, "", "Left Engine RPM", "Current RPM of the rotor blades", "", BindingValueUnits.RPMPercent);
            _leftRpm.Execute += LeftRPM_Execute;
            Actions.Add(_leftRpm);


        }
示例#27
0
        public RotarySwitch()
            : base("Rotary Switch", new Size(100, 100))
        {
            _swipeCalibration = new CalibrationPointCollectionDouble(-1d, 2d, 1d, 0.5d);
            _swipeCalibration.Add(new CalibrationPointDouble(0.0d, 1d));

            _labelFormat.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(LabelFormat_PropertyChanged);

            _positionValue          = new HeliosValue(this, new BindingValue(1), "", "position", "Current position of the switch.", "", BindingValueUnits.Numeric);
            _positionValue.Execute += new HeliosActionHandler(SetPositionAction_Execute);
            Values.Add(_positionValue);
            Actions.Add(_positionValue);
            Triggers.Add(_positionValue);

            _positionNameValue = new HeliosValue(this, new BindingValue("0"), "", "position name", "Name of the current position of the switch.", "", BindingValueUnits.Text);
            Values.Add(_positionNameValue);
            Triggers.Add(_positionNameValue);

            _positions.CollectionChanged += new NotifyCollectionChangedEventHandler(Positions_CollectionChanged);
            _positions.PositionChanged   += new EventHandler <RotarySwitchPositionChangeArgs>(PositionChanged);
            _positions.Add(new RotarySwitchPosition(this, 1, "0", 0d));
            _positions.Add(new RotarySwitchPosition(this, 2, "1", 90d));
            _currentPosition = 1;
            _defaultPosition = 1;
        }
示例#28
0
        public HydroPressure()
            : base("HydroPressure", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration1 = new CalibrationPointCollectionDouble(0d, 0d, 300d, 131d);

            _needleCalibration2 = new CalibrationPointCollectionDouble(0d, 0d, 300d, -131);

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/HydroPressure/hydropressure_faceplate.xaml", new Rect(15, 15, 310, 310)));

            Point mainneedle   = new Point(266, 266);
            Point secondneedle = new Point(71, 73);

            _oneNeedle = new GaugeNeedle("{Helios}/Gauges/MiG-21/HydroPressure/hydropressure_needle.xaml", mainneedle, new Size(20, 130), new Point(10, 120), 248);
            Components.Add(_oneNeedle);

            _twoNeedle = new GaugeNeedle("{Helios}/Gauges/MiG-21/HydroPressure/hydropressure_needle.xaml", secondneedle, new Size(20, 130), new Point(10, 120), 201);
            Components.Add(_twoNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/HydroPressure/hydropressure_needle_cover.xaml", new Rect(235, 235, 70, 70)));
            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/HydroPressure/hydropressure_needle_cover_second.xaml", new Rect(35, 35, 70, 70)));

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _oneE          = new HeliosValue(this, BindingValue.Empty, "", "Pressure Main", "Pressure Main", "", BindingValueUnits.Numeric);
            _oneE.Execute += OneEng_Execute;
            Actions.Add(_oneE);

            _twoE          = new HeliosValue(this, BindingValue.Empty, "", "Pressure Secondary", "Pressure Secondary", "", BindingValueUnits.Numeric);
            _twoE.Execute += TwoEng_Execute;
            Actions.Add(_twoE);
        }
示例#29
0
        public Accelerometer()
            : base("Accelerometer", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(-2d, -100d, 4d, 200d);

            Components.Add(new GaugeImage("{Helios}/Gauges/KA-50/Accelerometer/accelerometer_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _lowNeedle = new GaugeNeedle("{Helios}/Gauges/KA-50/Accelerometer/accelerometer_limit_needle.xaml", center, new Size(32, 189), new Point(16, 131));
            Components.Add(_lowNeedle);

            _highNeedle = new GaugeNeedle("{Helios}/Gauges/KA-50/Accelerometer/accelerometer_limit_needle.xaml", center, new Size(32, 189), new Point(16, 131));
            Components.Add(_highNeedle);

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/KA-50/Accelerometer/accelerometer_needle.xaml", center, new Size(32, 185), new Point(16, 127));
            Components.Add(_currentNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/KA-50/Accelerometer/accelerometer_bezel.xaml", new Rect(0, 0, 340, 340)));

            _lowG          = new HeliosValue(this, BindingValue.Empty, "", "Low G", "Lowest G attained", "", BindingValueUnits.Numeric);
            _lowG.Execute += LowG_Execute;
            Actions.Add(_lowG);

            _highG          = new HeliosValue(this, BindingValue.Empty, "", "High G", "Highest G attained", "", BindingValueUnits.Numeric);
            _highG.Execute += HighG_Execute;
            Actions.Add(_highG);

            _currentG          = new HeliosValue(this, BindingValue.Empty, "", "Current G", "Current G", "", BindingValueUnits.Numeric);
            _currentG.Execute += CurrentG_Execute;
            Actions.Add(_currentG);
        }
示例#30
0
        public VVI()
            : base("VVI", new Size(182, 188))
        {
            //Components.Add(new GaugeImage("{Helios}/Gauges/AV-8B/VVI/vvi_faceplate.xaml", new Rect(32d, 38d, 300d, 300d)));
            _needle = new GaugeNeedle("{Helios}/Gauges/AV-8B/Common/needle_a.xaml", new Point(91d, 94d), new Size(11, 82), new Point(5, 65), -90d);
            Components.Add(_needle);

            //Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/gauge_bezel.png", new Rect(0d, 0d, 364d, 376d)));

            _verticalVelocity          = new HeliosValue(this, new BindingValue(0d), "", "vertical velocity", "Veritcal velocity of the aircraft", "(-6,000 to 6,000)", BindingValueUnits.FeetPerMinute);
            _verticalVelocity.Execute += new HeliosActionHandler(VerticalVelocity_Execute);
            Actions.Add(_verticalVelocity);

            _calibrationPoints = new CalibrationPointCollectionDouble(-6000d, -167d, 6000d, 167d);
            _calibrationPoints.Add(new CalibrationPointDouble(-5000d, -153d));
            _calibrationPoints.Add(new CalibrationPointDouble(-4000d, -135d));
            _calibrationPoints.Add(new CalibrationPointDouble(-2000d, -90d));
            _calibrationPoints.Add(new CalibrationPointDouble(-1000d, -57d));
            _calibrationPoints.Add(new CalibrationPointDouble(-500d, -35d));
            _calibrationPoints.Add(new CalibrationPointDouble(0d, 0d));
            _calibrationPoints.Add(new CalibrationPointDouble(500d, 35d));
            _calibrationPoints.Add(new CalibrationPointDouble(1000d, 57d));
            _calibrationPoints.Add(new CalibrationPointDouble(2000d, 90d));
            _calibrationPoints.Add(new CalibrationPointDouble(4000d, 135d));
            _calibrationPoints.Add(new CalibrationPointDouble(5000d, 153d));
        }
示例#31
0
        public BatteryCapacity()
            : base("BatteryCapacity", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 100d, 300d);
            _needleCalibration.Add(new CalibrationPointDouble(10d, 36d));
            _needleCalibration.Add(new CalibrationPointDouble(20d, 66d));
            _needleCalibration.Add(new CalibrationPointDouble(30d, 96d));
            _needleCalibration.Add(new CalibrationPointDouble(40d, 126d));
            _needleCalibration.Add(new CalibrationPointDouble(50d, 156d));
            _needleCalibration.Add(new CalibrationPointDouble(60d, 186d));
            _needleCalibration.Add(new CalibrationPointDouble(70d, 216d));
            _needleCalibration.Add(new CalibrationPointDouble(80d, 246d));
            _needleCalibration.Add(new CalibrationPointDouble(90d, 276d));

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/BatteryCapacity/battery_capacity_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/Common/generic_small_gray_needle.xaml", center, new Size(32, 185), new Point(16, 127), 210d);
            Components.Add(_currentNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentBatteryCapacity = new HeliosValue(this, BindingValue.Empty, "", "Current Battery Capacity", "Current Battery Capacity", "", BindingValueUnits.Numeric);
            _currentBatteryCapacity.Execute += CurrentBatteryCapacity_Execute;
            Actions.Add(_currentBatteryCapacity);
        }
示例#32
0
文件: TAS.cs 项目: oskargargas/helios
        public TAS()
            : base("TAS", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleTasCalibration = new CalibrationPointCollectionDouble(167d, 0d, 833d, 335d);
            _needleTasCalibration.Add(new CalibrationPointDouble(278d, 46d));  
            _needleTasCalibration.Add(new CalibrationPointDouble(417d, 127d)); 
            _needleTasCalibration.Add(new CalibrationPointDouble(555d, 207d));

            _needleMCalibration = new CalibrationPointCollectionDouble(0.0d, 0d, 3.0d, 335d);
            _needleMCalibration.Add(new CalibrationPointDouble(0.6d, 0d));
            _needleMCalibration.Add(new CalibrationPointDouble(1d, 56d));
            _needleMCalibration.Add(new CalibrationPointDouble(1.8d, 167d));
            _needleTasCalibration.Add(new CalibrationPointDouble(2.0d, 223d));

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/TAS/tas_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentTasNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/TAS/tas_needle.xaml", center, new Size(24, 135), new Point(12, 127), 11d);
            Components.Add(_currentTasNeedle);

            _currentMNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/TAS/m_needle.xaml", center, new Size(32, 185), new Point(16, 127), 11d);
            Components.Add(_currentMNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentTAS = new HeliosValue(this, BindingValue.Empty, "", "TAS", "Current TAS", "", BindingValueUnits.Numeric);
            _currentTAS.Execute += CurrentTas_Execute;
            Actions.Add(_currentTAS);

            _currentM = new HeliosValue(this, BindingValue.Empty, "", "M", "Current M", "", BindingValueUnits.Numeric);
            _currentM.Execute += CurrentM_Execute;
            Actions.Add(_currentM);
        }
示例#33
0
        public O2Level()
            : base("O2Level", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0, 0d, 150d, 158d);
            _needleCalibration.Add(new CalibrationPointDouble(10d, 4d));
            _needleCalibration.Add(new CalibrationPointDouble(50d, 47.8d));
            _needleCalibration.Add(new CalibrationPointDouble(100d, 103d));

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/O2Level/o2_level_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/MiG-21/Common/small_needle.xaml", center, new Size(23, 164), new Point(11.5, 127), 277.5d);
            Components.Add(_currentNeedle);

            _lLungImage = new GaugeImage("{Helios}/Gauges/MiG-21/O2Level/o2_level_blinker_l.xaml", new Rect(136, 194, 25, 63.9));
            Components.Add(_lLungImage);

            _rLungImage = new GaugeImage("{Helios}/Gauges/MiG-21/O2Level/o2_level_blinker_r.xaml", new Rect(180, 194, 25, 63.9));
            Components.Add(_rLungImage);

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentO2Level          = new HeliosValue(this, BindingValue.Empty, "", "O2 Level", "Current O2 Level", "", BindingValueUnits.Numeric);
            _currentO2Level.Execute += CurrentO2Level_Execute;
            Actions.Add(_currentO2Level);

            _lLungFlag          = new HeliosValue(this, new BindingValue(false), "", "Lung Blinkers", "White when working", "True if displayed.", BindingValueUnits.Boolean);
            _lLungFlag.Execute += LFlags_Execute;
            Actions.Add(_lLungFlag);
        }
示例#34
0
        public HydroPressure()
            : base("HydroPressure", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration1 = new CalibrationPointCollectionDouble(0d, 0d, 300d, 131d);

            _needleCalibration2 = new CalibrationPointCollectionDouble(0d, 0d, 300d, -131);

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/HydroPressure/hydropressure_faceplate.xaml", new Rect(15, 15, 310, 310)));

            Point mainneedle = new Point(266, 266);
            Point secondneedle = new Point(71, 73);

            _oneNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/HydroPressure/hydropressure_needle.xaml", mainneedle, new Size(20, 130), new Point(10, 120), 248);
            Components.Add(_oneNeedle);

            _twoNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/HydroPressure/hydropressure_needle.xaml", secondneedle, new Size(20, 130), new Point(10, 120), 201);
            Components.Add(_twoNeedle);
 
            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/HydroPressure/hydropressure_needle_cover.xaml", new Rect(235, 235, 70, 70)));
            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/HydroPressure/hydropressure_needle_cover_second.xaml", new Rect(35, 35, 70, 70)));

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _oneE = new HeliosValue(this, BindingValue.Empty, "", "Pressure Main", "Pressure Main", "", BindingValueUnits.Numeric);
            _oneE.Execute += OneEng_Execute;
            Actions.Add(_oneE);

            _twoE = new HeliosValue(this, BindingValue.Empty, "", "Pressure Secondary", "Pressure Secondary", "", BindingValueUnits.Numeric);
            _twoE.Execute += TwoEng_Execute;
            Actions.Add(_twoE);
        }
示例#35
0
        public EngExhaustTempGauge()
            : base("EngExhaustTempGauge", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(300d, 0d, 900d, 231d);
            _needleCalibration.Add(new CalibrationPointDouble(400d, 29d));
            _needleCalibration.Add(new CalibrationPointDouble(500d, 59));
            _needleCalibration.Add(new CalibrationPointDouble(600d, 88d));
            _needleCalibration.Add(new CalibrationPointDouble(650d, 118d));
            _needleCalibration.Add(new CalibrationPointDouble(700d, 148d));
            _needleCalibration.Add(new CalibrationPointDouble(750d, 177d));
            _needleCalibration.Add(new CalibrationPointDouble(800d, 206d));
            _needleCalibration.Add(new CalibrationPointDouble(850d, 218d));

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/EngExhaustTemp/EngExhaustTemp_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/MiG-21/EngExhaustTemp/EngExhaustTemp_needle.xaml", center, new Size(69d, 178d), new Point(34.5d, 126.5d), 242d);
            Components.Add(_currentNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/MiG-21/EngExhaustTemp/EngExhaustTemp_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentTemp          = new HeliosValue(this, BindingValue.Empty, "", "Engine Exhaust", "Current Temp", "", BindingValueUnits.Numeric);
            _currentTemp.Execute += CurrentFuel_Execute;
            Actions.Add(_currentTemp);
        }
示例#36
0
        public SlipTurn()
            : base("SlipTurn", new Size(225, 114))
        {
            Point center = new Point(112d, 57d);

            Components.Add(new GaugeImage("{Helios}/Gauges/AV-8B/ADI/adi_slip_bezel.png", new Rect(0d, 0d, 225d, 114d)));

            _slipBallCalibration = new CalibrationPointCollectionDouble(-1d, -50d, 1d, 50d);
            _slipBallNeedle      = new GaugeNeedle("{Helios}/Gauges/AV-8B/ADI/adi_slip_ball.xaml", new Point(112d, 75d), new Size(24d, 24d), new Point(12d, 12d));
            _TurnMarker          = new GaugeNeedle("{Helios}/Gauges/AV-8B/ADI/adi_turn_marker.xaml", new Point(112d, 38d), new Size(14d, 18d), new Point(7d, 9d));
            Components.Add(_slipBallNeedle);
            Components.Add(_TurnMarker);

            _warningFlagNeedle = new GaugeNeedle("{Helios}/Gauges/AV-8B/AOA/aoa_off_flag.xaml", new Point(80d, 20d), new Size(28d, 36d), new Point(0d, 0d), 0d);
            Components.Add(_warningFlagNeedle);


            Components.Add(new GaugeImage("{Helios}/Gauges/AV-8B/ADI/adi_slip_guides.xaml", new Rect(0d, 0d, 225d, 114d)));

            _slipBall          = new HeliosValue(this, new BindingValue(0d), "", "Slip Ball Offset", "Side slip indicator offset from the center of the tube.", "(-1 to 1) -1 full left and 1 is full right.", BindingValueUnits.Numeric);
            _slipBall.Execute += new HeliosActionHandler(SlipBall_Execute);
            Actions.Add(_slipBall);

            _turnIndicator          = new HeliosValue(this, new BindingValue(0d), "", "Turn Indicator Offset", "Turn indicator offset from the center of the gauge.", "(-1 to 1) -1 full left and 1 is full right.", BindingValueUnits.Numeric);
            _turnIndicator.Execute += new HeliosActionHandler(turnIndicator_Execute);
            Actions.Add(_turnIndicator);

            _warningFlag          = new HeliosValue(this, new BindingValue(false), "", "Slip Turn Warning Flag", "Indicates whether the warning flag is displayed.", "True if displayed.", BindingValueUnits.Boolean);
            _warningFlag.Execute += new HeliosActionHandler(OffFlag_Execute);
            Actions.Add(_warningFlag);
        }
示例#37
0
        // Base construcor is passed default name and native size
        public AOA()
            : base("Angle of Attack", new Size(300, 300))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/AV-8B/Common/300_Gauge.xaml", new Rect(0d, 0d, 300d, 300d)));

            // Components contains all artifacts that are used to draw the gauge, they are drawn in the order they are added to the collection.
            _warningFlagNeedle = new GaugeNeedle("{Helios}/Gauges/AV-8B/AOA/aoa_off_flag.xaml", new Point(20d, 248d), new Size(70d, 90d), new Point(0d, 178d), 0d);
            Components.Add(_warningFlagNeedle);
            // Add faceplate image to drawing components
            // Source image file (xaml will be vector rendered to appropriate size)
            Components.Add(new GaugeImage("{Helios}/Gauges/AV-8B/AOA/aoa_faceplate.xaml", new Rect(0d, 0d, 300d, 300d)));
            // Rectangle inside gauge where image will be drawn (scaled automatically to fit rectangle)
            //new Rect(32d, 38d, 300d, 300d)));

            // Create needle calibration scale which will be used to represent 0 degrees rotation for 0 input and 270 degrees rotation when input is 30.
            _needleCalibration = new CalibrationPointCollectionDouble(-5d, -36d, 20d, 146d);
            _needleCalibration.Add(new CalibrationPointDouble(0d, 0d));

            // Add needle to drawing components
            // Source image file (xaml will be vector rendered to appropriate size)
            _needle = new GaugeNeedle("{Helios}/Gauges/AV-8B/Common/needle_a.xaml",
                                      // Location on gauge which the needle will be rotated
                                      new Point(150d, 150d),
                                      // Size of needle image (will scale image to this size automatically)
                                      new Size(30d, 128d),
                                      // Center point of needle image to rotate around
                                      new Point(15d, 113d),
                                      // Initial rotation for this needle
                                      173d);
            Components.Add(_needle);
            _warningFlag          = new HeliosValue(this, new BindingValue(false), "", "Warning Flag", "Indicates whether the warning flag is displayed.", "True if displayed.", BindingValueUnits.Boolean);
            _warningFlag.Execute += new HeliosActionHandler(OffFlag_Execute);
            Actions.Add(_warningFlag);
            //Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/gauge_bezel.png", new Rect(0d, 0d, 364d, 376d)));

            // Create Angle of Attack value holder
            // Owning Object
            _aoa = new HeliosValue(this,
                                   // Default Value
                                   new BindingValue(0d),
                                   // Device Hint
                                   "",
                                   // Name
                                   "angle of attack",
                                   // Description
                                   "Current angle of attack of the aircraft.",
                                   // Value Description
                                   "(-5 to 20)",
                                   // Value Unit of Measure
                                   BindingValueUnits.Degrees);
            // Hook event callback for when the Angle of Attack value is updated
            _aoa.Execute += new HeliosActionHandler(AOA_Execute);

            // Add angle of attack value into possible action list for bindings
            Actions.Add(_aoa);
        }
示例#38
0
        public edpNoz()
            : base("EDP Nozzle", new Size(12, 48))
        {
            //Components.Add(new GaugeImage("{Helios}/Gauges/AV-8B/Engine Panel/edp_faceplate.xaml", new Rect(0d, 0d, 528d, 302d)));
            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 0.94d, 130d);
            _needle            = new GaugeNeedle("{Helios}/Gauges/AV-8B/Engine Panel/nozzle_needle.xaml", new Point(0d, 0d), new Size(12d, 48d), new Point(6d, 42d), 90d);
            Components.Add(_needle);

            _angle          = new HeliosValue(this, new BindingValue(0d), "", "value", "Current position of Nozzles.", "(0 - 120)", BindingValueUnits.Degrees);
            _angle.Execute += new HeliosActionHandler(Angle_Execute);
            Actions.Add(_angle);
        }
示例#39
0
        public edpNoz()
            : base("EDP Nozzle", new Size(80, 80))
        {
            //Components.Add(new GaugeImage("{Helios}/Gauges/AV-8B/EDP Nozzle/edp_noz_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 0.94d, 150d);
            _needle            = new GaugeNeedle("{Helios}/Gauges/AV-8B/Common/nozzle_needle.xaml", new Point(40d, 40d), new Size(15d, 36d), new Point(7.6d, 28.1d), 90d);
            Components.Add(_needle);

            _angle          = new HeliosValue(this, new BindingValue(0d), "", "angle", "Current position of Nozzles.", "(0 - 120)", BindingValueUnits.Degrees);
            _angle.Execute += new HeliosActionHandler(Angle_Execute);
            Actions.Add(_angle);
        }
示例#40
0
        public HARSSync()
            : base("HARS Sync", new Size(300d, 150d))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/HARS/hars_faceplate.xaml", new Rect(0d, 0d, 300d, 150d)));

            _needleCalibration = new CalibrationPointCollectionDouble(-1d, -80d, 1d, 80d);
            _needle = new GaugeNeedle("{Helios}/Gauges/A-10/HARS/hars_needle.xaml", new Point(150d, 150d), new Size(25d, 125d), new Point(12.5d, 112.5d), 0d);
            _needle.Clip = new RectangleGeometry(new Rect(0d, 0d, 300d, 146d));
            Components.Add(_needle);

            _syncOffset = new HeliosValue(this, new BindingValue(0d), "", "sync offset", "Location of sync needle", "(-1 to 1)", BindingValueUnits.Numeric);
            _syncOffset.Execute += new HeliosActionHandler(Sync_Execute);
            Actions.Add(_syncOffset);
        }
示例#41
0
        public VVI() : base("VVI", new Size(364, 376))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/FA-18C/VVI/VVI_Faceplate.png", new Rect(32d, 38d, 300d, 300d)));
            _needle = new GaugeNeedle("{Helios}/Gauges/A-10/Common/needle_a.xaml", new Point(182d, 188d), new Size(22, 165), new Point(11, 130), -90d);
            Components.Add(_needle);

            //Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/gauge_bezel.png", new Rect(0d, 0d, 364d, 376d)));
            _verticalVelocity          = new HeliosValue(this, new BindingValue(0d), "", "vertical velocity", "Veritcal velocity of the aircraft", "(-6,000 to 6,000)", BindingValueUnits.FeetPerMinute);
            _verticalVelocity.Execute += new HeliosActionHandler(VerticalVelocity_Execute);
            Actions.Add(_verticalVelocity);

            _calibrationPoints = new CalibrationPointCollectionDouble(-6000d, -169d, 6000d, 169d);
            _calibrationPoints.Add(new CalibrationPointDouble(0d, 0d));
        }
示例#42
0
        public PhidgetsServo(PhidgetsServoBoard servoBoard, int servoNumber)
        {
            _servoNum   = servoNumber;
            _servoBoard = servoBoard;

            _targetPosition          = new HeliosValue(servoBoard, new BindingValue(0d), "Servo " + _servoNum.ToString(), "target position", "Sets the raw target position of this stepper.", "", BindingValueUnits.Numeric);
            _targetPosition.Execute += TargetPosition_Execute;

            _value          = new HeliosValue(servoBoard, new BindingValue(0d), "Servo " + _servoNum.ToString(), "input value", "Sets the input value to be displayed on this stepper.", "Input value will be interpolated with the calibration data and set the target position for the stepper as appropriate.", BindingValueUnits.Numeric);
            _value.Execute += Value_Execute;

            _calibration = new CalibrationPointCollectionDouble(-6000d, 0d, 6000d, 180d);
            _calibration.CalibrationChanged += new EventHandler(_calibration_CalibrationChanged);
        }
示例#43
0
        public HARSSync()
            : base("HARS Sync", new Size(300d, 150d))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/HARS/hars_faceplate.xaml", new Rect(0d, 0d, 300d, 150d)));

            _needleCalibration = new CalibrationPointCollectionDouble(-1d, -80d, 1d, 80d);
            _needle            = new GaugeNeedle("{Helios}/Gauges/A-10/HARS/hars_needle.xaml", new Point(150d, 150d), new Size(25d, 125d), new Point(12.5d, 112.5d), 0d);
            _needle.Clip       = new RectangleGeometry(new Rect(0d, 0d, 300d, 146d));
            Components.Add(_needle);

            _syncOffset          = new HeliosValue(this, new BindingValue(0d), "", "sync offset", "Location of sync needle", "(-1 to 1)", BindingValueUnits.Numeric);
            _syncOffset.Execute += new HeliosActionHandler(Sync_Execute);
            Actions.Add(_syncOffset);
        }
示例#44
0
文件: AOA.cs 项目: Heliflyer/helios
        // Base construcor is passed default name and native size
        public AOA()
            : base("Angle of Attack", new Size(364, 376))
        {
            // Components contains all artifacts that are used to draw the gauge, they are drawn in the order they are added to the collection.

            // Add faceplate image to drawing components
            // Source image file (xaml will be vector rendered to appropriate size)
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/AOA/aoa_faceplate.xaml",
                // Rectangle inside gauge where image will be drawn (scaled automatically to fit rectangle)
                                          new Rect(32d, 38d, 300d, 300d)));

            // Create needle calibration scale which will be used to represent 0 degrees rotation for 0 input and 270 degrees rotation when input is 30.
            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 30d, 270d);

            // Add needle to drawing components
            // Source image file (xaml will be vector rendered to appropriate size)
            _needle = new GaugeNeedle("{Helios}/Gauges/A-10/Common/needle_a.xaml",
                // Location on gauge which the needle will be rotated
                                      new Point(182d, 188d),
                // Size of needle image (will scale image to this size automatically)
                                      new Size(22d, 165d),
                // Center point of needle image to rotate around
                                      new Point(11d, 130d),
                // Initial rotation for this needle
                                      -90d);
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/gauge_bezel.png", new Rect(0d, 0d, 364d, 376d)));

            // Create Angle of Attack value holder
            // Owning Object
            _aoa = new HeliosValue(this,
                // Default Value
                                   new BindingValue(0d),
                // Device Hint
                                   "",
                // Name
                                   "angle of attack",
                // Description
                                   "Current angle of attack of the aircraft.",
                // Value Description
                                   "(0 - 30)",
                // Value Unit of Measure
                                   BindingValueUnits.Degrees);
            // Hook event callback for when the Angle of Attack value is updated
            _aoa.Execute += new HeliosActionHandler(AOA_Execute);

            // Add angle of attack value into possible action list for bindings
            Actions.Add(_aoa);
        }
示例#45
0
        public HARSSync()
            : base("HARS Sync", new Size(137d, 79d))
        {
            Components.Add(new GaugeImage("{A-10C}/Images/A-10C/A-10C_HARS_Scale_Panel.png", new Rect(0d, 0d, 137d, 79d)));

            _needleCalibration = new CalibrationPointCollectionDouble(-1d, -80d, 1d, 80d);
            _needle            = new GaugeNeedle("{Helios}/Gauges/A-10/HARS/hars_needle.xaml", new Point(69d, 120d), new Size(20d, 75d), new Point(10d, 100d), 0d);
            _needle.Clip       = new RectangleGeometry(new Rect(0d, 0d, 137d, 79d));
            Components.Add(_needle);

            _syncOffset          = new HeliosValue(this, new BindingValue(0d), "", "sync offset", "Location of sync needle", "(-1 to 1)", BindingValueUnits.Numeric);
            _syncOffset.Execute += new HeliosActionHandler(Sync_Execute);
            Actions.Add(_syncOffset);
        }
示例#46
0
        // Base construcor is passed default name and native size
        public AOA()
            : base("Angle of Attack", new Size(364, 376))
        {
            // Components contains all artifacts that are used to draw the gauge, they are drawn in the order they are added to the collection.

            // Add faceplate image to drawing components
            // Source image file (xaml will be vector rendered to appropriate size)
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/AOA/aoa_faceplate.xaml",
                                          // Rectangle inside gauge where image will be drawn (scaled automatically to fit rectangle)
                                          new Rect(32d, 38d, 300d, 300d)));

            // Create needle calibration scale which will be used to represent 0 degrees rotation for 0 input and 270 degrees rotation when input is 30.
            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 30d, 270d);

            // Add needle to drawing components
            // Source image file (xaml will be vector rendered to appropriate size)
            _needle = new GaugeNeedle("{Helios}/Gauges/A-10/Common/needle_a.xaml",
                                      // Location on gauge which the needle will be rotated
                                      new Point(182d, 188d),
                                      // Size of needle image (will scale image to this size automatically)
                                      new Size(22d, 165d),
                                      // Center point of needle image to rotate around
                                      new Point(11d, 130d),
                                      // Initial rotation for this needle
                                      -90d);
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/gauge_bezel.png", new Rect(0d, 0d, 364d, 376d)));

            // Create Angle of Attack value holder
            // Owning Object
            _aoa = new HeliosValue(this,
                                   // Default Value
                                   new BindingValue(0d),
                                   // Device Hint
                                   "",
                                   // Name
                                   "angle of attack",
                                   // Description
                                   "Current angle of attack of the aircraft.",
                                   // Value Description
                                   "(0 - 30)",
                                   // Value Unit of Measure
                                   BindingValueUnits.Degrees);
            // Hook event callback for when the Angle of Attack value is updated
            _aoa.Execute += new HeliosActionHandler(AOA_Execute);

            // Add angle of attack value into possible action list for bindings
            Actions.Add(_aoa);
        }
示例#47
0
        public PhidgetsServo(PhidgetsServoBoard servoBoard, int servoNumber)
        {
            _servoNum = servoNumber;
            _servoBoard = servoBoard;

            _targetPosition = new HeliosValue(servoBoard, new BindingValue(0d), "Servo " + _servoNum.ToString(), "target position", "Sets the raw target position of this stepper.", "", BindingValueUnits.Numeric);
            _targetPosition.Execute += TargetPosition_Execute;

            _value = new HeliosValue(servoBoard, new BindingValue(0d), "Servo " + _servoNum.ToString(), "input value", "Sets the input value to be displayed on this stepper.", "Input value will be interpolated with the calibration data and set the target position for the stepper as appropriate.", BindingValueUnits.Numeric);
            _value.Execute += Value_Execute;

            _calibration = new CalibrationPointCollectionDouble(-6000d, 0d, 6000d, 180d);
            _calibration.CalibrationChanged += new EventHandler(_calibration_CalibrationChanged);
        }
示例#48
0
        public DA200()
            : base("DA200", new Size(340, 340))
        {
            Point center = new Point(170, 170);
            Point bottomCenter = new Point(170, 240);
            Point veryBottomCenter = new Point(170, 310);

            _vvineedleCalibration = new CalibrationPointCollectionDouble(-400d, -135d, 400d, 135d);
            _vvineedleCalibration.Add(new CalibrationPointDouble(-200d, -121d));
            _vvineedleCalibration.Add(new CalibrationPointDouble(-100d, -102d));
            _vvineedleCalibration.Add(new CalibrationPointDouble(-50d, -80d));
            _vvineedleCalibration.Add(new CalibrationPointDouble(-20d, -70d));
            _vvineedleCalibration.Add(new CalibrationPointDouble(-10d, -35d));
            _vvineedleCalibration.Add(new CalibrationPointDouble(0d, 0d));
            _vvineedleCalibration.Add(new CalibrationPointDouble(10d, 35d));
            _vvineedleCalibration.Add(new CalibrationPointDouble(20d, 70d));
            _vvineedleCalibration.Add(new CalibrationPointDouble(50d, 80d));
            _vvineedleCalibration.Add(new CalibrationPointDouble(100d, 102d));
            _vvineedleCalibration.Add(new CalibrationPointDouble(200d, 121d));

            _vviNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/DA200/da200vvi_needle.xaml", center, new Size(32, 185), new Point(16, 127), 270);

            _slipBallCalibration = new CalibrationPointCollectionDouble(-1d, 57d, 1d, -57d);
            _slipBallCalibration.Add(new CalibrationPointDouble(0d, 0d));
            _slipBallNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/DA200/da200_slip_ball.xaml", bottomCenter, new Size(23, 23), new Point(11.5, 11.5));

            _turnneedleCalibration = new CalibrationPointCollectionDouble(-0.04433d, -26d, 0.04433d, 26d);
            _turnNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/DA200/da200bank_needle.xaml", veryBottomCenter, new Size(34, 218), new Point(17, 208));

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/DA200/da200_faceplate.xaml", new Rect(0, 0, 340, 340)));
            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/DA200/da200slip_faceplate.xaml", new Rect(99, 222, 140, 36)));
            Components.Add(_slipBallNeedle);
            Components.Add(_turnNeedle);
            Components.Add(_vviNeedle);
            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _vviE = new HeliosValue(this, BindingValue.Empty, "", "VVI", "Velocity", "", BindingValueUnits.Numeric);
            _vviE.Execute += vvi_Execute;
            Actions.Add(_vviE);

            _slipBallE = new HeliosValue(this, BindingValue.Empty, "", "Slip", "Slip Ball", "", BindingValueUnits.Numeric);
            _slipBallE.Execute += SlipBall_Execute;
            Actions.Add(_slipBallE);

            _turnE = new HeliosValue(this, BindingValue.Empty, "", "Turn", "Turn", "", BindingValueUnits.Numeric);
            _turnE.Execute += turn_Execute;
            Actions.Add(_turnE);

        }
示例#49
0
        public RAltimeter()
            : base("RADAR Altimeter", new Size(420, 420))
        {
            //  The first three images are the default images which appear behind the indicators.
            Components.Add(new GaugeImage("{FA-18C}/Images/indicator_off.png", new Rect(108d, 177d, 50d, 50d)));
            Components.Add(new GaugeImage("{FA-18C}/Images/indicator_off.png", new Rect(260d, 177d, 50d, 50d)));
            Components.Add(new GaugeImage("{FA-18C}/Images/Radar Altimeter Blank.png", new Rect(179d, 288d, 56d, 22d)));

            _giRed = new GaugeImage("{FA-18C}/Images/indicator_red.png", new Rect(108d, 177d, 50d, 50d));
            Components.Add(_giRed);
            _redIndicator          = new HeliosValue(this, new BindingValue(0d), "", "RADAR Altimeter Red", "Red Indicator.", "", BindingValueUnits.Boolean);
            _redIndicator.Execute += new HeliosActionHandler(RedIndicator_Execute);
            Values.Add(_redIndicator);
            Actions.Add(_redIndicator);

            _giGreen = new GaugeImage("{FA-18C}/Images/indicator_green.png", new Rect(260d, 177d, 50d, 50d));
            Components.Add(_giGreen);
            _greenIndicator          = new HeliosValue(this, new BindingValue(0d), "", "RADAR Altimeter Green", "Green Indicator.", "", BindingValueUnits.Boolean);
            _greenIndicator.Execute += new HeliosActionHandler(GreenIndicator_Execute);
            Values.Add(_greenIndicator);
            Actions.Add(_greenIndicator);

            _giOff = new GaugeImage("{FA-18C}/Images/Radar Altimeter Off Flag.png", new Rect(179d, 287d, 56d, 24d));
            Components.Add(_giOff);
            _offIndicator          = new HeliosValue(this, new BindingValue(0d), "", "RADAR Altimeter Off", "Off Indicator.", "", BindingValueUnits.Boolean);
            _offIndicator.Execute += new HeliosActionHandler(OffIndicator_Execute);
            Values.Add(_offIndicator);
            Actions.Add(_offIndicator);

            Components.Add(new GaugeImage("{Helios}/Gauges/FA-18C/Altimeter/RADAR_Altimeter_Faceplate.png", new Rect(0d, 0d, 420d, 420d)));

            _needleCalibration = new CalibrationPointCollectionDouble(0.048d, 0d, 1d, 330d);
            _needleCalibration.Add(new CalibrationPointDouble(0.000d, -12d));
            _needle = new GaugeNeedle("{Helios}/Gauges/FA-18C/Altimeter/altimeter_needle.xaml", new Point(210d, 210d), new Size(16d, 250d), new Point(8d, 200d), 0d);
            Components.Add(_needle);
            _minimum_needle = new GaugeNeedle("{Helios}/Gauges/FA-18C/Altimeter/RADAR_Altimeter_Min_Needle.xaml", new Point(210d, 210d), new Size(46d, 205d), new Point(23d, 205d), 0d);
            Components.Add(_minimum_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/FA-18C/Altimeter/RADAR_Altimeter_Cover.png", new Rect(94d, 11d, 89d, 88d)));  // this is the needle cover

            //Components.Add(new GaugeImage("{Helios}/Gauges/FA-18C/Common/engine_bezel.png", new Rect(0d, 0d, 400d, 400d)));

            _altitude          = new HeliosValue(this, new BindingValue(0d), "", "RADAR altitude", "Current RADAR altitude of the aircraft.", "", BindingValueUnits.Feet);
            _altitude.Execute += new HeliosActionHandler(Altitude_Execute);
            Actions.Add(_altitude);
            _min_altitude          = new HeliosValue(this, new BindingValue(0d), "", "RADAR Altimeter Minimum", "Minimum Altitude setting for the aricraft in feet.", "", BindingValueUnits.Feet);
            _min_altitude.Execute += new HeliosActionHandler(Min_Altitude_Execute);
            Actions.Add(_min_altitude);
        }
示例#50
0
        public Hydraulic()
            : base("Hydraulic Pressure", new Size(360, 360))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Hydraulic/hydraulic_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 4000d, 296d);
            _needle            = new GaugeNeedle("{Helios}/Gauges/A-10/Hydraulic/hydraulic_needle.xaml", new Point(180d, 180d), new Size(58d, 164d), new Point(29d, 135d), 103.5d);
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/engine_bezel.png", new Rect(0d, 0d, 360d, 360d)));

            _pressure          = new HeliosValue(this, new BindingValue(0d), "", "pressure", "Current pressure for the hydraulic system.", "", BindingValueUnits.PoundsPerSquareInch);
            _pressure.Execute += new HeliosActionHandler(Pressure_Execute);
            Actions.Add(_pressure);
        }
示例#51
0
        public OilPressure()
            : base("Oil Pressure", new Size(360, 360))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/OilPressure/eng_oil_pressure_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 100d, 270d);
            _needle = new GaugeNeedle("{Helios}/Gauges/A-10/Common/eng_needle.xaml", new Point(180d, 180d), new Size(69d, 161d), new Point(34.5d, 126.5d), 135d);
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/engine_bezel.png", new Rect(0d, 0d, 360d, 360d)));

            _pressure = new HeliosValue(this, new BindingValue(0d), "", "oil pressure", "Current oil pressure of the aircraft enigne fan.", "(0 - 100)", BindingValueUnits.PoundsPerSquareInch);
            _pressure.Execute += new HeliosActionHandler(Pressure_Execute);
            Actions.Add(_pressure);
        }
示例#52
0
        public LiquidOxygen()
            : base("Liquid Oxygen", new Size(360, 360))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/LiquidOxygen/liquid_oxygen_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 5d, 180d);
            _needle = new GaugeNeedle("{Helios}/Gauges/A-10/LiquidOxygen/liquid_oxygen_needle.xaml", new Point(180d, 180d), new Size(175d, 74d), new Point(138d, 37d), 0d);
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/engine_bezel.png", new Rect(0d, 0d, 360d, 360d)));

            _liquidOxygen = new HeliosValue(this, new BindingValue(0d), "", "liquid oxygen", "Remaining liquid oxygen.", "(1-5)", BindingValueUnits.Liters);
            _liquidOxygen.Execute += new HeliosActionHandler(LiquidOxygen_Execute);
            Actions.Add(_liquidOxygen);
        }
示例#53
0
        public FuelFlow()
            : base("Fuel Flow", new Size(360, 360))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/FuelFlow/eng_fuel_flow_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 5000d, 300d);
            _needle = new GaugeNeedle("{Helios}/Gauges/A-10/Common/eng_needle.xaml", new Point(180d, 180d), new Size(69d, 161d), new Point(34.5d, 126.5d), 150d);
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/engine_bezel.png", new Rect(0d, 0d, 360d, 360d)));

            _fuelFlow = new HeliosValue(this, new BindingValue(0d), "", "fuel flow", "Current fuel consumption of the aircraft enigne fan.", "", BindingValueUnits.PoundsPerHour);
            _fuelFlow.Execute += new HeliosActionHandler(FuelFlow_Execute);
            Actions.Add(_fuelFlow);
        }
示例#54
0
        public ApuEGT()
            : base("APU EGT", new Size(360, 360))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/ApuEGT/apu_egt_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 1000d, 250d);
            _needle = new GaugeNeedle("{Helios}/Gauges/A-10/Common/eng_needle.xaml", new Point(180d, 180d), new Size(69d, 161d), new Point(34.5d, 126.5d), 90d);
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/engine_bezel.png", new Rect(0d, 0d, 360d, 360d)));

            _temperature = new HeliosValue(this, new BindingValue(0d), "", "temperature", "Current temperature of the aircraft APU.", "(0 - 1000)", BindingValueUnits.Celsius);
            _temperature.Execute += new HeliosActionHandler(Temperature_Execute);
            Actions.Add(_temperature);
        }
示例#55
0
        public ApuRPM()
            : base("APU RPM", new Size(360, 360))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/ApuRPM/apu_rpm_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 120d, 225d);
            _needle = new GaugeNeedle("{Helios}/Gauges/A-10/Common/eng_needle.xaml", new Point(180d, 180d), new Size(69d, 161d), new Point(34.5d, 126.5d), 90d);
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/engine_bezel.png", new Rect(0d, 0d, 360d, 360d)));

            _rpm = new HeliosValue(this, new BindingValue(0d), "", "rpm", "Current RPM of the APU as a percentage of maxium.", "(0-120)", BindingValueUnits.RPMPercent);
            _rpm.Execute += new HeliosActionHandler(RPM_Execute);
            Actions.Add(_rpm);
        }
示例#56
0
        public Hydraulic()
            : base("Hydraulic Pressure", new Size(360, 360))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Hydraulic/hydraulic_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 4000d, 296d);
            _needle = new GaugeNeedle("{Helios}/Gauges/A-10/Hydraulic/hydraulic_needle.xaml", new Point(180d, 180d), new Size(58d, 164d), new Point(29d, 135d), 103.5d);
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/engine_bezel.png", new Rect(0d, 0d, 360d, 360d)));

            _pressure = new HeliosValue(this, new BindingValue(0d), "", "pressure", "Current pressure for the hydraulic system.", "", BindingValueUnits.PoundsPerSquareInch);
            _pressure.Execute += new HeliosActionHandler(Pressure_Execute);
            Actions.Add(_pressure);
        }
示例#57
0
        public OxygenPressure()
            : base("Oxygen Supply Pressure", new Size(360, 360))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/OxygenPressure/oxygen_pressure_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 500d, 180d);
            _needleCalibration.Add(new CalibrationPointDouble(100d, 90d));
            _needle = new GaugeNeedle("{Helios}/Gauges/A-10/OxygenPressure/oxygen_pressure_needle.xaml", new Point(180d, 180d), new Size(175d, 74d), new Point(138d, 37d), 0d);
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/engine_bezel.png", new Rect(0d, 0d, 360d, 360d)));

            _liquidOxygen = new HeliosValue(this, new BindingValue(0d), "", "oxygen supply pressure", "Current pressure in the oxygen system.", "(0-500)", BindingValueUnits.PoundsPerSquareInch);
            _liquidOxygen.Execute += new HeliosActionHandler(LiquidOxygen_Execute);
            Actions.Add(_liquidOxygen);
        }
示例#58
0
        public FanRPM()
            : base("Fan RPM", new Size(360, 360))
        {
            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/FanRPM/eng_fan_rpm_faceplate.xaml", new Rect(30d, 30d, 300d, 300d)));

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 100d, 330d);
            _needleCalibration.Add(new CalibrationPointDouble(75d, 150d));
            _needle = new GaugeNeedle("{Helios}/Gauges/A-10/Common/eng_needle.xaml", new Point(180d, 180d), new Size(69d, 161d), new Point(34.5d, 126.5d), 30d);
            Components.Add(_needle);

            Components.Add(new GaugeImage("{Helios}/Gauges/A-10/Common/engine_bezel.png", new Rect(0d, 0d, 360d, 360d)));

            _rpm = new HeliosValue(this, new BindingValue(0d), "", "rpm", "Current RPM of the aircraft enigne fan.", "(0 - 100)", BindingValueUnits.RPMPercent);
            _rpm.Execute += new HeliosActionHandler(RPM_Execute);
            Actions.Add(_rpm);
        }
示例#59
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);
        }
示例#60
0
        public Voltmeter()
            : base("Voltmeter", new Size(340, 340))
        {
            Point center = new Point(170, 170);

            _needleCalibration = new CalibrationPointCollectionDouble(0d, 0d, 30d, 267d);
            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/Voltmeter/voltmeter_faceplate.xaml", new Rect(0, 0, 340, 340)));

            _currentNeedle = new GaugeNeedle("{Helios}/Gauges/Mig-21/Common/generic_gray_needle.xaml", center, new Size(69d, 178d), new Point(34.5d, 126.5d), 224.5d);
            Components.Add(_currentNeedle);

            Components.Add(new GaugeImage("{Helios}/Gauges/Mig-21/Common/generic_bezel.xaml", new Rect(0, 0, 340, 340)));

            _currentVolts = new HeliosValue(this, BindingValue.Empty, "", "Volts", "Current volts", "", BindingValueUnits.Numeric);
            _currentVolts.Execute += CurrentFuel_Execute;
            Actions.Add(_currentVolts);
        }