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); }
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); }
private void SetRow(DataGridViewRow row, VariablePoint point) { if (row == null || point == null) { return; } row.SetValue(DescriptionColumn, point.Description); row.SetValue(AutoManualColumn, point.AutoManual); row.SetCell(ValueColumn, TViewUtilities.GetValueCellForUnit( point.Value.ToString(), point.Value.Unit)); row.SetValue(UnitColumn, point.Value.Unit); row.SetValue(RangeColumn, point.Value.Value); row.SetValue(StatusColumn, point.Control); row.SetValue(LabelColumn, point.Label); }
public void VariablePoint_Dos_Analog() { var list = new List <byte>(); list.AddRange("Description".ToBytes(21)); list.AddRange("Label".ToBytes(9)); list.AddRange(5000.ToBytes()); //Value list.Add(new [] { true, true, true }.ToBits()); //AutoManual DigitalAnalog Control list.Add((byte)Unit.DegreesC); //Unit var expected = new VariablePoint("Description", "Label", FileVersion.Dos); expected.Value = new VariableValue("5.000", Unit.DegreesC); expected.AutoManual = AutoManual.Manual; expected.DigitalAnalog = DigitalAnalog.Analog; expected.Control = OffOn.On; BaseTest(list.ToArray(), expected, FileVersion.Dos); }
public void VariablePoint_Rev6_Time() { var list = new List <byte>(); list.AddRange("TEST RUN TIMER\0\0\0\0\0\0\0TESTTIM\0\0".ToBytes()); list.AddRange(13509000.ToBytes()); //Value list.Add(0); //AutoManual list.Add(1); //DigitalAnalog list.Add(1); //Control list.Add(2); //Unused list.Add(20); //Unit var expected = new VariablePoint("TEST RUN TIMER", "TESTTIM"); expected.Value = new VariableValue("03:45:09", Unit.Time); expected.AutoManual = AutoManual.Automatic; expected.DigitalAnalog = DigitalAnalog.Analog; expected.Control = OffOn.On; BaseTest(list.ToArray(), expected, FileVersion.Rev6); }
public void VariablePoint_Rev6_Analog() { var list = new List <byte>(); list.AddRange("PUMP SPEED\0\0\0\0\0\0\0\0\0\0\0PMPSPEED\0".ToBytes()); list.AddRange(40000.ToBytes()); //Value list.Add(0); //AutoManual list.Add(1); //DigitalAnalog list.Add(0); //Control list.Add(2); //Unused list.Add(22); //Unit var expected = new VariablePoint("PUMP SPEED", "PMPSPEED"); expected.Value = new VariableValue("40.000", Unit.Percents); expected.AutoManual = AutoManual.Automatic; expected.DigitalAnalog = DigitalAnalog.Analog; expected.Control = OffOn.Off; BaseTest(list.ToArray(), expected, FileVersion.Rev6); }
public void VariablePoint_Rev6_Digital() { var list = new List <byte>(); list.AddRange("START TEST FLAG\0\0\0\0\0\0INIT\0\0\0\0\0".ToBytes()); list.AddRange(0.ToBytes()); //Value list.Add(0); //AutoManual list.Add(0); //DigitalAnalog list.Add(0); //Control list.Add(2); //Unused list.Add(1); //Unit var expected = new VariablePoint("START TEST FLAG", "INIT"); expected.Value = new VariableValue(false, Unit.OffOn, null, 1000); expected.AutoManual = AutoManual.Automatic; expected.DigitalAnalog = DigitalAnalog.Digital; expected.Control = OffOn.Off; BaseTest(list.ToArray(), expected, FileVersion.Rev6); }
/// <summary> /// Add a variable control point info /// </summary> /// <param name="variable">VariablePoint</param> /// <param name="index">Index</param> public void Add(VariablePoint variable, int index) { try { ControlPointInfo newCPInfo = new ControlPointInfo { ControlPointName = "VAR" + index, Label = variable.Label, FullLabel = variable.Description, Type = IdentifierTypes.VARS, Value = variable.Value.ToString(), Units = variable.Value.Unit.GetUnitsNames(null).OffOnName, AutoManual = variable.AutoManual == 0 ? "Auto" : "Manual", Index = (short)index }; Variables.Add(newCPInfo); } catch (Exception ex) { ExceptionHandler.Show(ex, "Addition of new Variable to ControlPointsInfo"); } }
public void Prg_BTUMeter() { var path = TestUtilities.GetFullPathForPrgFile("BTUMeter.prg"); var prg = Prg.Load(path); ObjectAssert.AreEqual(new CustomDigitalUnitsPoint(false, "TANK1", "TANK2"), prg.CustomUnits.Digital[0]); //Inputs { //IN1 var expected = new InputPoint { Description = "TANK2 TOP", AutoManual = AutoManual.Automatic, Value = new VariableValue(0.683, Unit.PercentsVolts5), CalibrationH = 0.0, CalibrationL = 0.0, CalibrationSign = Sign.Negative, Control = OffOn.On, CustomUnits = null, DigitalAnalog = DigitalAnalog.Analog, FileVersion = FileVersion.Rev6, Filter = 1, Status = InputStatus.Normal, Jumper = Jumper.To5V, Label = "T2_TOP", SubNumber = 0.1, //Decom = 32 }; ObjectAssert.AreEqual(expected, prg.Inputs[0]); //IN2 expected = new InputPoint { Description = "TANK2 BOT", AutoManual = AutoManual.Automatic, Value = new VariableValue(true, Unit.LowHigh, null, 1000), CalibrationH = 0.0, CalibrationL = 0.0, CalibrationSign = Sign.Negative, Control = OffOn.On, CustomUnits = null, DigitalAnalog = DigitalAnalog.Digital, FileVersion = FileVersion.Rev6, Filter = 1, Status = InputStatus.Normal, Jumper = Jumper.Thermistor, Label = "T2_BOT", SubNumber = 0.1 }; ObjectAssert.AreEqual(expected, prg.Inputs[1]); //IN3 expected = new InputPoint { Description = "IN 3", AutoManual = AutoManual.Automatic, Value = new VariableValue(19.824, Unit.Psi20), CalibrationH = 0.0, CalibrationL = 0.0, CalibrationSign = Sign.Negative, Control = OffOn.On, CustomUnits = null, DigitalAnalog = DigitalAnalog.Analog, FileVersion = FileVersion.Rev6, Filter = 32, Status = InputStatus.Normal, Jumper = Jumper.Thermistor, Label = "IN3", SubNumber = 0.1 }; ObjectAssert.AreEqual(expected, prg.Inputs[2]); } //Outputs { //OUT1 var expected = new OutputPoint() { Description = "VALVE LEFT", AutoManual = AutoManual.Manual, HwSwitchStatus = SwitchStatus.Auto, Value = new VariableValue(true, Unit.OffOn, null, 1000), LowVoltage = 0, HighVoltage = 0, PwmPeriod = 0, Control = OffOn.On, CustomUnits = null, DigitalAnalog = DigitalAnalog.Digital, FileVersion = FileVersion.Rev6, Label = "VAL_LEFT", SubNumber = 0.1 }; ObjectAssert.AreEqual(expected, prg.Outputs[0]); //OUT2 expected = new OutputPoint() { Description = "VALVE RIGHT", AutoManual = AutoManual.Automatic, HwSwitchStatus = SwitchStatus.Auto, Value = new VariableValue(true, Unit.OffOn, null, 1000), LowVoltage = 0, HighVoltage = 0, PwmPeriod = 0, Control = OffOn.On, CustomUnits = null, DigitalAnalog = DigitalAnalog.Digital, FileVersion = FileVersion.Rev6, Label = "VAL_RIT", SubNumber = 0.1 }; ObjectAssert.AreEqual(expected, prg.Outputs[1]); } //Variables { //VAR1 var expected = new VariablePoint() { Description = "START TEST FLAG", AutoManual = AutoManual.Automatic, Value = new VariableValue(false, Unit.OffOn, null, 1000), Control = OffOn.Off, DigitalAnalog = DigitalAnalog.Digital, FileVersion = FileVersion.Rev6, Label = "INIT" }; ObjectAssert.AreEqual(expected, prg.Variables[0]); //VAR10 expected = new VariablePoint() { Description = "NOW FILLING", AutoManual = AutoManual.Automatic, Value = new VariableValue(false, Unit.CustomDigital1, null, 2000), Control = OffOn.Off, DigitalAnalog = DigitalAnalog.Digital, FileVersion = FileVersion.Rev6, Label = "FILLTANK", }; ObjectAssert.AreEqual(expected, prg.Variables[9]); } //Program codes { //var expected = new ProgramCode() //{ // Code = new byte[2000], // FileVersion = FileVersion.Rev6 //}; //ObjectAssert.AreEqual(expected, prg.ProgramCodes[0]); //Console.WriteLine(prg.ProgramCodes[0].PropertiesText()); //foreach (var line in prg.ProgramCodes[0].Lines) //{ //Console.WriteLine(line.GetString()); //} //Console.WriteLine(DebugUtilities.CompareBytes(prg.ProgramCodes[0].Code, // prg.ProgramCodes[0].Code, onlyDif: false)); } }