Пример #1
0
        private void DOA8ServoOutputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
        {
            var source = sender as AnalogSignal;

            if (source?.Index == null)
            {
                return;
            }
            var servoNumZeroBase = source.Index.Value;
            var baseAddress      = source.SubSourceAddress;
            var baseAddressByte  = byte.Parse(baseAddress);
            var device           = source.Source as p.Device;

            if (device == null)
            {
                return;
            }
            var servoNum    = servoNumZeroBase + 1;
            var newPosition = (byte)(Math.Abs(args.CurrentState + 90.00) / 180.00 * 255);

            try
            {
                device.DoaSend8ServoPosition(baseAddressByte, (byte)servoNum, newPosition);
                _peripheralFloatStates[baseAddress][servoNum] = newPosition;
            }
            catch (Exception e)
            {
                _log.Error(e.Message, e);
            }
        }
Пример #2
0
        private void DOAAnOut1SignalChanged(object sender, AnalogSignalChangedEventArgs args)
        {
            var source = sender as AnalogSignal;

            if (source?.Index == null)
            {
                return;
            }
            var channelNumZeroBase = source.Index.Value;
            var baseAddress        = source.SubSourceAddress;
            var baseAddressByte    = byte.Parse(baseAddress);
            var device             = source.Source as p.Device;

            if (device == null)
            {
                return;
            }
            var channelNum = channelNumZeroBase + 1;
            var newVal     = (byte)(Math.Abs(args.CurrentState) / 5.00 * 255);

            try
            {
                device.DoaSendAnOut1(baseAddressByte, (byte)channelNum, newVal);
                _peripheralFloatStates[baseAddress][channelNum] = newVal;
            }
            catch (Exception e)
            {
                _log.Error(e.Message, e);
            }
        }
        private void DAC_OutputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
        {
            var task =
                Task.Run(() => SetDACChannelOutputValue((AnalogSignal)sender, a.DacChannelDataSource.DataValueA));

            _pendingTasks.Add(task);
        }
Пример #4
0
        private void DOAAircoreOutputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
        {
            var source = sender as AnalogSignal;

            if (source?.Index == null)
            {
                return;
            }
            var motorNumZeroBase = source.Index.Value;
            var baseAddress      = source.SubSourceAddress;
            var baseAddressByte  = byte.Parse(baseAddress);
            var device           = source.Source as p.Device;

            if (device == null)
            {
                return;
            }
            var motorNum    = motorNumZeroBase + 1;
            var newPosition = (int)(Math.Abs(args.CurrentState) / 360.00 * 1023);

            try
            {
                device.DoaSendAirCoreMotor(baseAddressByte, (byte)motorNum, newPosition);
                _peripheralFloatStates[baseAddress][motorNum] = newPosition;
            }
            catch (Exception e)
            {
                _log.Error(e.Message, e);
            }
        }
 private void PositionOutputSignal_SignalChanged(object sender, AnalogSignalChangedEventArgs args)
 {
     if (_positionOutputSignal != null)
     {
         var requestedPosition = _positionOutputSignal.State;
         SetPosition((ushort)requestedPosition);
     }
 }
Пример #6
0
        protected override void OnGoToPositionSignalChanged(object sender, AnalogSignalChangedEventArgs args)
        {
            if (MinPositionReachedSignal != null && MinPositionReachedSignal.State &&
                args.CurrentState <= args.PreviousState)
            {
                return;
            }
            if (MaxPositionReachedSignal != null && MaxPositionReachedSignal.State &&
                args.CurrentState >= args.PreviousState)
            {
                return;
            }
            var changeInValue = args.CurrentState - args.PreviousState;

            PhysicalOutput.State = changeInValue * NumStepsInRangeOfTravel;
            base.OnGoToPositionSignalChanged(sender, args);
        }
Пример #7
0
        private void DOAStepperSignalChanged(object sender, AnalogSignalChangedEventArgs args)
        {
            var source = sender as AnalogSignal;

            if (source?.Index == null)
            {
                return;
            }
            var motorNumZeroBase = source.Index.Value;
            var baseAddress      = source.SubSourceAddress;
            var baseAddressByte  = byte.Parse(baseAddress);
            var device           = source.Source as p.Device;

            if (device == null)
            {
                return;
            }
            var motorNum    = motorNumZeroBase + 1;
            var newPosition = args.CurrentState;
            var oldPosition = _peripheralFloatStates[baseAddress][motorNumZeroBase];
            var numSteps    = (int)Math.Abs(newPosition - oldPosition);
            var direction   = p.MotorDirections.Clockwise;

            if (oldPosition < newPosition)
            {
                direction = p.MotorDirections.Counterclockwise;
            }
            try
            {
                device.DoaSendStepperMotor(baseAddressByte, (byte)motorNum, direction, (byte)numSteps,
                                           p.MotorStepTypes.FullStep);
                _peripheralFloatStates[baseAddress][motorNumZeroBase] = newPosition;
            }
            catch (Exception e)
            {
                _log.Error(e.Message, e);
            }
        }
Пример #8
0
 private void cabinPressureAltitude_InputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
 {
     UpdateCabinPressureAltitudeOutputValues();
 }
 private void nozzlePosition_InputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
 {
     UpdateOutputValues();
 }
 private void airspeed_InputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
 {
     UpdateAirspeedOutputValues();
     UpdateMachOutputValues();
 }
Пример #11
0
 private void verticalCommandBar_InputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
 {
     UpdateVerticalCommandBarOutputValues();
 }
 private void fuelFlow_InputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
 {
     UpdateOutputValues();
 }
Пример #13
0
 private void rateOfTurn_InputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
 {
     UpdateRateOfTurnOutputValues();
 }
Пример #14
0
 private void horizontalCommandBar_InputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
 {
     UpdateHorizontalCommandBarOutputValues();
 }
Пример #15
0
 private void inclinometer_InputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
 {
     UpdateInclinometerOutputValues();
 }
Пример #16
0
 private void pitch_InputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
 {
     UpdatePitchOutputValues();
 }
 private void barometricPressure_InputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
 {
     UpdateAltitudeOutputValues();
 }
Пример #18
0
 private void roll_InputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
 {
     UpdateRollOutputValues();
 }
 private void hydPressureB_InputSignalChanged(object sender, AnalogSignalChangedEventArgs args)
 {
     UpdateHydBOutputValues();
 }