Пример #1
0
        public void VariablePoint_Rev6_CustomDigital()
        {
            var list = new List <byte>();

            list.AddRange("TEST CUS UNITS\0\0\0\0\0\0\0TESTCUS\0\0".ToBytes());
            list.AddRange(2000.ToBytes()); //Value
            list.Add(0);                   //AutoManual
            list.Add(0);                   //DigitalAnalog
            list.Add(1);                   //Control
            list.Add(2);                   //Unused
            list.Add(23);                  //Unit
            var actual = list.ToArray();

            var customUnits = new CustomUnits();

            customUnits.Digital.Add(new CustomDigitalUnitsPoint(false, "TEST1", "TEST2"));

            var expected = new VariablePoint("TEST CUS UNITS", "TESTCUS");

            expected.Value         = new VariableValue("TEST2", Unit.CustomDigital1, customUnits, 2000);
            expected.AutoManual    = AutoManual.Automatic;
            expected.DigitalAnalog = DigitalAnalog.Digital;
            expected.Control       = OffOn.On;

            BaseTest(actual, expected, FileVersion.Rev6, customUnits);
        }
Пример #2
0
        public InputsForm(List <InputPoint> points, CustomUnits customUnits = null)
        {
            if (points == null)
            {
                throw new ArgumentNullException(nameof(points));
            }
            Points      = points;
            CustomUnits = customUnits;

            InitializeComponent();

            //User input
            view.AddEditHandler(AutoManualColumn, TViewUtilities.EditEnum <AutoManual>);
            view.AddEditAction(ValueColumn, TViewUtilities.EditValue,
                               UnitColumn, RangeColumn, CustomUnits);
            view.AddEditAction(UnitColumn, TViewUtilities.EditUnitsColumn,
                               ValueColumn, UnitColumn, RangeColumn,
                               CustomUnits, new Func <Unit, bool>(unit => unit.IsInputAnalog()),
                               RangeTextColumn);
            view.AddEditHandler(SignColumn, TViewUtilities.EditEnum <Sign>);
            view.AddEditHandler(StatusColumn, TViewUtilities.EditEnum <InputStatus>);
            view.AddEditHandler(JumperColumn, TViewUtilities.EditEnum <Jumper>);

            //Formating
            view.AddFormating(SignColumn, o => ((Sign)o).GetName());
            view.AddFormating(JumperColumn, o => ((Jumper)o).GetName());
            view.AddFormating(UnitColumn, o => ((Unit)o).GetUnitName(CustomUnits));
            view.AddFormating(RangeTextColumn, o => ((Unit)o).GetRange(CustomUnits));

            //Show points
            view.Rows.Clear();
            view.Rows.Add(Points.Count);
            for (var i = 0; i < Points.Count; ++i)
            {
                var point = Points[i];
                var row   = view.Rows[i];
                row.SetValue(InputColumn, $"IN{i + 1}");
                row.SetValue(PanelColumn, "?");
                SetRow(row, point);
            }

            //Value changed handles
            view.AddChangedHandler(UnitColumn, TViewUtilities.ChangeValue,
                                   AutoManualColumn, AutoManual.Manual);
            view.AddChangedHandler(ValueColumn, TViewUtilities.ChangeValue,
                                   AutoManualColumn, AutoManual.Manual);

            //Validation
            view.AddValidation(DescriptionColumn, TViewUtilities.ValidateString, 21);
            view.AddValidation(LabelColumn, TViewUtilities.ValidateString, 9);
            view.AddValidation(ValueColumn, TViewUtilities.ValidateValue,
                               ValueColumn, UnitColumn, CustomUnits);
            view.AddValidation(UnitColumn, TViewUtilities.ValidateValue,
                               ValueColumn, UnitColumn, CustomUnits);
            view.AddValidation(CalibrationColumn, TViewUtilities.ValidateDouble);
            view.AddValidation(FilterColumn, TViewUtilities.ValidateInteger);
            view.Validate();
        }
