diff --git a/TestBenchFramework/BenchControl/WaterMeters/iPerl/OptoTelegramRaw.cs b/TestBenchFramework/BenchControl/WaterMeters/iPerl/OptoTelegramRaw.cs
index c107ff631..c02d8ff0c 100644
--- a/TestBenchFramework/BenchControl/WaterMeters/iPerl/OptoTelegramRaw.cs
+++ b/TestBenchFramework/BenchControl/WaterMeters/iPerl/OptoTelegramRaw.cs
@@ -10,6 +10,7 @@ namespace TBF.BenchControl.WaterMeters.iPerl
public OptoTelegramFlags flags;
public DateTime DateTime;
+ public int Counter;
public UInt32 EmfRaw;
public Int16 MagneticField;
@@ -27,12 +28,12 @@ namespace TBF.BenchControl.WaterMeters.iPerl
{
if (flags == OptoTelegramFlags.OK)
{
- return string.Format("{0}:{1}:{2}.{3}\t{4}:\t{5}\t{6}\t{7}\t{8}\t{9}\t{10}\t{11}",
+ return string.Format("{0}:{1}:{2}.{3}\t{4} :\t{5}\t{6}\t{7}\t{8}\t{9}\t{10}\t{11}",
DateTime.Hour.ToString("D2"),
DateTime.Minute.ToString("D2"),
DateTime.Second.ToString("D2"),
DateTime.Millisecond.ToString("D3"),
- 0,
+ Counter,
EmfRaw.ToString("X6"),
MagneticField.ToString("X4"),
FlowRaw.ToString("X4"),
@@ -83,9 +84,10 @@ namespace TBF.BenchControl.WaterMeters.iPerl
///
/// A complete byte array data
/// ConfigStruct or null when byte array was not complete
- public bool UpdateFromString(string telegram)
+ public bool UpdateFromString(string telegram, int counter)
{
DateTime = DateTime.Now;
+ Counter = counter;
if ((telegram == null) || (telegram.Length < Length) ||
(telegram[6] != '\t') || (telegram[11] != '\t') || (telegram[16] != '\t') ||
@@ -107,11 +109,11 @@ namespace TBF.BenchControl.WaterMeters.iPerl
}
- public static OptoTelegramRaw FromString(string telegram)
+ public static OptoTelegramRaw FromString(string telegram, int counter)
{
OptoTelegramRaw opto = new OptoTelegramRaw();
- if (opto.UpdateFromString(telegram))
+ if (opto.UpdateFromString(telegram, counter))
{
return opto;
}
diff --git a/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs b/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs
index e45c363db..6fdfda9c5 100644
--- a/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs
+++ b/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs
@@ -592,12 +592,13 @@ namespace TBF.BenchControl.WaterMeters.iPerl
allRcvd = allRcvd.Substring(pos + 2);
if (synchronized)
{
+ optoData[optoDataCount].Counter = optoDataCount;
optoData[optoDataCount++].SetFlags(OptoTelegramFlags.SyncError);
}
synchronized = true;
}
// CR+LF found and (pos >= OptoTelegramRaw.Length - 2)
- else if (optoData[optoDataCount].UpdateFromString(allRcvd.Substring(pos - OptoTelegramRaw.Length + 2)))
+ else if (optoData[optoDataCount].UpdateFromString(allRcvd.Substring(pos - OptoTelegramRaw.Length + 2), optoDataCount))
{
OptoTelegramRreceived(optoData[optoDataCount++], synchronized2);
synchronized2 = synchronized;
@@ -605,6 +606,7 @@ namespace TBF.BenchControl.WaterMeters.iPerl
}
else
{
+ optoData[optoDataCount].Counter = optoDataCount;
optoData[optoDataCount++].SetFlags(OptoTelegramFlags.InvalidTelegram);
allRcvd = allRcvd.Substring(pos + 2);
}
@@ -618,7 +620,7 @@ namespace TBF.BenchControl.WaterMeters.iPerl
synchronized = true;
}
// CR+LF found and (pos >= OptoTelegram.Length - 2)
- else if (toBeFlushed.UpdateFromString(allRcvd.Substring(pos - OptoTelegramRaw.Length + 2)))
+ else if (toBeFlushed.UpdateFromString(allRcvd.Substring(pos - OptoTelegramRaw.Length + 2), 0))
{
flushedDataCount++;
synchronized2 = synchronized;
diff --git a/TestBenchFramework/Properties/AssemblyInfo.cs b/TestBenchFramework/Properties/AssemblyInfo.cs
index 8bc83e8dc..035aedabb 100644
--- a/TestBenchFramework/Properties/AssemblyInfo.cs
+++ b/TestBenchFramework/Properties/AssemblyInfo.cs
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
-[assembly: AssemblyVersion("1.6.153.1")]
-[assembly: AssemblyFileVersion("1.6.153.1")]
+[assembly: AssemblyVersion("1.6.154.1")]
+[assembly: AssemblyFileVersion("1.6.154.1")]