Version 1.5.84. Reading registers, scales, temperature, pressure, ... during test done in one state in the sequence.
Many changes in TestMethods.iPerlCommunication and WaterMeters.iPerl.WaterMeter. iPerl measurement with opto-data works OK. Logging in State changed, ...
This commit is contained in:
@@ -17,8 +17,10 @@ namespace TBF.BenchControl.Operations
|
||||
int readersCount;
|
||||
int[] iPulses;
|
||||
int[] iRefPulses;
|
||||
double[] dTimes;
|
||||
IntBox[] pulses;
|
||||
IntBox[] refPulses;
|
||||
DoubleBox[] times;
|
||||
IOperation[] readRegOps;
|
||||
|
||||
/// <summary>
|
||||
@@ -90,6 +92,54 @@ namespace TBF.BenchControl.Operations
|
||||
log.Debug(this.ToString());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Events: eventDone (default=Event.ReadRegisterDone) or Event.Error
|
||||
/// </summary>
|
||||
/// <param name="register">Register reader reference</param>
|
||||
/// <param name="pulses">Reference to the water meter register state in pulses</param>
|
||||
public ReadMoreRegistersOp(GenericDevices.IRegisterReader[] readers, ref int[] iPulses, ref double[] dTimes, ref int[] iRefPulses)
|
||||
: this(readers, ref iPulses)
|
||||
{
|
||||
if (readers == null) throw new ArgumentNullException("readers");
|
||||
|
||||
readersCount = readers.Length;
|
||||
|
||||
if (iPulses == null || iPulses.Length != readersCount ||
|
||||
dTimes == null || dTimes.Length != readersCount ||
|
||||
iRefPulses == null || iRefPulses.Length != readersCount)
|
||||
{
|
||||
throw new ArgumentException("iPulses or iRefPulses");
|
||||
}
|
||||
this.iPulses = iPulses;
|
||||
this.dTimes = dTimes;
|
||||
this.iRefPulses = iRefPulses;
|
||||
|
||||
pulses = new IntBox[Program.WMsCount];
|
||||
times = new DoubleBox[Program.WMsCount];
|
||||
refPulses = new IntBox[Program.WMsCount];
|
||||
|
||||
readRegOps = new IOperation[readersCount];
|
||||
for (int i = 0; i < readersCount; i++)
|
||||
{
|
||||
pulses[i] = new IntBox(iPulses[i]);
|
||||
times[i] = new DoubleBox(dTimes[i]);
|
||||
refPulses[i] = new IntBox(iRefPulses[i]);
|
||||
|
||||
if (readers[i] != null)
|
||||
{
|
||||
if (readers[i] is WaterMeters.iPerl.WaterMeter)
|
||||
{
|
||||
readRegOps[i] = (readers[i] as WaterMeters.iPerl.WaterMeter).ReadRegisterOp(ref pulses[i], ref times[i], ref refPulses[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
readRegOps[i] = readers[i].ReadRegisterOp(ref pulses[i], ref refPulses[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
log.Debug(this.ToString());
|
||||
}
|
||||
|
||||
/// <summary>Start this operation</summary>
|
||||
public void Start()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user