diff --git a/Config/Data.cs b/Config/Data.cs index 8f0ed4ba3..0ee988496 100644 --- a/Config/Data.cs +++ b/Config/Data.cs @@ -44,7 +44,7 @@ namespace Config public const int CompoundWMsCount = 1; public const int HeatMetersCount = 0; public const int MaxPartNr = WMsCount / LineSize; -#elif DEWA_300 || FUZHOU_100 || ROMA_200 +#elif DEWA_300 || FUZHOU_100 || ROMA_200 || LUXEMBURG_40 public const int WMsCount = 10; public const int LineSize = 10; public const int CompoundWMsCount = 1; diff --git a/TBF/BenchControl/Elde/Common.cs b/TBF/BenchControl/Elde/Common.cs index 0273626ba..7d9e0a507 100644 --- a/TBF/BenchControl/Elde/Common.cs +++ b/TBF/BenchControl/Elde/Common.cs @@ -19,7 +19,7 @@ namespace TBF.BenchControl.Elde EnduranceCycleStop = 13, } -#if ALZIR_25 || BADGER_MALA_TRAT || BADGER_STREDNA_TRAT || BADGER_VELKA_TRAT || BAHRAIN_50 || BERLIN || CEVAK_200 || DEWA_300 || FEWA_50 || FILIPINY_50 || FUZHOU_100 || FUZHOU_300 || GELSENWASSER || GENESIS || HONGKONG_50 || IZRAEL_25 || IZRAEL_50 || IZRAEL_200 || JUZNA_AFRIKA_50 || KEMPNO_50 || KRAKOW_50 || MALTA_WSD25 || PETERSBURG_50 || PETERSBURG_200 || PUCHONG_200 || ROMA_200 || RUM_MOB || SENTEC || SLM_50 || SLM_150 || SLM_END || TORINO_50 || TURA_IPERL || TURA_IPERL_NEW || TURA_SPECIAL || WARSAW_END || ZAMBIA || ZODINO +#if ALZIR_25 || BADGER_MALA_TRAT || BADGER_STREDNA_TRAT || BADGER_VELKA_TRAT || BAHRAIN_50 || BERLIN || CEVAK_200 || DEWA_300 || FEWA_50 || FILIPINY_50 || FUZHOU_100 || FUZHOU_300 || GELSENWASSER || GENESIS || HONGKONG_50 || IZRAEL_25 || IZRAEL_50 || IZRAEL_200 || JUZNA_AFRIKA_50 || KEMPNO_50 || KRAKOW_50 || LUXEMBURG_40 || MALTA_WSD25 || PETERSBURG_50 || PETERSBURG_200 || PUCHONG_200 || ROMA_200 || RUM_MOB || SENTEC || SLM_50 || SLM_150 || SLM_END || TORINO_50 || TURA_IPERL || TURA_IPERL_NEW || TURA_SPECIAL || WARSAW_END || ZAMBIA || ZODINO public enum StatusP : ulong { RefFlowMeterMask = 0x7, /// bits 0,1,2 diff --git a/TBF/BenchControl/Elde/ControlBoardDev.cs b/TBF/BenchControl/Elde/ControlBoardDev.cs index 2c3e09494..dcebca259 100644 --- a/TBF/BenchControl/Elde/ControlBoardDev.cs +++ b/TBF/BenchControl/Elde/ControlBoardDev.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2013-2019 Sensus Slovensko a.s. +/// Copyright (c) 2013-2020 Sensus Slovensko a.s. /// using System; using System.Text; @@ -110,7 +110,15 @@ namespace TBF.BenchControl.Elde public byte MeretProtocol = 0; // Array length is the reference flowmeters count plus one -#if CEVAK_200 || DN100 || FUZHOU_150 || FUZHOU_300 || IZRAEL_200 || SENTEC +#if ALZIR_25 || BADGER_MALA_TRAT || BADGER_STREDNA_TRAT || BAHRAIN_50 || CEVAK_40 || FEWA_50 || FILIPINY_50 || FUZHOU_50 || FUZHOU_100 || HONGKONG_50 || IZRAEL_25 || JUZNA_AFRIKA_50 || KEMPNO_50 || KRAKOW_50 || LUXEMBURG_40 || MUNICH || MURES_40 || PETERSBURG_50 || SLM_50 || TORINO_50 || TORUN_50 || TURA_IPERL || TURA_IPERL_NEW || TURA_SPECIAL || ZAMBIA || ZODINO + public uint[,] RegValveCalib = new uint[8,2] {{100,500},{100,500},{100,500},{100,500},{100,500},{100,500},{100,500},{100,500}}; + #if IZRAEL_50 + public byte[] MeretRS485Address = new byte[6]; + #else + public byte[] MeretRS485Address = new byte[4]; + #endif + public float[] EtCalib = new float[5] { 1, 1, 1, 1, 1 }; +#elif CEVAK_200 || DN100 || FUZHOU_150 || FUZHOU_300 || IZRAEL_200 || SENTEC public uint[,] RegValveCalib = new uint[8,2] {{100,500},{100,500},{100,500},{100,500},{100,500},{100,500},{100,500},{100,500}}; public byte[] MeretRS485Address = new byte[4]; public float[] EtCalib = new float[6] { 1, 1, 1, 1, 1, 1 }; @@ -129,14 +137,6 @@ namespace TBF.BenchControl.Elde {100,500}, {100,500}, {100,500}, {100,500}, {100,500}, {100,500}, {100,500}, {100,500} }; public byte[] MeretRS485Address = new byte[5]; public float[] EtCalib = new float[8] { 1, 1, 1, 1, 1, 1, 1, 1 }; -#elif ALZIR_25 || BADGER_MALA_TRAT || BADGER_STREDNA_TRAT || BAHRAIN_50 || CEVAK_40 || FEWA_50 || FILIPINY_50 || FUZHOU_50 || FUZHOU_100 || HONGKONG_50 || IZRAEL_25 || JUZNA_AFRIKA_50 || KEMPNO_50 || KRAKOW_50 || MUNICH || MURES_40 || PETERSBURG_50 || SLM_50 || TORINO_50 || TORUN_50 || TURA_IPERL || TURA_IPERL_NEW || TURA_SPECIAL || ZAMBIA || ZODINO - public uint[,] RegValveCalib = new uint[8,2] {{100,500},{100,500},{100,500},{100,500},{100,500},{100,500},{100,500},{100,500}}; - #if IZRAEL_50 - public byte[] MeretRS485Address = new byte[6]; - #else - public byte[] MeretRS485Address = new byte[4]; - #endif - public float[] EtCalib = new float[5] { 1, 1, 1, 1, 1 }; #elif IZRAEL_50 || SLM_END public uint[,] RegValveCalib = new uint[8,2] {{100,500},{100,500},{100,500},{100,500},{100,500},{100,500},{100,500},{100,500}}; public byte[] MeretRS485Address = new byte[7]; /// Modbus addresses of Pr1, Pr2, Pr3, Pr4, Pr5, Pr6, T9 (Izrael) or Pr1, Pr2, Pr3, Pr4, T9, T10 (SLM END) diff --git a/TBF/BenchControl/Elde/ControlComWrap.cs b/TBF/BenchControl/Elde/ControlComWrap.cs index 787c0e40e..ab717c3a9 100644 --- a/TBF/BenchControl/Elde/ControlComWrap.cs +++ b/TBF/BenchControl/Elde/ControlComWrap.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2013-2016 Sensus Metering Systems +/// Copyright (c) 2013-2020 Sensus Metering Systems /// using System; using Dirichlet.Numerics; @@ -25,7 +25,7 @@ namespace TBF.BenchControl.Elde #else /// All newer benches public double ReferenceFreq { get { return 1000.0 * ctrlBrdComponent.referenceFreq[0]; } } /// Returns in [Hz] 0..2500, nom.=2000 - /// + /// /// /// In case of I11, I12 /// cBrd.referenceFreq[0] = I11 + I12 @@ -80,7 +80,7 @@ namespace TBF.BenchControl.Elde public UInt128 RRoute { get { return ctrlBrdComponent.rRoute; } } #endif -#if ALZIR_25 || BADGER_STREDNA_TRAT || BAHRAIN_50 || CEVAK_200 || DEWA_300 || FEWA_50 || FUZHOU_100 || FILIPINY_50 || GELSENWASSER || GENESIS || HONGKONG_50 || IZRAEL_25 || IZRAEL_50 || JUZNA_AFRIKA_50 || KEMPNO_50 || KRAKOW_50 || PUCHONG_200 || ROMA_200 || SENTEC || TURA_IPERL_NEW || ZAMBIA || ZODINO +#if ALZIR_25 || BADGER_STREDNA_TRAT || BAHRAIN_50 || CEVAK_200 || DEWA_300 || FEWA_50 || FUZHOU_100 || FILIPINY_50 || GELSENWASSER || GENESIS || HONGKONG_50 || IZRAEL_25 || IZRAEL_50 || JUZNA_AFRIKA_50 || KEMPNO_50 || KRAKOW_50 || LUXEMBURG_40 || PUCHONG_200 || ROMA_200 || SENTEC || TURA_IPERL_NEW || ZAMBIA || ZODINO public uint DivTime(int id) { return ctrlBrdComponent.divTime[id]; } public void SetDivLimit(int divNo, uint limLoPct, uint limHiPct) { @@ -140,7 +140,7 @@ namespace TBF.BenchControl.Elde public uint[] WMeterCont { get { return new uint[3]; } } /// Dummy #endif -#if ALZIR_25 || CEVAK_200 || FEWA_50 || FILIPINY_50 || FUZHOU_100 || IZRAEL_25 || IZRAEL_50 || JUZNA_AFRIKA_50 || KEMPNO_50 || KRAKOW_50 || ZAMBIA || ZODINO +#if ALZIR_25 || CEVAK_200 || FEWA_50 || FILIPINY_50 || FUZHOU_100 || IZRAEL_25 || IZRAEL_50 || JUZNA_AFRIKA_50 || KEMPNO_50 || KRAKOW_50 || LUXEMBURG_40 || ZAMBIA || ZODINO public float ValveOpenCloseTime { get { return ctrlBrdComponent.ValveMoveTime[0]; } } #else public float ValveOpenCloseTime { get { return 0.001f; } } @@ -167,34 +167,31 @@ namespace TBF.BenchControl.Elde } - /// /// Reference to the control board component - /// -#if DN100 - private ControlCom2VB.ControlCom2panel ctrlBrdComponent; -#elif FUZHOU_150 || MUNICH - private ControlComponent3Munich.UserControl1 ctrlBrdComponent; -#elif FUZHOU_300 - private ControlComponent3F300.UserControl1 ctrlBrdComponent; -#elif BERLIN || GELSENWASSER || GENESIS || IZRAEL_200 || PETERSBURG_200 || PUCHONG_200 || SLM_150 - private ControlComponent_Izrael2014.UserControl1 ctrlBrdComponent; -#else /// newer benches - private ControlComponent_Torino2015.UserControl1 ctrlBrdComponent; -#endif - + /// and /// /// Constructor that initializes the control board component reference /// /// #if DN100 + private ControlCom2VB.ControlCom2panel ctrlBrdComponent; + /// public ControlComWrap(ControlCom2VB.ControlCom2panel ctrlBrdComponent) #elif FUZHOU_150 || MUNICH - public ControlComWrap(ControlComponent3Munich.UserControl1 ctrlBrdComponent) + private ControlComponent3Munich.UserControl1 ctrlBrdComponent; + /// + public ControlComWrap(ControlComponent3Munich.UserControl1 ctrlBrdComponent) #elif FUZHOU_300 + private ControlComponent3F300.UserControl1 ctrlBrdComponent; + /// public ControlComWrap(ControlComponent3F300.UserControl1 ctrlBrdComponent) #elif BERLIN || GELSENWASSER || GENESIS || IZRAEL_200 || PETERSBURG_200 || PUCHONG_200 || SLM_150 + private ControlComponent_Izrael2014.UserControl1 ctrlBrdComponent; + /// public ControlComWrap(ControlComponent_Izrael2014.UserControl1 ctrlBrdComponent) #else /// all newer benches + private ControlComponent_Torino2015.UserControl1 ctrlBrdComponent; + /// public ControlComWrap(ControlComponent_Torino2015.UserControl1 ctrlBrdComponent) #endif { @@ -263,7 +260,7 @@ namespace TBF.BenchControl.Elde ctrlBrdComponent.ExternalCom = true; -#if ALZIR_25 || CEVAK_200 || FUZHOU_100 || IZRAEL_25 || SENTEC +#if ALZIR_25 || CEVAK_200 || FUZHOU_100 || IZRAEL_25 || LUXEMBURG_40 || SENTEC ctrlBrdComponent.SendCalibData(rvCalib, meretA, (byte)usedCom, tempCalib, etCalib, divEdge, balanceRange, meretProtocol); #else ctrlBrdComponent.SendCalibData(rvCalib, meretA, (byte)usedCom, tempCalib, etCalib, divEdge, balanceRange); @@ -431,7 +428,7 @@ namespace TBF.BenchControl.Elde (uint)regConst, (uint)shortImp, (uint)sendCommandArgs.StopDevs); -#elif ALZIR_25 || CEVAK_200 || FEWA_50 || FILIPINY_50 || FUZHOU_100 || HONGKONG_50 || IZRAEL_25 || IZRAEL_50 || JUZNA_AFRIKA_50 || SENTEC || ZAMBIA || ZODINO +#elif ALZIR_25 || CEVAK_200 || FEWA_50 || FILIPINY_50 || FUZHOU_100 || HONGKONG_50 || IZRAEL_25 || IZRAEL_50 || JUZNA_AFRIKA_50 || LUXEMBURG_40 ||SENTEC || ZAMBIA || ZODINO /// /// 64-bit route, prolonged method support /// diff --git a/TBF/BenchControl/TestMethods/DiverterTest/DiverterTestSeq.cs b/TBF/BenchControl/TestMethods/DiverterTest/DiverterTestSeq.cs index 31f8bf7e0..33a28a9f4 100644 --- a/TBF/BenchControl/TestMethods/DiverterTest/DiverterTestSeq.cs +++ b/TBF/BenchControl/TestMethods/DiverterTest/DiverterTestSeq.cs @@ -452,7 +452,7 @@ namespace TBF.BenchControl.TestMethods.DiverterTest //------------------------------------------------ Bridge.OnActivity(this, Strings.Test_in_progress); //------------------------------------------------ - State.Create(string.Format("{0}({1}) : Starting the test", test.Method, test.Name)) + State.Create(string.Format("{0}({1}) : Starting the diverter", test.Method, test.Name)) .AddOperation(checkUiOp) .AddOperations(readTempPressOps) .AddOperations(measureOperations) @@ -491,7 +491,6 @@ namespace TBF.BenchControl.TestMethods.DiverterTest .AddOperations(measureOperations) .AddOperation(readRegistersOp) .AddOperation(scale.ReadMassOp(ref Mass)) - //.AddOperation(cBrd.ReadDiverterTransitionOp(outPath.Diverter, CountWhenSendingRdDivCmd, CountWhenReadingDiv, true, DiverterStart, BatchRslts.Batch.BatchNr, test.Name, repetitionNr)) .AddOperation(cBrd.QueryMeasurementEndOp()) .AddOperation(processDataLoggingOp) .EnterState(); @@ -519,10 +518,32 @@ namespace TBF.BenchControl.TestMethods.DiverterTest Bridge.OnProcessData(this, new ProcessDataEventArgs(test, repetitionNr, Config.Entities.Progress.Test)); Bridge.OnTestProgress(this, new TestProgressEventArgs(test, repetitionNr, Config.Entities.Progress.Test)); - - if (e.Contains(Event.MeasurementCompleted)) break; } - while (!e.Contains(Event.Next)); /// 'Next' button can be used in Debug version + while (!e.Contains(Event.MeasurementCompleted) && !e.Contains(Event.Next)); /// 'Next' button can be used in Debug version + + State.Create(string.Format("{0}({1}) : Stopping the diverter", test.Method, test.Name)) + .AddOperation(checkUiOp) + .AddOperations(readTempPressOps) + .AddOperations(measureOperations) + .AddOperation(readRegistersOp) + .AddOperation(scale.ReadMassOp(ref Mass)) + .AddOperation(cBrd.StopPreviousOp()) + .AddOperation(processDataLoggingOp) + .EnterState(); + do { + e = StateMachine.WaitRunDevsRunOps(); + if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } + if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } + + RefFreq.Val = cBrd.ReferenceFreq; + RefFlow.Val = cBrd.ReferenceFlow; + + UpdateAllStatistics(StateMachine.Time); + + Bridge.OnProcessData(this, new ProcessDataEventArgs(test, repetitionNr, Config.Entities.Progress.Test)); + Bridge.OnTestProgress(this, new TestProgressEventArgs(test, repetitionNr, Config.Entities.Progress.Test)); + } + while (!e.Contains(Event.PreviousStopped) && !e.Contains(Event.Next)); /// 'Next' button can be used in Debug version LogProcessDataHeader(processDataLogger, string.Format("Delay {0}", divRepetNr)); diff --git a/TBF/UI/MainWnd.Designer.cs b/TBF/UI/MainWnd.Designer.cs index 364346d50..b133856cc 100644 --- a/TBF/UI/MainWnd.Designer.cs +++ b/TBF/UI/MainWnd.Designer.cs @@ -743,15 +743,15 @@ namespace TBF.UI #elif BADGER_MALA_TRAT || BADGER_STREDNA_TRAT || BADGER_VELKA_TRAT || CEVAK_200 || RUM_MOB || SENTEC || SLM_END || WARSAW_END private ControlComponent_Torino2015.UserControl1 ctrlBrdComponent; private TBF.UI.Process.ProcessTabPageCtrl6 processTabPageCtrl; -#elif ALZIR_25 || BAHRAIN_50 || CEVAK_40 || DEWA_300 || FEWA_50 || FILIPINY_50 || FUZHOU_50 || FUZHOU_100 || HONGKONG_50 || IZRAEL_25 || JUZNA_AFRIKA_50 || KEMPNO_50 || KRAKOW_50 || MALTA_WSD25 || MURES_40 || PETERSBURG_50 || ROMA_200 || TORINO_50 || TORUN_50 || ZAMBIA || ZODINO +#elif ALZIR_25 || BAHRAIN_50 || CEVAK_40 || DEWA_300 || FEWA_50 || FILIPINY_50 || FUZHOU_50 || FUZHOU_100 || HONGKONG_50 || IZRAEL_25 || JUZNA_AFRIKA_50 || KEMPNO_50 || KRAKOW_50 || LUXEMBURG_40 || MALTA_WSD25 || MURES_40 || PETERSBURG_50 || ROMA_200 || TORINO_50 || TORUN_50 || ZAMBIA || ZODINO private ControlComponent_Torino2015.UserControl1 ctrlBrdComponent; private TBF.UI.Process.ProcessTabPageCtrl24 processTabPageCtrl; -#elif SLM_50 || TURA_SPECIAL - private ControlComponent_Torino2015.UserControl1 ctrlBrdComponent; - private TBF.UI.Process.ProcessTabPageExCtrl processTabPageCtrl; #elif IZRAEL_50 || TURA_IPERL || TURA_IPERL_NEW private ControlComponent_Torino2015.UserControl1 ctrlBrdComponent; private TBF.UI.Process.ProcessTabPageCtrl48 processTabPageCtrl; +#elif SLM_50 || TURA_SPECIAL + private ControlComponent_Torino2015.UserControl1 ctrlBrdComponent; + private TBF.UI.Process.ProcessTabPageExCtrl processTabPageCtrl; #endif private System.Windows.Forms.ToolStripMenuItem benchTSMenuItem; diff --git a/packages/ControlBoard/Luxemburg-40/ControlComponent3U.dll b/packages/ControlBoard/Luxemburg-40/ControlComponent3U.dll new file mode 100644 index 000000000..6142bbeb6 Binary files /dev/null and b/packages/ControlBoard/Luxemburg-40/ControlComponent3U.dll differ