Пример #3
0
        public VariablesForm(List <VariablePoint> points, CustomUnits customUnits = null)
        {
            if (points == null)
            {
                throw new ArgumentNullException(nameof(points));
            }

            Points      = points;
            CustomUnits = customUnits;

            InitializeComponent();

            //User input handles
            view.AddEditHandler(AutoManualColumn, TViewUtilities.EditEnum <AutoManual>);
            view.AddEditAction(ValueColumn, TViewUtilities.EditValue,
                               UnitColumn, RangeColumn, CustomUnits);
            view.AddEditAction(UnitColumn, TViewUtilities.EditUnitsColumn,
                               ValueColumn, UnitColumn, RangeColumn,
                               CustomUnits, new Func <Unit, bool>(unit => unit.IsVariableAnalog()));
            view.AddEditHandler(StatusColumn, TViewUtilities.EditEnum <OffOn>);

            //Value changed handles
            view.AddChangedHandler(StatusColumn, TViewUtilities.ChangeColor, Color.Red, Color.Blue);

            //Formating
            view.AddFormating(UnitColumn, o => ((Unit)o).GetOffOnName(CustomUnits));

            //Show points
            view.Rows.Clear();
            view.Rows.Add(Points.Count);
            for (var i = 0; i < Points.Count; ++i)
            {
                var point = Points[i];
                var row   = view.Rows[i];

                //Read only
                row.SetValue(NumberColumn, $"VAR{i + 1}");

                SetRow(row, point);
            }

            //Value changed handles
            view.AddChangedHandler(UnitColumn, TViewUtilities.ChangeValue,
                                   AutoManualColumn, AutoManual.Manual);
            view.AddChangedHandler(ValueColumn, TViewUtilities.ChangeValue,
                                   AutoManualColumn, AutoManual.Manual);

            //Validation
            view.AddValidation(DescriptionColumn, TViewUtilities.ValidateString, 21);
            view.AddValidation(LabelColumn, TViewUtilities.ValidateString, 9);
            view.AddValidation(ValueColumn, TViewUtilities.ValidateValue,
                               ValueColumn, UnitColumn, CustomUnits);
            view.AddValidation(UnitColumn, TViewUtilities.ValidateValue,
                               ValueColumn, UnitColumn, CustomUnits);
            view.Validate();
            Vars = view;
        }
 public static VariableValue GetVariableValue(DataGridViewRow row,
                                              DataGridViewColumn value,
                                              DataGridViewColumn units,
                                              DataGridViewColumn range,
                                              CustomUnits customUnits) =>
 new VariableValue(
     row.GetValue <string>(value),
     row.GetValue <Unit>(units),
     customUnits,
     row.GetValue <int>(range));
