diff --git a/TBF/BenchControl/DataEntry/DataStream/EntryForm.cs b/TBF/BenchControl/DataEntry/DataStream/EntryForm.cs index c99fa7586..2f6b1d697 100644 --- a/TBF/BenchControl/DataEntry/DataStream/EntryForm.cs +++ b/TBF/BenchControl/DataEntry/DataStream/EntryForm.cs @@ -88,7 +88,7 @@ namespace TBF.BenchControl.DataEntry.DataStream public IOperation ShowCycleBeginFormOp() { if (currentOp != CurrentOp.None) throw new Exception("Sequence error"); - mefImport.CloseAllConnections(); + mefImport.CloseConnectionAll(); currentOp = CurrentOp.ShowFormAtCycleBeginning; this.waterMeters = TBF.BenchControl.Sequences.ProcessData.BatchRslts.Batch.WaterMeters; return this; @@ -98,7 +98,7 @@ namespace TBF.BenchControl.DataEntry.DataStream public IOperation ShowCycleEndFormOp() { if (currentOp != CurrentOp.None) throw new Exception("Sequence error"); - mefImport.CloseAllConnections(); + mefImport.CloseConnectionAll(); return null; } diff --git a/TBF/BenchControl/RegisterReaders/DataStream/MefImport/MefImport.cs b/TBF/BenchControl/RegisterReaders/DataStream/MefImport/MefImport.cs index 4a80d9434..658d76c5f 100644 --- a/TBF/BenchControl/RegisterReaders/DataStream/MefImport/MefImport.cs +++ b/TBF/BenchControl/RegisterReaders/DataStream/MefImport/MefImport.cs @@ -102,7 +102,7 @@ namespace TBF.BenchControl.RegisterReaders.DataStream.MefImport /// /// Wrapper for DataStreamIFace.CloseConnection() called in a loop for all connected water meters /// - public void CloseAllConnections() + public bool CloseConnectionAll() { if (isConnectedArray != null) { @@ -110,13 +110,79 @@ namespace TBF.BenchControl.RegisterReaders.DataStream.MefImport { if (isConnectedArray[ix]) { - if (DataStreamIFace.CloseConnection(ix)) - { - isConnectedArray[ix] = false; /// reset IsConnected flag - } + DataStreamIFace.CloseConnection(ix); + isConnectedArray[ix] = false; /// reset IsConnected flag regardless of returned value } } } + + return true; + } + + /// + /// Wrapper for DataStreamIFace.StartMeasurement(), starts only connected water meters + /// + public bool StartMeasurement(int ix) + { + if (isConnectedArray != null && ix >= 0 && ix < isConnectedArray.Length && isConnectedArray[ix]) + { + return DataStreamIFace.StartMeasurement(ix); + } + + return false; + } + + /// + /// Wrapper that bypasses DataStreamIFace.StartMeasurementAll(), starts only connected water meters + /// + public bool StartMeasurementAll() + { + if (isConnectedArray != null) + { + for (int ix = 0; ix < isConnectedArray.Length; ix++) + { + if (isConnectedArray[ix]) DataStreamIFace.StartMeasurement(ix); + } + return true; + } + + return false; + } + + /// + /// Wrapper for DataStreamIFace.StopMeasurement(), stops only connected water meters + /// + public bool StopMeasurement(int ix, out Int64 storedFramesCount) + { + if (isConnectedArray != null && ix >= 0 && ix < isConnectedArray.Length && isConnectedArray[ix]) + { + return DataStreamIFace.StopMeasurement(ix, out storedFramesCount); + } + + storedFramesCount = 0; + return false; + } + + /// + /// Wrapper that bypasses DataStreamIFace.StopMeasurementAll(), stops only connected water meters + /// + public bool StopMeasurementAll(out Int64[] storedFramesCounts) + { + if (isConnectedArray != null) + { + storedFramesCounts = new Int64[isConnectedArray.Length]; + for (int ix = 0; ix < isConnectedArray.Length; ix++) + { + if (isConnectedArray[ix]) + DataStreamIFace.StopMeasurement(ix, out storedFramesCounts[ix]); + else + storedFramesCounts[ix] = 0; + } + return true; + } + + storedFramesCounts = null; + return false; } } } diff --git a/TBF/BenchControl/RegisterReaders/DataStream/Reader/Reader.cs b/TBF/BenchControl/RegisterReaders/DataStream/Reader/Reader.cs index 1f5e1e726..82d39ffe0 100644 --- a/TBF/BenchControl/RegisterReaders/DataStream/Reader/Reader.cs +++ b/TBF/BenchControl/RegisterReaders/DataStream/Reader/Reader.cs @@ -133,7 +133,7 @@ namespace TBF.BenchControl.RegisterReaders.DataStream.Reader volumeUnit = mefImport.DataStreamIFace.GetVolumeUnits(); log.DebugFormat("timeUnit = {0}, volumeUnit = {1}", timeUnit, volumeUnit); - bool started = mefImport.DataStreamIFace.StartMeasurement(Position - 1); + bool started = mefImport.StartMeasurement(Position - 1); log.DebugFormat("{0} : DataStreamIFace.StartMeasurement({1}) in Start() returned {2}", Name, Position - 1, started); } } @@ -151,7 +151,7 @@ namespace TBF.BenchControl.RegisterReaders.DataStream.Reader TBF.BenchControl.Sequences.ProcessData.BatchRslts.Batch.WaterMeters[Position - 1] != null && !TBF.BenchControl.Sequences.ProcessData.BatchRslts.Batch.WaterMeters[Position - 1].Disabled) { - bool stopped = mefImport.DataStreamIFace.StopMeasurement(Position - 1, out storedFramesCount); + bool stopped = mefImport.StopMeasurement(Position - 1, out storedFramesCount); log.DebugFormat("{0} : DataStreamIFace.StopMeasurement({1}) in Stop() returned {2}, storedFramesCount = {3}", Name, Position - 1, stopped, storedFramesCount); if (storedFramesCount >= minSamplesCount) diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs index 195bea34c..1610ecf29 100644 --- a/TBF/Properties/AssemblyInfo.cs +++ b/TBF/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("2.26.1707.0")] -[assembly: AssemblyFileVersion("2.26.1707.0")] +[assembly: AssemblyVersion("2.26.1708.0")] +[assembly: AssemblyFileVersion("2.26.1708.0")]