Exemple #1
0
        private TesterBase CreateTester(NetworkFunction networkFunction, DCSDataElement dataElement)
        {
            // specific types we want to test a certain way
            switch (networkFunction)
            {
            case PushButton button:
                _ = button;
                return(new BooleanTester(dataElement));

            case Switch switchFunction:
                return(new SwitchTester(dataElement, switchFunction));
            }

            // infer based on format
            switch (dataElement.Format)
            {
            case "%1d":
                // only testing 0 and 1 even if this is a switch with multiple values
                return(new BooleanTester(dataElement));

            case null:
                if (networkFunction is NetworkValue)
                {
                    // at least simulate 0..1 for generic values
                    return(new NumericTester(dataElement, 3));
                }

                // no tester for values created manually in script (yet)
                return(new UnsupportedTester(dataElement));

            default:
                Match match = FloatFormat.Match(dataElement.Format);
                if (match.Success && match.Groups[1].Success &&
                    int.TryParse(match.Groups[1].Value, out int precision))
                {
                    return(new NumericTester(dataElement, precision));
                }

                break;
            }

            return(new UnsupportedTester(dataElement));
        }
Exemple #2
0
 protected TesterBase(DCSDataElement data)
 {
     Data = data;
 }
Exemple #3
0
 public SwitchTester(DCSDataElement dataElement, Switch switchFunction) : base(dataElement)
 {
     _values = switchFunction.PositionValues.ToList();
 }
Exemple #4
0
 /// <summary>
 /// default tester for value with unknown precision
 /// </summary>
 /// <param name="dataElement"></param>
 public NumericTester(DCSDataElement dataElement) : base(dataElement)
 {
     _range = 1d;
 }
Exemple #5
0
        private const double RAMP_TIME = 2d; // number of seconds from 0 to max value (same amount of time taken to ramp back down and again to stay at 0)

        public NumericTester(DCSDataElement dataElement, int precision) : base(dataElement)
        {
            _range = Math.Pow(10, 3 - precision);
        }
Exemple #6
0
 public UnsupportedTester(DCSDataElement dataElement) : base(dataElement)
 {
     Logger.Warn("Interface tester does not recognize format {Format} of {Id}", dataElement.Format, dataElement.ID);
 }
Exemple #7
0
 public BooleanTester(DCSDataElement data) : base(data)
 {
     // no code
 }