Пример #5
0
        public void VariableVariantToFromTest(VariableValue value, CustomUnits customUnits)
        {
            var tempValue = new VariableValue(value.ToString(), value.Unit, customUnits, value.MaxRange);

            ObjectAssert.AreEqual(value, tempValue,
                                  $@"Variable value toFrom string test failed.
Value.ToString(): {value.ToString()}
Value.ToFromToString(): {tempValue.ToString()}
");
        }
        public SelectUnitsForm(
            Unit selectedUnit                 = Unit.Unused,
            CustomUnits customUnits           = null,
            Func <Unit, bool> analogPredicate = null)
        {
            InitializeComponent();

            SelectedUnit    = selectedUnit;
            CustomUnits     = customUnits;
            AnalogPredicate = analogPredicate;

            UpdateUnits();
        }
        public ControllersForm(List <ControllerPoint> points, CustomUnits customUnits = null)
        {
            if (points == null)
            {
                throw new ArgumentNullException(nameof(points));
            }

            Points      = points;
            CustomUnits = customUnits;

            InitializeComponent();

            //User input handles
            view.AddEditHandler(AutoManualColumn, TViewUtilities.EditEnum <AutoManual>);
            view.AddEditHandler(ActionColumn, TViewUtilities.EditEnum <DirectReverse>);
            view.AddEditHandler(TimeColumn, TViewUtilities.EditEnum <Periodicity>);

            //Cell changed handles
            view.AddChangedHandler(UnitsColumn, TViewUtilities.ChangeValue,
                                   AutoManualColumn, AutoManual.Manual);
            view.AddChangedHandler(ValueColumn, TViewUtilities.ChangeValue,
                                   AutoManualColumn, AutoManual.Manual);

            //Formating
            view.AddFormating(ActionColumn, o => ((DirectReverse)o).GetName());

            //Show points
            view.Rows.Clear();
            view.Rows.Add(Points.Count);
            for (var i = 0; i < Points.Count; ++i)
            {
                var point = Points[i];
                var row   = view.Rows[i];
                row.SetValue(NumberColumn, $"{i + 1}");
                SetRow(row, point);
            }

            //Validation
            view.Validate();
        }
        public EditCustomUnitsForm(CustomUnits customUnits)
        {
            InitializeComponent();

            CustomUnits = customUnits;

            //User input handles
            digitalView.AddEditHandler(DirectColumn, TViewUtilities.EditBoolean);

            digitalView.Rows.Clear();
            digitalView.Rows.Add(CustomUnits.Digital.Count);
            for (var i = 0; i < CustomUnits.Digital.Count; ++i)
            {
                var point = CustomUnits.Digital[i];
                var row   = digitalView.Rows[i];
                row.SetValue(NumberColumn, $"{i + 1}");
                row.SetValue(OffNameColumn, point.DigitalUnitsOff);
                row.SetValue(OnNameColumn, point.DigitalUnitsOn);
                row.SetValue(DirectColumn, point.Direct);
            }

            //Validation
            digitalView.AddValidation(OffNameColumn, TViewUtilities.ValidateString, 12);
            digitalView.AddValidation(OnNameColumn, TViewUtilities.ValidateString, 12);
            digitalView.Validate();

            analogView.Rows.Clear();
            analogView.Rows.Add(CustomUnits.Analog.Count);
            for (var i = 0; i < CustomUnits.Analog.Count; ++i)
            {
                var point = CustomUnits.Analog[i];
                var row   = analogView.Rows[i];
                row.SetValue(AnalogNumberColumn, $"{i + 1}");
                row.SetValue(NameColumn, point.Name);
            }

            //Validation
            analogView.AddValidation(NameColumn, TViewUtilities.ValidateString, 20);
            analogView.Validate();
        }
Пример #9
0
        public void BaseTest(byte[] actualBytes, VariablePoint expected, FileVersion version, CustomUnits customUnits = null)
        {
            var actual = new VariablePoint(actualBytes, 0, version);

            actual.Value.CustomUnits = customUnits;
            BytesAssert.AreEqual(actual.ToBytes(), expected.ToBytes());
            BytesAssert.AreEqual(actualBytes, expected.ToBytes());
            ObjectAssert.AreEqual(actual, expected);
        }
        public OutputsForm(List <OutputPoint> points, CustomUnits customUnits = null)
        {
            if (points == null)
            {
                throw new ArgumentNullException(nameof(points));
            }

            Points      = points;
            CustomUnits = customUnits;

            InitializeComponent();

            //User input handles
            view.AddEditHandler(AutoManualColumn, TViewUtilities.EditEnum <AutoManual>);
            view.AddEditHandler(HOASwitchColumn, TViewUtilities.EditEnum <SwitchStatus>);
            view.AddEditAction(ValueColumn, TViewUtilities.EditValue,
                               UnitColumn, RangeColumn, CustomUnits);
            view.AddEditAction(UnitColumn, TViewUtilities.EditUnitsColumn,
                               ValueColumn, UnitColumn, RangeColumn,
                               CustomUnits, new Func <Unit, bool>(unit => unit.IsOutputAnalog()),
                               RangeTextColumn);
            view.AddEditHandler(StatusColumn, TViewUtilities.EditEnum <OffOn>);

            //Value changed handles
            view.AddChangedHandler(StatusColumn, TViewUtilities.ChangeColor,
                                   Color.Red, Color.Blue);

            //Formating
            view.AddFormating(UnitColumn, o => ((Unit)o).GetUnitName(CustomUnits));
            view.AddFormating(RangeTextColumn, o => ((Unit)o).GetRange(CustomUnits));

            //Show points
            view.Rows.Clear();
            view.Rows.Add(Points.Count);
            for (var i = 0; i < Points.Count; ++i)
            {
                var point = Points[i];
                var row   = view.Rows[i];
                row.SetValue(OutputColumn, $"OUT{i + 1}");
                row.SetValue(PanelColumn, "?");
                SetRow(row, point);
            }

            //Value changed handles
            view.AddChangedHandler(UnitColumn, TViewUtilities.ChangeValue,
                                   AutoManualColumn, AutoManual.Manual);
            view.AddChangedHandler(ValueColumn, TViewUtilities.ChangeValue,
                                   AutoManualColumn, AutoManual.Manual);

            //Validation
            view.AddValidation(DescriptionColumn, TViewUtilities.ValidateString, 21);
            view.AddValidation(LabelColumn, TViewUtilities.ValidateString, 9);
            view.AddValidation(ValueColumn, TViewUtilities.ValidateValue,
                               ValueColumn, UnitColumn, CustomUnits);
            view.AddValidation(UnitColumn, TViewUtilities.ValidateValue,
                               ValueColumn, UnitColumn, CustomUnits);
            view.AddValidation(LowVColumn, TViewUtilities.ValidateInteger);
            view.AddValidation(HighVColumn, TViewUtilities.ValidateInteger);
            view.AddValidation(PWMPeriodColumn, TViewUtilities.ValidateInteger);
            view.Validate();
        }