diff --git a/TBF/Rig/ControlBoard/Legacy/ControlBoardDev.cs b/TBF/Rig/ControlBoard/Legacy/ControlBoardDev.cs index f40e5dec2..727bc6e2f 100644 --- a/TBF/Rig/ControlBoard/Legacy/ControlBoardDev.cs +++ b/TBF/Rig/ControlBoard/Legacy/ControlBoardDev.cs @@ -299,24 +299,24 @@ namespace TBF.Rig.ControlBoard.Legacy public void UpdateWeights() { /// Mettler-Toledo scales - for (int i = 0; i < MettlerToledo.Standard.BalanceDev.BalancesCount; i++) - { - controlCom.SetWeight(i, MettlerToledo.Standard.BalanceDev.Masses[i]); - } + //for (int i = 0; i < MettlerToledo.Standard.BalanceDev.BalancesCount; i++) + //{ + // controlCom.SetWeight(i, MettlerToledo.Standard.BalanceDev.Masses[i]); + //} - /// Mettler-Toledo-multi scales (Badger Brno, ...) - for (int i = 0; i < MettlerToledo.Multi.BalanceDev.BalancesCount; i++) - { - controlCom.SetWeight(i, MettlerToledo.Multi.BalanceDev.Masses[i]); - } + ///// Mettler-Toledo-multi scales (Badger Brno, ...) + //for (int i = 0; i < MettlerToledo.Multi.BalanceDev.BalancesCount; i++) + //{ + // controlCom.SetWeight(i, MettlerToledo.Multi.BalanceDev.Masses[i]); + //} - /// Tanks (CEVAK, ...) - int firstTankIx = Math.Max(MettlerToledo.Standard.BalanceDev.BalancesCount, MettlerToledo.Multi.BalanceDev.BalancesCount); + ///// Tanks (CEVAK, ...) + //int firstTankIx = Math.Max(MettlerToledo.Standard.BalanceDev.BalancesCount, MettlerToledo.Multi.BalanceDev.BalancesCount); - for (int i = 0; i < Various.TankWithLevelMsrmnt.Tank.TanksCount; i++) - { - controlCom.SetWeight(firstTankIx + i, Various.TankWithLevelMsrmnt.Tank.Tanks[i].Volume); - } + //for (int i = 0; i < Various.TankWithLevelMsrmnt.Tank.TanksCount; i++) + //{ + // controlCom.SetWeight(firstTankIx + i, Various.TankWithLevelMsrmnt.Tank.Tanks[i].Volume); + //} } diff --git a/TBF/Rig/MettlerToledo/Standard/BalanceDev.cs b/TBF/Rig/MettlerToledo/Standard/BalanceDev.cs index 035cb49d5..5d9655642 100644 --- a/TBF/Rig/MettlerToledo/Standard/BalanceDev.cs +++ b/TBF/Rig/MettlerToledo/Standard/BalanceDev.cs @@ -31,44 +31,24 @@ namespace TBF.Rig.MettlerToledo.Standard /// public class BalanceDev : TankDraining, IDevice, GenericDevices.IScale, GenericDevices.IHasCalendarEvents, IDrawingItCmpntWithMeasuredVal { - /// - /// Info: StartMassMeasurement() and "Balnce response = .., Mass = ..." - /// Warn: Start measurement when busy is true - /// private static readonly ILog log = LogManager.GetLogger(typeof(BalanceDev)); - public override string ToString() { return string.Format("MettlerToledo.Standard.Balance({0})", Cfg.ToString(-1)); } + public override string ToString() { return string.Format("{0}({1})", ClassName, Cfg.ToString(-1)); } + /// Configuration and wrappers protected readonly BalanceCfg balanceCfg; - public IDrawingItem DrawingItem { get { return balanceCfg as IDrawingItem; } } - - /// - /// Enumeration of balances via static fields and methods - /// - static int nextBalanceIdx = 0; - public static new void ResetStaticProperties() - { - nextBalanceIdx = 0; - } - public static int BalancesCount { get { return nextBalanceIdx; } } - public static BalanceDev[] Balances; - public static double[] Masses; - /// - protected int balanceNr; /// 0-based balance number - - protected SerialPort serialPort; - protected StringBuilder stringBuilder; - - public int ScaleNr { get { return balanceNr; } } + /// public double Capacity { get { return balanceCfg.Capacity; } } public int EmptyTimeSec { get { return balanceCfg.DrainTimeSec; } } - public IValve DrainValve2 { get { return null; } } - - /// Buoyancy + public IValve DrainValve2 { get { return null; } } public float BuoyancyTemp { get { return balanceCfg.BuoyancyTemp; } } public float BuoyancyPress { get { return balanceCfg.BuoyancyPress; } } public float BuoyancyHumi { get { return balanceCfg.BuoyancyHumi; } } public double WeightStandardDensity { get { return balanceCfg.WeightStandardDensity; } } + /// + public IDrawingItem DrawingItem { get { return balanceCfg as IDrawingItem; } } + protected SerialPort serialPort; + protected StringBuilder stringBuilder; /// The state of the mass measurement public Activity Activity; @@ -104,18 +84,6 @@ namespace TBF.Rig.MettlerToledo.Standard : base(cfg) { balanceCfg = cfg as BalanceCfg; - - balanceNr = nextBalanceIdx++; - Masses = new double[nextBalanceIdx]; /// (re)initialize the static array of masses of all balances - /// - if (Balances == null || Balances.Length < nextBalanceIdx) - { - BalanceDev[] balancesSoFar = Balances; - Balances = new BalanceDev[nextBalanceIdx]; - if (balancesSoFar != null) for (int i = 0; i < balancesSoFar.Length; i++) Balances[i] = balancesSoFar[i]; - Balances[nextBalanceIdx - 1] = this; - } - log.Warn(this.ToString()); } @@ -123,24 +91,29 @@ namespace TBF.Rig.MettlerToledo.Standard { base.Initalize(); /// Initializes DrainValve, etc., should be called in DebugMode.Simulate - if (balanceCfg.DebugLevel == DebugMode.Simulate) return; + Activity = Activity.Idle; + msrmntState = MsrmntState.Failed; /// Data not valid yet + MsrmntTime = 0; + stringBuilder = new StringBuilder(40); if (balanceCfg.CalibValidDate != DateTime.MinValue && balanceCfg.CalibValidDate.Date < DateTime.Now.Date) { throw new Exception(string.Format("{0}: {1}", Name, Strings.Calibration_certificate_validity_expired)); } - Activity = Activity.Idle; - msrmntState = MsrmntState.Failed; /// Data not valid yet - MsrmntTime = 0; - - stringBuilder = new StringBuilder(40); - string comPortName = "COM" + balanceCfg.ComPortNr.ToString(); - serialPort = new SerialPort(comPortName, balanceCfg.BaudRate, balanceCfg.Parity, balanceCfg.DataBits, balanceCfg.StopBits); - serialPort.Handshake = balanceCfg.Handshake; - serialPort.Open(); - - log.FatalFormat("Successfully initialized device {0}", Name); + if (balanceCfg.DebugLevel == DebugMode.Normal) + { + string comPortName = "COM" + balanceCfg.ComPortNr.ToString(); + serialPort = new SerialPort(comPortName, balanceCfg.BaudRate, balanceCfg.Parity, balanceCfg.DataBits, balanceCfg.StopBits); + serialPort.Handshake = balanceCfg.Handshake; + serialPort.Open(); + log.FatalFormat("{0} - Device successfully initialized", Name); + } + else + { + serialPort = null; + log.FatalFormat("{0} - Device simulated", Name); + } } @@ -315,7 +288,7 @@ namespace TBF.Rig.MettlerToledo.Standard if (balanceCfg.DebugLevel == DebugMode.Simulate) { - Masses[balanceNr] = 123.456; + mass = 123.456; msrmntState = MsrmntState.Valid; msrmntTimeStamp = StateMachine.Time; return; @@ -371,7 +344,6 @@ namespace TBF.Rig.MettlerToledo.Standard if (field.Length == 1 && field[0] == "ZA") /// Zero when stable { mass = 0; - Masses[balanceNr] = mass; //msrmntState = MsrmntState.Valid; log.InfoFormat("{0} - Balance response = \"{1}\"", Name, received); return; @@ -388,7 +360,6 @@ namespace TBF.Rig.MettlerToledo.Standard if (field.Length == 2 && field[1] == "A") { mass = 0; - Masses[balanceNr] = mass; //msrmntState = MsrmntState.Valid; log.InfoFormat("{0} - Balance response = \"{1}\"", Name, received); return; @@ -408,7 +379,6 @@ namespace TBF.Rig.MettlerToledo.Standard out mass)) { mass = Config.Units.ConvertFrom(ParseUnit(field[2]), mass); - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; log.InfoFormat("{0} - Balance response = \"{1}\", Mass = {2}", Name, received, mass); } @@ -419,14 +389,12 @@ namespace TBF.Rig.MettlerToledo.Standard out mass)) { mass = Config.Units.ConvertFrom(ParseUnit(field[3]), mass); - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; log.InfoFormat("{0} - Balance response = \"{1}\", Mass = {2}", Name, received, mass); } else if (field.Length == 2 && field[1] == "-") { mass = 0; - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; log.InfoFormat("{0} - Balance response = \"{1}\", Mass = {2}", Name, received, mass); } @@ -447,14 +415,12 @@ namespace TBF.Rig.MettlerToledo.Standard out mass)) { mass = Config.Units.ConvertFrom(ParseUnit(field[2]), mass); - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; log.InfoFormat("{0} - Balance response = \"{1}\", Mass = {2}", Name, received, mass); } else if (field.Length == 2 && field[1] == "-") { mass = 0; - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; log.InfoFormat("{0} - Balance response = \"{1}\", Mass = {2}", Name, received, mass); } diff --git a/TBF/Rig/MettlerToledo/Standard/BalanceNewDev.cs b/TBF/Rig/MettlerToledo/Standard/BalanceNewDev.cs index de08eeb22..5c333b309 100644 --- a/TBF/Rig/MettlerToledo/Standard/BalanceNewDev.cs +++ b/TBF/Rig/MettlerToledo/Standard/BalanceNewDev.cs @@ -17,25 +17,19 @@ namespace TBF.Rig.MettlerToledo.Standard /// public class BalanceNewDev : BalanceDev, IDevice, GenericDevices.IScale { - /// - /// Info: StartMassMeasurement() and "Balnce response = .., Mass = ..." - /// Warn: Start measurement when busy is true - /// private static readonly ILog log = LogManager.GetLogger(typeof(BalanceNewDev)); - public override string ToString() { return string.Format("MettlerToledo.Standard.BalanceNew({0})", Cfg.ToString(-1)); } + public override string ToString() { return string.Format("{0}({1})", ClassName, Cfg.ToString(-1)); } /// Serial number after GetSerialNumber() when MsrmntState == MsrmntState.Valid public string SerialNumber { get { return serialNumber; } } string serialNumber; - public BalanceNewDev() - { - } + + public BalanceNewDev() { } public BalanceNewDev(Generic.IComponentCfg cfg) : base(cfg) { - log.Warn(this.ToString()); } /// @@ -68,7 +62,6 @@ namespace TBF.Rig.MettlerToledo.Standard if (balanceCfg.DebugLevel == DebugMode.Simulate) { mass = 0.456; - Masses[balanceNr] = mass; serialNumber = "1234567890"; msrmntState = MsrmntState.Valid; msrmntTimeStamp = StateMachine.Time; @@ -140,7 +133,6 @@ namespace TBF.Rig.MettlerToledo.Standard if (field.Length == 2 && field[1] == "A") { mass = 0; - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; log.WarnFormat("{0} - Balance response = {1}", Name, received.Replace("\r", "").Replace("\n", "")); @@ -159,7 +151,6 @@ namespace TBF.Rig.MettlerToledo.Standard CultureInfo.InvariantCulture, out mass)) { mass = Config.Units.ConvertFrom(ParseUnit(field[3]), mass); - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; log.InfoFormat("{0} - Balance response = {1}, Mass = {2}", Name, received.Replace("\r", "").Replace("\n", ""), mass); @@ -240,7 +231,6 @@ namespace TBF.Rig.MettlerToledo.Standard if (field.Length >= 2 && field[1] == "I") { mass = balanceCfg.Capacity; - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; //msrmntState = MsrmntState.Overload; log.WarnFormat("{0} - Balance response = \"{1}\", Overload.", Name, diff --git a/TBF/Rig/MettlerToledo/Standard/BalanceOld.cs b/TBF/Rig/MettlerToledo/Standard/BalanceOld.cs index a3b1e00ce..ec139ac0e 100644 --- a/TBF/Rig/MettlerToledo/Standard/BalanceOld.cs +++ b/TBF/Rig/MettlerToledo/Standard/BalanceOld.cs @@ -20,19 +20,15 @@ namespace TBF.Rig.MettlerToledo.Standard /// public class BalanceOld : BalanceDev, IDevice, GenericDevices.IScale { - /// - /// Info: StartMassMeasurement() and "Balnce response = .., Mass = ..." - /// Warn: Start measurement when busy is true - /// private static readonly ILog log = LogManager.GetLogger(typeof(BalanceOld)); - public override string ToString() { return string.Format("MettlerToledo.Standard.BalanceOld({0})", Cfg.ToString(-1)); } + public override string ToString() { return string.Format("{0}({1})", ClassName, Cfg.ToString(-1)); } + public BalanceOld() { } public BalanceOld(Generic.IComponentCfg cfg) : base(cfg) { - log.Warn(this.ToString()); } @@ -52,7 +48,6 @@ namespace TBF.Rig.MettlerToledo.Standard if (balanceCfg.DebugLevel == DebugMode.Simulate) { mass = 123.456; - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; msrmntTimeStamp = StateMachine.Time; return; @@ -105,7 +100,6 @@ namespace TBF.Rig.MettlerToledo.Standard if (field.Length == 2 && field[1] == "A") { mass = 0; - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; log.InfoFormat("{0} - Balance response = {1}", Name, received.Replace("\r", "").Replace("\n", "")); @@ -124,7 +118,6 @@ namespace TBF.Rig.MettlerToledo.Standard CultureInfo.InvariantCulture, out mass)) { mass = Config.Units.ConvertFrom(ParseUnit(field[3]), mass); - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; log.InfoFormat("{0} - Balance response = {1}, Mass = {2}", Name, received.Replace("\r", "").Replace("\n", ""), mass); @@ -134,7 +127,6 @@ namespace TBF.Rig.MettlerToledo.Standard CultureInfo.InvariantCulture, out mass)) { mass = Config.Units.ConvertFrom(ParseUnit(field[3]), mass); - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; log.InfoFormat("{0} - Balance response = {1}, Mass = {2}", Name, received.Replace("\r", "").Replace("\n", ""), mass); @@ -142,7 +134,6 @@ namespace TBF.Rig.MettlerToledo.Standard else if (field.Length == 2 && field[1] == "-") { mass = 0; - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; log.InfoFormat("{0} - Balance response = {1}, Mass = {2}", Name, received.Replace("\r", "").Replace("\n", ""), mass); @@ -150,7 +141,6 @@ namespace TBF.Rig.MettlerToledo.Standard else if (field.Length == 2 && field[1] == "+") { mass = Capacity; - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; log.InfoFormat("{0} - Balance response = {1}, Overload", Name, received.Replace("\r", "").Replace("\n", "")); @@ -158,7 +148,6 @@ namespace TBF.Rig.MettlerToledo.Standard else if (field.Length >= 2 && field[1] == "I") { mass = balanceCfg.Capacity; - Masses[balanceNr] = mass; msrmntState = MsrmntState.Overload; log.InfoFormat("{0} - Balance response = {1}, Overload", Name, received.Replace("\r", "").Replace("\n", ""), mass); @@ -215,7 +204,6 @@ namespace TBF.Rig.MettlerToledo.Standard if (field.Length >= 2 && field[1] == "I") { mass = balanceCfg.Capacity; - Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; //msrmntState = MsrmntState.Overload; log.WarnFormat("{0} - Balance response = \"{1}\", Overload.", Name, diff --git a/TBF/UI/MainWnd.cs b/TBF/UI/MainWnd.cs index dc794730d..5e948709e 100644 --- a/TBF/UI/MainWnd.cs +++ b/TBF/UI/MainWnd.cs @@ -322,9 +322,10 @@ namespace TBF.UI /// Initialize bench control user interface(s) BenchControlPanel = new BenchControlPanel(); - BenchControlPanel.BalancesCount = TBF.Rig.MettlerToledo.Standard.BalanceDev.BalancesCount - + TBF.Rig.MettlerToledo.Multi.BalanceDev.BalancesCount - + TBF.Rig.Various.TankWithLevelMsrmnt.Tank.TanksCount; + BenchControlPanel.BalancesCount = TBF.Rig.StateMachine.Tank3 != null ? 3 + : TBF.Rig.StateMachine.Tank2 != null ? 2 + : TBF.Rig.StateMachine.Tank1 != null ? 1 + : 0; new System.ComponentModel.ComponentResourceManager(typeof(MainWnd)).ApplyResources(BenchControlPanel, "benchControlPanel"); BenchControlPanel.Name = "benchControlPanel"; rightHorizSplitContainer.Panel2.Controls.Add(BenchControlPanel);