Compare commits
3 Commits
110b880304
...
540b9af871
| Author | SHA1 | Date | |
|---|---|---|---|
| 540b9af871 | |||
| d11f7107fe | |||
| 3c5a28f69d |
@ -56,7 +56,7 @@ namespace Common.Iperl
|
||||
public double Flow(double scalingFactor) { return 0.225 * scalingFactor * (double)FlowRaw; }
|
||||
public double Volume(double scalingFactor) { return 0.0000625 * scalingFactor * (double)VolumeRawExt; }
|
||||
public Int32 FlipTime() { return Impedance; }
|
||||
public decimal TimestampDec() { return (decimal)TimestampExt / (decimal)8192; }
|
||||
public decimal TimestampDec() { return (decimal)TimestampExt; }
|
||||
public double VolumeDelta(double scalingFactor, OptoTelegramRaw previous) { return (previous == null) ? 0 : Volume(scalingFactor) - previous.Volume(scalingFactor); }
|
||||
public decimal TimeDelta() { return TimestampDec() - TestStartTimestampDec; }
|
||||
public string Label()
|
||||
|
||||
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("3.9.3063.1")]
|
||||
[assembly: AssemblyFileVersion("3.9.3063.1")]
|
||||
[assembly: AssemblyVersion("3.9.3066.1")]
|
||||
[assembly: AssemblyFileVersion("3.9.3066.1")]
|
||||
|
||||
@ -58,7 +58,8 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.common
|
||||
public double Flow(double scalingFactor) { return 0.225 * scalingFactor * (double)FlowRaw; }
|
||||
public double Volume(double scalingFactor) { return 0.0000625 * scalingFactor * (double)VolumeRawExt; }
|
||||
public Int32 FlipTime() { return Impedance; }
|
||||
public decimal TimestampDec() { return (decimal)TimestampExt / (decimal)8192; }
|
||||
|
||||
public decimal TimestampDec() { return (decimal)TimestampExt;}
|
||||
public double VolumeDelta(double scalingFactor, OptoTelegramRaw previous) { return (previous == null) ? 0 : Volume(scalingFactor) - previous.Volume(scalingFactor); }
|
||||
public decimal TimeDelta() { return TimestampDec() - TestStartTimestampDec; }
|
||||
public string Label()
|
||||
@ -205,7 +206,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.common
|
||||
private const double GAL_TO_LITER = 3.785411784;
|
||||
|
||||
public void UpdateFromSmart(
|
||||
DiagnosticLedState4Data data,
|
||||
DiagnosticLedState7Data data,
|
||||
int counter,
|
||||
float refFlow,
|
||||
ref double volumeRawExtLast,
|
||||
@ -330,9 +331,9 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.common
|
||||
(EmfRaw & 0x00FFFFFF).ToString("X6"),
|
||||
MagneticFieldRaw.ToString("X4"),
|
||||
FlowRaw.ToString("X4"),
|
||||
VolumeRaw.ToString("X6"),
|
||||
VolumeRaw.ToString("F4", culture),
|
||||
Impedance.ToString("X4"),
|
||||
Timestamp.ToString("X8"),
|
||||
Timestamp.ToString("F4", culture),
|
||||
CheckSum.ToString("X2"),
|
||||
EMF().ToString("F4", culture),
|
||||
MagneticField().ToString("F0", culture),
|
||||
|
||||
@ -36,7 +36,11 @@ public sealed class DiagnosticLedState5Data : DiagnosticLedData
|
||||
public ushort FieldCalibration { get; }
|
||||
|
||||
/// <summary>ASIC timestamp (bbbbbbbb), 8192 ticks per second.</summary>
|
||||
public uint AsicTimestamp { get; }
|
||||
public double AsicTimestamp
|
||||
{
|
||||
get { return AsicTimestampTicks / 8192; }
|
||||
}
|
||||
public uint AsicTimestampTicks { get; }
|
||||
|
||||
/// <summary>Field drive time in microseconds (ff).</summary>
|
||||
public byte FieldDriveTimeUs { get; }
|
||||
@ -74,7 +78,7 @@ public sealed class DiagnosticLedState5Data : DiagnosticLedData
|
||||
|
||||
// ---- State #5 specific ----
|
||||
FieldCalibration = DiagnosticHex.ParseUInt16(fields[5]);
|
||||
AsicTimestamp = DiagnosticHex.ParseUInt32(fields[6]);
|
||||
AsicTimestampTicks = DiagnosticHex.ParseUInt32(fields[6]);
|
||||
FieldDriveTimeUs = DiagnosticHex.ParseByte(fields[7]);
|
||||
|
||||
MeanFlowRate = unchecked((int)DiagnosticHex.ParseUInt32(fields[8]));
|
||||
|
||||
@ -39,7 +39,11 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.communication.C4.diagnosticLed.
|
||||
public sealed class DiagnosticLedState6Data : DiagnosticLedData
|
||||
{
|
||||
public ushort FieldCalibration { get; }
|
||||
public uint AsicTimestamp { get; }
|
||||
public double AsicTimestamp
|
||||
{
|
||||
get { return AsicTimestampTicks / 8192; }
|
||||
}
|
||||
public uint AsicTimestampTicks { get; }
|
||||
public byte FieldDriveTimeUs { get; }
|
||||
|
||||
public int MeanFlowRate { get; }
|
||||
@ -74,7 +78,7 @@ public sealed class DiagnosticLedState6Data : DiagnosticLedData
|
||||
|
||||
// ---- State #6 specific ----
|
||||
FieldCalibration = DiagnosticHex.ParseUInt16(fields[5]);
|
||||
AsicTimestamp = DiagnosticHex.ParseUInt32(fields[6]);
|
||||
AsicTimestampTicks = DiagnosticHex.ParseUInt32(fields[6]);
|
||||
FieldDriveTimeUs = DiagnosticHex.ParseByte(fields[7]);
|
||||
|
||||
MeanFlowRate = unchecked((int)DiagnosticHex.ParseUInt32(fields[8]));
|
||||
|
||||
@ -46,7 +46,11 @@ public sealed class DiagnosticLedState7Data : DiagnosticLedData
|
||||
// ----- State #6 fields -----
|
||||
|
||||
public ushort FieldCalibration { get; }
|
||||
public uint AsicTimestamp { get; }
|
||||
public double AsicTimestamp
|
||||
{
|
||||
get { return AsicTimestampTicks / 8192; }
|
||||
}
|
||||
public uint AsicTimestampTicks { get; }
|
||||
public byte FieldDriveTimeUs { get; }
|
||||
|
||||
public int MeanFlowRate { get; }
|
||||
@ -103,7 +107,7 @@ public sealed class DiagnosticLedState7Data : DiagnosticLedData
|
||||
|
||||
// ---- State #6 fields ----
|
||||
FieldCalibration = DiagnosticHex.ParseUInt16(fields[5]);
|
||||
AsicTimestamp = DiagnosticHex.ParseUInt32(fields[6]);
|
||||
AsicTimestampTicks = DiagnosticHex.ParseUInt32(fields[6]);
|
||||
FieldDriveTimeUs = DiagnosticHex.ParseByte(fields[7]);
|
||||
|
||||
MeanFlowRate = unchecked((int)DiagnosticHex.ParseUInt32(fields[8]));
|
||||
|
||||
@ -7,9 +7,9 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.communication.C4.diagnosticLed.
|
||||
{
|
||||
private readonly Common.Unit _unitFlow;
|
||||
private readonly Common.Unit _unitVolume;
|
||||
private readonly DiagnosticLedState4Data _data;
|
||||
private readonly DiagnosticLedState7Data _data;
|
||||
|
||||
public DiagnostigLedDataByUnit(Common.Unit unitFlow, Common.Unit unitVolume, DiagnosticLedState4Data data)
|
||||
public DiagnostigLedDataByUnit(Common.Unit unitFlow, Common.Unit unitVolume, DiagnosticLedState7Data data)
|
||||
{
|
||||
this._unitFlow = unitFlow;
|
||||
this._unitVolume = unitVolume;
|
||||
@ -17,7 +17,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.communication.C4.diagnosticLed.
|
||||
}
|
||||
|
||||
public Common.Unit Unit => _unitVolume;
|
||||
public DiagnosticLedState4Data Data => _data;
|
||||
public DiagnosticLedState7Data Data => _data;
|
||||
|
||||
public double RawFlow {
|
||||
get { return UnitVolume(_unitFlow, _data.RawFlow); }
|
||||
|
||||
@ -185,7 +185,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.communication
|
||||
RadioService headService = new RadioService(serialDriver);
|
||||
bool optTestMode = headService.SetOptTestMode(iperlHead);
|
||||
if (iperlHead.ConfigStruct != null)
|
||||
iperlHead.ConfigStruct.OpthoStatusMode = optTestMode ? DiagnosticLedState.State4 : DiagnosticLedState.StatusUnknown;
|
||||
iperlHead.ConfigStruct.OpthoStatusMode = optTestMode ? DiagnosticLedState.State7 : DiagnosticLedState.StatusUnknown;
|
||||
return optTestMode;
|
||||
}
|
||||
}
|
||||
|
||||
@ -162,7 +162,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.communication
|
||||
serialDriver.Open();
|
||||
}
|
||||
|
||||
//Set LED to state 4
|
||||
//Set State to Active 02
|
||||
byte[] request = new IperlHatFrameBuilder()
|
||||
.RequestResponse(true)
|
||||
.AddCommand(ProtocolCommand.SetState)
|
||||
@ -192,7 +192,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.communication
|
||||
serialDriver.Open();
|
||||
}
|
||||
|
||||
//Set Activity State Idle
|
||||
//Set Activity State Idle 01
|
||||
byte[] request = new IperlHatFrameBuilder()
|
||||
.RequestResponse(true)
|
||||
.AddCommand(ProtocolCommand.SetState)
|
||||
@ -222,11 +222,11 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.communication
|
||||
serialDriver.Open();
|
||||
}
|
||||
|
||||
//Set LED to state 4
|
||||
//Set LED to state 7
|
||||
var request = new IperlHatFrameBuilder()
|
||||
.RequestResponse(true)
|
||||
.AddDeviceCommand(ProtocolDeviceSubCommand.SetDiagnosticLEDState)
|
||||
.AddPayload(DiagnosticLedState.State4)
|
||||
.AddPayload(DiagnosticLedState.State7)
|
||||
.BuildBytes();
|
||||
|
||||
byte[] rawData = serialDriver.SendAndWait(request, 5000);
|
||||
@ -241,7 +241,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.communication
|
||||
log.Debug("SetOptTestMode isOK: " + isOk);
|
||||
if (decoded.IsOk && iHead.ConfigStruct != null)
|
||||
{
|
||||
iHead.ConfigStruct.OpthoStatusMode = DiagnosticLedState.State4;
|
||||
iHead.ConfigStruct.OpthoStatusMode = DiagnosticLedState.State7;
|
||||
}
|
||||
return isOk;
|
||||
|
||||
|
||||
@ -894,7 +894,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
|
||||
|
||||
/// Read configuration
|
||||
|
||||
if (ihead.OptoHeadTest.ReadConfiguration(DiagnosticLedState.State4))
|
||||
if (ihead.OptoHeadTest.ReadConfiguration(DiagnosticLedState.State7))
|
||||
{
|
||||
error = CommErr.None;
|
||||
//read, set and create ConfigStruct is set directly in method ReadConfiguration
|
||||
@ -940,7 +940,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
|
||||
|
||||
//I will do communication to meter now
|
||||
|
||||
DiagnosticLedState testModeConfig = DiagnosticLedState.State4; /// Default value
|
||||
DiagnosticLedState testModeConfig = DiagnosticLedState.State7; /// Default value
|
||||
///
|
||||
|
||||
if (ihead.OptoHeadTest.SetTestMode())
|
||||
|
||||
@ -1020,7 +1020,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.iPerlHead
|
||||
bool synchronized2;
|
||||
string partOfTelegram;
|
||||
|
||||
DiagnosticLedParser parser = new DiagnosticLedParser(DiagnosticLedState.State4);
|
||||
DiagnosticLedParser parser = new DiagnosticLedParser(DiagnosticLedState.State7);
|
||||
|
||||
/// <summary>
|
||||
/// Reads opto-datastream via serial port. Invoked from RunDeviceBefore()
|
||||
@ -1052,8 +1052,8 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.iPerlHead
|
||||
|
||||
if (optoState == DataStreamState.ProcessAndSave)
|
||||
{
|
||||
DiagnosticLedState4Data data =
|
||||
(DiagnosticLedState4Data)parser.ParseLine(line, false);
|
||||
DiagnosticLedState7Data data =
|
||||
(DiagnosticLedState7Data)parser.ParseLine(line, false);
|
||||
|
||||
int bufferIx = BufferIdx(optoDataCount);
|
||||
|
||||
@ -1089,8 +1089,8 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.iPerlHead
|
||||
else
|
||||
{
|
||||
// Flush mode
|
||||
DiagnosticLedState4Data data =
|
||||
(DiagnosticLedState4Data)parser.ParseLine(line, false);
|
||||
DiagnosticLedState7Data data =
|
||||
(DiagnosticLedState7Data)parser.ParseLine(line, false);
|
||||
|
||||
flowDirectionDetection.WriteToFifo(volumeRawExtLast, timestampExtLast);
|
||||
}
|
||||
@ -1705,14 +1705,14 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.iPerlHead
|
||||
{
|
||||
try
|
||||
{
|
||||
DiagnosticLedState4Data data =
|
||||
(DiagnosticLedState4Data)parser.ParseLine(readOptoDataWithTimeout, false);
|
||||
DiagnosticLedState7Data data =
|
||||
(DiagnosticLedState7Data)parser.ParseLine(readOptoDataWithTimeout, false);
|
||||
volumeLtr = data.RawVolume;
|
||||
break;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.Warn($"Parsing DiagnosticLedState4Data: {ex.Message}");
|
||||
log.Warn($"Parsing DiagnosticLedState7Data: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1779,14 +1779,14 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.iPerlHead
|
||||
{
|
||||
try
|
||||
{
|
||||
DiagnosticLedState4Data data =
|
||||
(DiagnosticLedState4Data)parser.ParseLine(readOptoDataWithTimeout, false);
|
||||
DiagnosticLedState7Data data =
|
||||
(DiagnosticLedState7Data)parser.ParseLine(readOptoDataWithTimeout, false);
|
||||
volumeLtr0 = data.RawVolume;
|
||||
break;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.Warn($"Parsing DiagnosticLedState4Data: {ex.Message}");
|
||||
log.Warn($"Parsing DiagnosticLedState7Data: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,350 @@
|
||||
using System;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using TBF.Rig.TestMethods.iPerlCommunication.common;
|
||||
using TBF.Rig.TestMethods.iPerlCommunication.communication.C4.diagnosticLed.parserer;
|
||||
|
||||
namespace TBFTests.Rig.TestMethods.iPerlCommunication.common
|
||||
{
|
||||
[TestClass]
|
||||
public class OptoTelegramRawTest
|
||||
{
|
||||
private static DiagnosticLedState7Data CreateDiagnosticLedState7Data(
|
||||
double volumeLiters,
|
||||
double timeSeconds,
|
||||
short rawFlow = 0)
|
||||
{
|
||||
uint rawVolumeTicks = (uint)Math.Round(volumeLiters / 0.00025);
|
||||
uint timestampTicks = (uint)Math.Round(timeSeconds * 8192.0);
|
||||
|
||||
string[] fields =
|
||||
{
|
||||
"000000",
|
||||
"0000",
|
||||
((ushort)rawFlow).ToString("X4"),
|
||||
rawVolumeTicks.ToString("X6"),
|
||||
"0000",
|
||||
"0000",
|
||||
timestampTicks.ToString("X8"),
|
||||
"00",
|
||||
"00000000",
|
||||
"0000",
|
||||
"0000",
|
||||
"0000",
|
||||
"0000",
|
||||
"00",
|
||||
"0000",
|
||||
"0000",
|
||||
"00",
|
||||
"00",
|
||||
"00000000",
|
||||
"00",
|
||||
"000000",
|
||||
"000000",
|
||||
"0000",
|
||||
"0000",
|
||||
"00",
|
||||
"00"
|
||||
};
|
||||
|
||||
string rawLine = string.Join("\t", fields) + "\r\n";
|
||||
return new DiagnosticLedState7Data(rawLine, fields);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void UpdateFromSmart_FirstSample_ShouldInitializeFields()
|
||||
{
|
||||
var telegram = new OptoTelegramRaw();
|
||||
var data = CreateDiagnosticLedState7Data(
|
||||
volumeLiters: 2.5,
|
||||
timeSeconds: 100.0);
|
||||
|
||||
double lastVolume = double.NaN;
|
||||
double lastTimestamp = double.NaN;
|
||||
|
||||
telegram.UpdateFromSmart(data, counter: 7, refFlow: 1.5f, ref lastVolume, ref lastTimestamp);
|
||||
|
||||
Assert.AreEqual(7, telegram.Counter);
|
||||
Assert.AreEqual(1.5f, telegram.RefFlow);
|
||||
Assert.AreEqual(OptoTelegramFlags.OK, telegram.Flags);
|
||||
|
||||
Assert.AreEqual(2.5, telegram.VolumeRaw, 1e-9);
|
||||
Assert.AreEqual(2.5, telegram.VolumeRawExt, 1e-9);
|
||||
Assert.AreEqual(2.5, lastVolume, 1e-9);
|
||||
|
||||
Assert.AreEqual(100.0, telegram.Timestamp, 1e-9);
|
||||
Assert.AreEqual(100.0, telegram.TimestampExt, 1e-9);
|
||||
Assert.AreEqual(100.0, lastTimestamp, 1e-9);
|
||||
|
||||
Assert.AreNotEqual(default(DateTime), telegram.DateTime);
|
||||
Assert.AreEqual(0, telegram.FlowRaw);
|
||||
Assert.AreEqual(0, telegram.CheckSum);
|
||||
Assert.AreEqual(0, telegram.Impedance);
|
||||
Assert.AreEqual(0, telegram.EmfRaw);
|
||||
Assert.AreEqual(0, telegram.MagneticFieldRaw);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void UpdateFromSmart_RealDecodedSample_ShouldMapExpectedValues()
|
||||
{
|
||||
var telegram = new OptoTelegramRaw();
|
||||
|
||||
var data = CreateDiagnosticLedState7Data(
|
||||
volumeLiters: 0.48025,
|
||||
timeSeconds: 62727.0);
|
||||
|
||||
double lastVolume = double.NaN;
|
||||
double lastTimestamp = double.NaN;
|
||||
|
||||
telegram.UpdateFromSmart(data, counter: 1, refFlow: 0.0f, ref lastVolume, ref lastTimestamp);
|
||||
|
||||
Assert.AreEqual(1, telegram.Counter);
|
||||
Assert.AreEqual(0.0f, telegram.RefFlow);
|
||||
Assert.AreEqual(OptoTelegramFlags.OK, telegram.Flags);
|
||||
|
||||
Assert.AreEqual(0.48025, telegram.VolumeRaw, 1e-9);
|
||||
Assert.AreEqual(0.48025, telegram.VolumeRawExt, 1e-9);
|
||||
Assert.AreEqual(0.48025, lastVolume, 1e-9);
|
||||
|
||||
Assert.AreEqual(62727.0, telegram.Timestamp, 1e-9);
|
||||
Assert.AreEqual(62727.0, telegram.TimestampExt, 1e-9);
|
||||
Assert.AreEqual(62727.0, lastTimestamp, 1e-9);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void UpdateFromSmart_TimestampOverflow_ShouldKeepIncreasingExtendedTimestamp()
|
||||
{
|
||||
double lastVolumeExt = double.NaN;
|
||||
double lastTimestampExt = double.NaN;
|
||||
|
||||
double[] times =
|
||||
{
|
||||
524280.0,
|
||||
524287.0,
|
||||
1.0,
|
||||
2.0,
|
||||
10.0
|
||||
};
|
||||
|
||||
double previousExt = double.NaN;
|
||||
|
||||
for (int i = 0; i < times.Length; i++)
|
||||
{
|
||||
var telegram = new OptoTelegramRaw();
|
||||
var data = CreateDiagnosticLedState7Data(1.0, times[i]);
|
||||
|
||||
telegram.UpdateFromSmart(data, i, 0, ref lastVolumeExt, ref lastTimestampExt);
|
||||
|
||||
if (!double.IsNaN(previousExt))
|
||||
{
|
||||
Assert.IsTrue(
|
||||
telegram.TimestampExt >= previousExt,
|
||||
$"Timestamp decreased at index {i}. Prev={previousExt}, Current={telegram.TimestampExt}");
|
||||
}
|
||||
|
||||
previousExt = telegram.TimestampExt;
|
||||
}
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void UpdateFromSmart_TimeDelta_ShouldNeverBeNegativeAcrossOverflow()
|
||||
{
|
||||
double lastVolumeExt = double.NaN;
|
||||
double lastTimestampExt = double.NaN;
|
||||
|
||||
OptoTelegramRaw.TestStartTimestampDec = 524280m;
|
||||
|
||||
double[] times =
|
||||
{
|
||||
524280.0,
|
||||
524287.0,
|
||||
1.0,
|
||||
2.0,
|
||||
10.0
|
||||
};
|
||||
|
||||
decimal previousDelta = decimal.MinValue;
|
||||
|
||||
for (int i = 0; i < times.Length; i++)
|
||||
{
|
||||
var telegram = new OptoTelegramRaw();
|
||||
var data = CreateDiagnosticLedState7Data(1.0, times[i]);
|
||||
|
||||
telegram.UpdateFromSmart(data, i, 0, ref lastVolumeExt, ref lastTimestampExt);
|
||||
|
||||
decimal delta = telegram.TimeDelta();
|
||||
|
||||
Assert.IsTrue(delta >= 0, $"Negative TimeDelta at index {i}: {delta}");
|
||||
Assert.IsTrue(delta >= previousDelta,
|
||||
$"TimeDelta decreased at index {i}. Previous={previousDelta}, Current={delta}");
|
||||
|
||||
previousDelta = delta;
|
||||
}
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void UpdateFromSmart_VolumeOverflow_ShouldKeepIncreasingExtendedVolume()
|
||||
{
|
||||
double lastVolumeExt = double.NaN;
|
||||
double lastTimestampExt = double.NaN;
|
||||
|
||||
double volumeRange = 16777216.0 * 0.00025; // 4194.304 L
|
||||
|
||||
double[] volumes =
|
||||
{
|
||||
4194.0,
|
||||
4194.25,
|
||||
volumeRange + 0.25,
|
||||
volumeRange + 1.0,
|
||||
volumeRange + 2.0
|
||||
};
|
||||
|
||||
double previousExt = double.NaN;
|
||||
|
||||
for (int i = 0; i < volumes.Length; i++)
|
||||
{
|
||||
var telegram = new OptoTelegramRaw();
|
||||
var data = CreateDiagnosticLedState7Data(volumes[i], i);
|
||||
|
||||
telegram.UpdateFromSmart(data, i, 0, ref lastVolumeExt, ref lastTimestampExt);
|
||||
|
||||
if (!double.IsNaN(previousExt))
|
||||
{
|
||||
Assert.IsTrue(
|
||||
telegram.VolumeRawExt >= previousExt,
|
||||
$"Volume decreased at index {i}. Prev={previousExt}, Current={telegram.VolumeRawExt}");
|
||||
}
|
||||
|
||||
previousExt = telegram.VolumeRawExt;
|
||||
}
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void SetFlags_ShouldChangeFlags()
|
||||
{
|
||||
var telegram = new OptoTelegramRaw();
|
||||
|
||||
telegram.SetFlags(OptoTelegramFlags.SyncError);
|
||||
|
||||
Assert.AreEqual(OptoTelegramFlags.SyncError, telegram.Flags);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void Label_ShouldReturnExpectedText()
|
||||
{
|
||||
var telegram = new OptoTelegramRaw();
|
||||
|
||||
telegram.Flags = OptoTelegramFlags.OK_TestStart;
|
||||
Assert.AreEqual("#### start test ####", telegram.Label());
|
||||
|
||||
telegram.Flags = OptoTelegramFlags.OK_TestEnd;
|
||||
Assert.AreEqual("#### end of test ####", telegram.Label());
|
||||
|
||||
telegram.Flags = OptoTelegramFlags.OK;
|
||||
Assert.AreEqual(string.Empty, telegram.Label());
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TimestampDec_ShouldConvertCorrectly()
|
||||
{
|
||||
var telegram = new OptoTelegramRaw
|
||||
{
|
||||
TimestampExt = 8192.0
|
||||
};
|
||||
|
||||
Assert.AreEqual(8192.0m, telegram.TimestampDec());
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void VolumeDelta_ShouldReturnDifferenceAgainstPrevious()
|
||||
{
|
||||
var previous = new OptoTelegramRaw { VolumeRawExt = 1000.0 };
|
||||
var current = new OptoTelegramRaw { VolumeRawExt = 2000.0 };
|
||||
|
||||
double scalingFactor = 2.0;
|
||||
|
||||
double expectedPrevious = 0.0000625 * scalingFactor * 1000.0;
|
||||
double expectedCurrent = 0.0000625 * scalingFactor * 2000.0;
|
||||
double expectedDelta = expectedCurrent - expectedPrevious;
|
||||
|
||||
Assert.AreEqual(expectedDelta, current.VolumeDelta(scalingFactor, previous), 1e-12);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void UpdateFromStringDummy_InvalidLength_ShouldReturnFalse_AndSetInvalidFlag()
|
||||
{
|
||||
var telegram = new OptoTelegramRaw();
|
||||
|
||||
bool result = telegram.UpdateFromStringDummy("short");
|
||||
|
||||
Assert.IsFalse(result);
|
||||
Assert.AreEqual(OptoTelegramFlags.InvalidTelegram, telegram.Flags);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void UpdateFromStringDummy_ValidFormatButWrongChecksum_ShouldReturnFalse_AndSetInvalidFlag()
|
||||
{
|
||||
var telegram = new OptoTelegramRaw();
|
||||
|
||||
string dummy = "FFFFFE\t51EA\t0000\t65324E\t0087\tF6319DFF\t00\r\n";
|
||||
|
||||
bool result = telegram.UpdateFromStringDummy(dummy);
|
||||
|
||||
Assert.IsFalse(result);
|
||||
Assert.AreEqual(OptoTelegramFlags.InvalidTelegram, telegram.Flags);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ToString_WhenSyncError_ShouldReturnSynchronizationErrorText()
|
||||
{
|
||||
var telegram = new OptoTelegramRaw
|
||||
{
|
||||
Flags = OptoTelegramFlags.SyncError
|
||||
};
|
||||
|
||||
string text = telegram.ToString(1.0, null);
|
||||
|
||||
Assert.AreEqual("Sychronization error", text);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ToString_WhenInvalidTelegram_ShouldReturnInvalidTelegramText()
|
||||
{
|
||||
var telegram = new OptoTelegramRaw
|
||||
{
|
||||
Flags = OptoTelegramFlags.InvalidTelegram
|
||||
};
|
||||
|
||||
string text = telegram.ToString(1.0, null);
|
||||
|
||||
Assert.AreEqual("Invalid telegram", text);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ToString_WhenOk_ShouldContainCounterAndLabel()
|
||||
{
|
||||
var telegram = new OptoTelegramRaw
|
||||
{
|
||||
Flags = OptoTelegramFlags.OK_TestStart,
|
||||
DateTime = new DateTime(2024, 1, 1, 10, 11, 12, 123),
|
||||
Counter = 5,
|
||||
EmfRaw = 1,
|
||||
MagneticFieldRaw = 2,
|
||||
FlowRaw = 3,
|
||||
VolumeRaw = 4,
|
||||
Impedance = 5,
|
||||
Timestamp = 6,
|
||||
CheckSum = 7,
|
||||
VolumeRawExt = 1000,
|
||||
TimestampExt = 8192,
|
||||
RefFlow = 1.25f
|
||||
};
|
||||
|
||||
OptoTelegramRaw.TestStartTimestampDec = 0m;
|
||||
|
||||
string text = telegram.ToString(2.0, null);
|
||||
|
||||
Assert.IsTrue(text.Contains("5 :"), "Counter should be present in output.");
|
||||
Assert.IsTrue(text.Contains("#### start test ####"), "Label should be present in output.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -9,7 +9,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>TBFTests</RootNamespace>
|
||||
<AssemblyName>TBFTests</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
@ -19,6 +19,7 @@
|
||||
<TestProjectType>UnitTest</TestProjectType>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<LangVersion>8</LangVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@ -135,6 +136,7 @@
|
||||
<Compile Include="Rig\RegisterReaders\PoseidonReader\UniHeadTestCtrlTest.cs" />
|
||||
<Compile Include="Rig\Scales\MettlerToledo\ReadStableMassOpTest.cs" />
|
||||
<Compile Include="Rig\TestMethods\GenesisCommunication\GenesisHead\GenesisHeadBatchIntegrationTest.cs" />
|
||||
<Compile Include="Rig\TestMethods\iPerlCommunication\common\OptoTelegramRawTest.cs" />
|
||||
<Compile Include="Rig\Uni\SharedDialogs\SmartMetersCommunication\implementations\PoseidonCorrectionsTest.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@ -159,11 +161,10 @@
|
||||
<Name>SchematicDrawing</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\TBF\TBF.csproj">
|
||||
<Project>{8648FD92-CDA1-4C3A-B5F9-FE547CE1FA48}</Project>
|
||||
<Project>{8648fd92-cda1-4c3a-b5f9-fe547ce1fa48}</Project>
|
||||
<Name>TBF</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Choose>
|
||||
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
|
||||
<ItemGroup>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
25401
packages/Common/NLog.xml
25401
packages/Common/NLog.xml
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,64 +1,87 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
|
||||
|
||||
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<variable name="BasePath" value="" />
|
||||
<targets>
|
||||
<!--CalibrationHelper-->
|
||||
<target name="CalibrationHelper" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\CalibrationHelper.log" CreateDirs="True" layout="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="C:\GenesisLog\${shortdate}\${processname}\{##}_CalibrationHelper.log" />
|
||||
<!--LedRawData-->
|
||||
<target xsi:type="BufferingWrapper" name="TargetLedRawDataBase" bufferSize="10000" flushTimeout="-1" slidingTimeout="true">
|
||||
<target name="LedRawDataBase" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\LedRawData_BASE.log" CreateDirs="True" layout="${longdate} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="C:\GenesisLog\${shortdate}\${processname}\{##}_LedRawData_BASE.log" />
|
||||
</target>
|
||||
<!--C:\GenesisLog\${shortdate}
|
||||
|
||||
<variable name="BasePath" value="\\DELAZ1FSOPS01-1\CordonelDS$\${loggerpc}" />
|
||||
<targets>
|
||||
|
||||
<!--CalibrationHelper-->
|
||||
<target name="CalibrationHelper" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\CalibrationHelper.log" CreateDirs="True" layout ="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="${BasePath}\${shortdate}\${processname}\{##}CalibrationHelper.log" />
|
||||
|
||||
<!--LedRawData-->
|
||||
<target xsi:type="BufferingWrapper"
|
||||
name="TargetLedRawDataBase"
|
||||
bufferSize="10000"
|
||||
flushTimeout="-1"
|
||||
slidingTimeout="true"
|
||||
>
|
||||
<target name="LedRawDataBase" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\LedRawData_BASE.log" CreateDirs="True" layout ="${longdate} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="${BasePath}\${shortdate}\${processname}\{##}_LedRawData_BASE.log" />
|
||||
</target>
|
||||
<!--C:\GenesisLog\${shortdate}
|
||||
C:\GenesisLog\${shortdate}-->
|
||||
<!--MeterBatch-->
|
||||
<target name="MeterBatch" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\Meter_BASE.log" CreateDirs="True" layout="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="C:\GenesisLog\${shortdate}\${processname}\{##}_Meter_BASE.log" />
|
||||
<!--Meter-->
|
||||
<target name="MeterBase" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\Meter_BASE.log" CreateDirs="True" layout="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="C:\GenesisLog\${shortdate}\${processname}\{##}_Meter_BASE.log" />
|
||||
<target name="Slot:0" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\Meter_SlotSlot:0.log" CreateDirs="True" layout="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="C:\GenesisLog\${shortdate}\${processname}\{##}_Meter_SlotSlot:0.log" />
|
||||
<!--COM-->
|
||||
<target name="COMBase" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\COM_BASE.log" CreateDirs="True" layout="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="C:\GenesisLog\${shortdate}\${processname}\{##}_COM_BASE.log" />
|
||||
<!--ServiceFwUpdateBuilder-->
|
||||
<target name="ServiceFwUpdateBuilder" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\ServiceFwUpdateBuilder.log" CreateDirs="True" layout="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="C:\GenesisLog\${shortdate}\${processname}\{##}_ServiceFwUpdateBuilder.log" />
|
||||
<!--ServiceFwUpdateLoader-->
|
||||
<target name="ServiceFwUpdateLoader" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\ServiceFwUpdateLoader.log" CreateDirs="True" layout="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="C:\GenesisLog\${shortdate}\${processname}\{##}_ServiceFwUpdateLoader.log" />
|
||||
<!--ServiceFwUpdateSw-->
|
||||
<target name="ServiceFwUpdateSw" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\ServiceFwUpdateSw.log" CreateDirs="True" layout="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="C:\GenesisLog\${shortdate}\${processname}\{##}_ServiceFwUpdateSw.log" />
|
||||
<!--default-->
|
||||
<target name="default" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\default.log" CreateDirs="True" layout="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="C:\GenesisLog\${shortdate}\${processname}\{##}_default.log" />
|
||||
<target name="PreAdjWr" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\PreAdjWr.log" CreateDirs="True" layout="${longdate} | ${level} | ${message} ${exception:format=toString}" />
|
||||
<target name="ctlBatch" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\ctlBatch.log" CreateDirs="True" layout="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="C:\GenesisLog\${shortdate}\${processname}\{##}_ctlBatch.log" />
|
||||
<target name="StreamingQualityFile" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\StreamingQuality.log" CreateDirs="True" layout="${longdate} | ${level} | ${message} ${exception:format=toString}" />
|
||||
<target name="ProductionUIFile" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\ProductionUIFile.log" CreateDirs="True" layout="${longdate} | ${level} | ${message} ${exception:format=toString}" />
|
||||
</targets>
|
||||
<rules>
|
||||
<!--ServiceFwUpdateBuilder-->
|
||||
<logger name="ServiceFwUpdateBuilder" minLevel="Trace" appendTo="ServiceFwUpdateSw" />
|
||||
<!--ServiceFwUpdateLoader-->
|
||||
<logger name="ServiceFwUpdateLoader" minLevel="Trace" appendTo="ServiceFwUpdateLoader" />
|
||||
<!--ServiceFwUpdateSw-->
|
||||
<logger name="ServiceFwUpdateSw" minLevel="Trace" appendTo="ServiceFwUpdateSw" />
|
||||
<!--CalibrationHelper-->
|
||||
<logger name="CalibrationHelper" minLevel="Trace" appendTo="CalibrationHelper" />
|
||||
<!--LedRawData-->
|
||||
<logger name="LedRawDataBase" minLevel="Trace" appendTo="TargetLedRawDataBase" />
|
||||
<!--MeterBatch-->
|
||||
<logger name="MeterBatch" minLevel="Trace" appendTo="MeterBatch" />
|
||||
<!--Meter-->
|
||||
<logger name="MeterBase" minLevel="Trace" appendTo="MeterBase" />
|
||||
<logger name="Slot:0" minLevel="Trace" appendTo="Slot:0" />
|
||||
<logger name="GenesisRequestProtocolBase" minLevel="Trace" appendTo="MeterBase" />
|
||||
<logger name="MeasurementBase" minLevel="Trace" appendTo="MeterBase" />
|
||||
<!--COM-->
|
||||
<logger name="SerialComPortBase" minLevel="Trace" appendTo="COMBase" />
|
||||
<logger name="IrdaBase" minLevel="Trace" appendTo="COMBase" />
|
||||
<logger name="RfidBase" minLevel="Trace" appendTo="COMBase" />
|
||||
<logger name="TransmitProtocolBase" minLevel="Trace" appendTo="COMBase" />
|
||||
<!--default-->
|
||||
<logger name="*" minLevel="Debug" appendTo="default" />
|
||||
<!--Ui logger-->
|
||||
<logger name="ctlBatch" minLevel="Trace" appendTo="ctlBatch" />
|
||||
<logger name="StreamingQuality" minLevel="Trace" appendTo="StreamingQualityFile" />
|
||||
<logger name="PreAdjWr" minLevel="Trace" appendTo="PreAdjWr" />
|
||||
<logger name="ProductionUI" minLevel="Trace" appendTo="ProductionUIFile" />
|
||||
</rules>
|
||||
|
||||
<!--MeterBatch-->
|
||||
<target name="MeterBatch" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\Meter_BASE.log" CreateDirs="True" layout ="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="${BasePath}\${shortdate}\${processname}\{##}_Meter_BASE.log" />
|
||||
|
||||
<!--Meter-->
|
||||
<target name="MeterBase" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\Meter_BASE.log" CreateDirs="True" layout ="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="${BasePath}\${shortdate}\${processname}\{##}_Meter_BASE.log" />
|
||||
<target name="Slot:0" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\Meter_SlotSlot:0.log" CreateDirs="True" layout ="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="${BasePath}\${shortdate}\${processname}\{##}_Meter_SlotSlot:0.log" />
|
||||
|
||||
<!--COM-->
|
||||
<target name="COMBase" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\COM_BASE.log" CreateDirs="True" layout ="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="${BasePath}\${shortdate}\${processname}\{##}_COM_BASE.log" />
|
||||
|
||||
<!--ServiceFwUpdateBuilder-->
|
||||
<target name="ServiceFwUpdateBuilder" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\ServiceFwUpdateBuilder.log" CreateDirs="True" layout ="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="${BasePath}\${shortdate}\${processname}\{##}_ServiceFwUpdateBuilder.log" />
|
||||
|
||||
<!--ServiceFwUpdateLoader-->
|
||||
<target name="ServiceFwUpdateLoader" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\ServiceFwUpdateLoader.log" CreateDirs="True" layout ="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="${BasePath}\${shortdate}\${processname}\{##}_ServiceFwUpdateLoader.log" />
|
||||
|
||||
<!--ServiceFwUpdateSw-->
|
||||
<target name="ServiceFwUpdateSw" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\ServiceFwUpdateSw.log" CreateDirs="True" layout ="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="${BasePath}\${shortdate}\${processname}\{##}_ServiceFwUpdateSw.log" />
|
||||
|
||||
<!--default-->
|
||||
<target name="default" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\default.log" CreateDirs="True" layout ="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="${BasePath}\${shortdate}\${processname}\{##}_default.log" />
|
||||
<target name="PreAdjWr" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\PreAdjWr.log" CreateDirs="True" layout ="${longdate} | ${level} | ${message} ${exception:format=toString}" />
|
||||
|
||||
<target name="ctlBatch" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\ctlBatch.log" CreateDirs="True" layout ="${longdate} | ${level} | ${message} ${exception:format=toString}" archiveAboveSize="50000000" archiveFileName="${BasePath}\${shortdate}\${processname}\{##}_ctlBatch.log" />
|
||||
<target name="StreamingQualityFile" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\StreamingQuality.log" CreateDirs="True" layout ="${longdate} | ${level} | ${message} ${exception:format=toString}" />
|
||||
<target name="ProductionUIFile" xsi:type="File" fileName="${BasePath}\${shortdate}\${processname}\ProductionUIFile.log" CreateDirs="True" layout ="${longdate} | ${level} | ${message} ${exception:format=toString}" />
|
||||
|
||||
</targets>
|
||||
<rules>
|
||||
<!--ServiceFwUpdateBuilder-->
|
||||
<logger name="ServiceFwUpdateBuilder" minLevel="Trace" appendTo="ServiceFwUpdateSw"/>
|
||||
<!--ServiceFwUpdateLoader-->
|
||||
<logger name="ServiceFwUpdateLoader" minLevel="Trace" appendTo="ServiceFwUpdateLoader"/>
|
||||
<!--ServiceFwUpdateSw-->
|
||||
<logger name="ServiceFwUpdateSw" minLevel="Trace" appendTo="ServiceFwUpdateSw"/>
|
||||
<!--CalibrationHelper-->
|
||||
<logger name="CalibrationHelper" minLevel="Trace" appendTo="CalibrationHelper"/>
|
||||
<!--LedRawData-->
|
||||
<logger name="LedRawDataBase" minLevel="Trace" appendTo="TargetLedRawDataBase"/>
|
||||
<!--MeterBatch-->
|
||||
<logger name="MeterBatch" minLevel="Trace" appendTo="MeterBatch"/>
|
||||
<!--Meter-->
|
||||
<logger name="MeterBase" minLevel="Trace" appendTo="MeterBase"/>
|
||||
<logger name="Slot:0" minLevel="Trace" appendTo="Slot:0"/>
|
||||
|
||||
<logger name="GenesisRequestProtocolBase" minLevel="Trace" appendTo="MeterBase"/>
|
||||
<logger name="MeasurementBase" minLevel="Trace" appendTo="MeterBase"/>
|
||||
<!--COM-->
|
||||
<logger name="SerialComPortBase" minLevel="Trace" appendTo="COMBase"/>
|
||||
<logger name="IrdaBase" minLevel="Trace" appendTo="COMBase"/>
|
||||
<logger name="RfidBase" minLevel="Trace" appendTo="COMBase"/>
|
||||
<logger name="TransmitProtocolBase" minLevel="Trace" appendTo="COMBase"/>
|
||||
<!--default-->
|
||||
<logger name="*" minLevel="Debug" appendTo="default"/>
|
||||
|
||||
<!--Ui logger-->
|
||||
<logger name="ctlBatch" minLevel="Trace" appendTo="ctlBatch"/>
|
||||
<logger name="StreamingQuality" minLevel="Trace" appendTo="StreamingQualityFile"/>
|
||||
<logger name="PreAdjWr" minLevel="Trace" appendTo="PreAdjWr"/>
|
||||
|
||||
<logger name="ProductionUI" minLevel="Trace" appendTo="ProductionUIFile"/>
|
||||
|
||||
</rules>
|
||||
</nlog>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -152,14 +152,80 @@
|
||||
</summary>
|
||||
<returns>name of the port as string</returns>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig">
|
||||
<summary>
|
||||
Collection of port settings
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig.PortName">
|
||||
<summary>
|
||||
Assigns a port name and creates the serial port object
|
||||
Port name e.g. "COM2"
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig.Type">
|
||||
<summary>
|
||||
setup of port type from name (referenced as "Type" in config file)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig.GetSerialPort">
|
||||
<summary>
|
||||
using dotNets <see cref="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig.GetSerialPort"/> for connection
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig.SetSerialPort(System.IO.Ports.SerialPort)">
|
||||
<summary>
|
||||
using dotNets <see cref="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig.GetSerialPort"/> for connection
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.Interfaces.Ports.PortCore.SlotConfig">
|
||||
<summary>
|
||||
Container for port configuration
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.Interfaces.Ports.PortCore.SlotConfig.Slot">
|
||||
<summary>
|
||||
Slot number
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.Interfaces.Ports.PortCore.SlotConfig.Request">
|
||||
<summary>
|
||||
Request port settings
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.Interfaces.Ports.PortCore.SlotConfig.Streaming">
|
||||
<summary>
|
||||
Streaming port settings
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.Interfaces.Ports.PortCore.SlotConfig.Type">
|
||||
<summary>
|
||||
Streaming port settings
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.Interfaces.Ports.PortCore.SlotType">
|
||||
<summary>
|
||||
Definition of type for slot
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.Interfaces.Ports.PortCore.SlotType.DutMeter">
|
||||
<summary>
|
||||
Cordonel used as DUT with two serial ports
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.Interfaces.Ports.PortCore.SlotType.TemperatureMeter">
|
||||
<summary>
|
||||
Cordonel used as temperature meter with one serial port streaming the temperature
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.Interfaces.Ports.PortCore.TransmitPortSettings">
|
||||
<summary>
|
||||
Store Port settings set most likely from transmit protocol
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.TransmitPortSettings.#ctor(System.Nullable{System.Byte},System.Nullable{System.UInt16},System.UInt16,System.Int32,System.UInt32,System.Nullable{System.UInt32},System.Boolean)">
|
||||
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.TransmitPortSettings.#ctor(System.Nullable{System.Byte},System.Nullable{System.UInt16},System.UInt16,System.Int32,System.UInt32,System.Nullable{System.UInt32},System.Boolean,System.Char,System.Int32,System.IO.Ports.Parity)">
|
||||
<summary>
|
||||
The transmission protocol needs to inform the communication port how to setup,
|
||||
The transmission protocol needs to inform the communication port how to set up,
|
||||
this is the data container.
|
||||
</summary>
|
||||
<param name="protSyncByte"></param>
|
||||
@ -169,6 +235,29 @@
|
||||
<param name="baudRate"></param>
|
||||
<param name="receiveBufferFlushThreshold"></param>
|
||||
<param name="doubleSyncByte"></param>
|
||||
<param name="stringDelimiter"></param>
|
||||
<param name="dataBits"></param>
|
||||
<param name="parity"></param>
|
||||
<remarks date="2026-Jan-05" author="T.Wiedebusch">
|
||||
- String delimiter for ASCII to support others than LF "\n",
|
||||
- Flexible DataBits,
|
||||
- Flexible parity.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.Interfaces.Ports.PortCore.TransmitPortSettings.StringDelimiter">
|
||||
<summary>
|
||||
String delimiter for ASCII to support others than LF "\n"
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.Interfaces.Ports.PortCore.TransmitPortSettings.DataBits">
|
||||
<summary>
|
||||
Flexible DataBits to support 7 bits.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.Interfaces.Ports.PortCore.TransmitPortSettings.Parity">
|
||||
<summary>
|
||||
Flexible parity
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.Interfaces.Ports.PortCore.TransmitPortSettings.ProtSyncByte">
|
||||
<summary>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -4,29 +4,6 @@
|
||||
<name>Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.BaseDataEventArgs">
|
||||
<inheritdoc />
|
||||
<summary>
|
||||
abstract for set structure for BaseDataEventArgs
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.BaseDataEventArgs.GetData">
|
||||
<summary>
|
||||
'Base' get event record form real child.
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.BaseDataEventArgs.GetEventData">
|
||||
<summary>
|
||||
get real Event record
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.BaseDataEventArgs.RawData">
|
||||
<summary>
|
||||
Holds the record before decoding, for logging
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.CalibDataEventArgs">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
@ -38,6 +15,17 @@
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.CalibDataEventArgs.GetEventData">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.BendDetectDataEventArgs">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.BendDetectDataEventArgs.NewData">
|
||||
<summary>
|
||||
new record from Stream
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.BendDetectDataEventArgs.GetEventData">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.FlowDataEventArgs">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
@ -84,6 +72,105 @@
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.RequestResponseDataEventArgs.GetEventData">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord">
|
||||
<inheritdoc />
|
||||
<summary>
|
||||
Streaming record for protocol M (information about bend detection and correction)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.StatusBendU0Enum">
|
||||
<summary>
|
||||
The status of the U0 detection for this measurement
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.StatusBendU0Enum.OKAY">
|
||||
<summary>
|
||||
Status okay
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.StatusBendU0Enum.ERROR_GENESISFLOW_INSTALLATION_HIGH_TIME_DIFF">
|
||||
<summary>
|
||||
Error code as defined by field name
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.StatusBendU0Enum.ERROR_GENESISFLOW_INSTALLATION_LOW_FLOW_IGNORE">
|
||||
<summary>
|
||||
Error code as defined by field name
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.StatusBendU0Enum.ERROR_GENESISFLOW_INSTALLATION_BAD_CHANNELS">
|
||||
<summary>
|
||||
Error code as defined by field name
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.StatusBendU0Enum.ERROR_GENESISFLOW_INSTALLATION_FIXED">
|
||||
<summary>
|
||||
Error code as defined by field name
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.InstallationTypeEnum">
|
||||
<summary>
|
||||
An enum describing the installation type detected
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.InstallationTypeEnum.INSTALLATION_U0_180_360">
|
||||
<summary>
|
||||
Installation type code as defined by field name
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.InstallationTypeEnum.INSTALLATION_U0_90_270">
|
||||
<summary>
|
||||
Installation type code as defined by field name
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.InstallationTypeEnum.INSTALLATION_UNDISTURBED">
|
||||
<summary>
|
||||
Installation type code as defined by field name
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.StatusBendU0">
|
||||
<summary>
|
||||
Status of U0 Bend detection
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.InstallationType">
|
||||
<summary>
|
||||
Installation type code
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.CorrectionFactor_percent">
|
||||
<summary>
|
||||
The proportion of the installation correction to apply based on the detected
|
||||
installation. 100% == 0x8000
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.DefaultCorrectionFactor">
|
||||
<summary>
|
||||
The default proportion of the installation correction to apply based on the
|
||||
detected installation. 100% == 0x8000
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.CorrectionFactorScale">
|
||||
<summary>
|
||||
Scale for correction factor to apply to convert it to percentage value 100% == 0x8000
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.PreCorrectionVolumeRaw">
|
||||
<summary>
|
||||
The volume in internal units before correction applied
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.PostCorrectionVolumeRaw">
|
||||
<summary>
|
||||
The volume in internal units after correction applied
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord.ToString">
|
||||
<summary>
|
||||
Get result as string
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord">
|
||||
<inheritdoc />
|
||||
<summary>
|
||||
@ -105,12 +192,12 @@
|
||||
delta time of flight in seconds
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.RAWTotalTimeOfFlight">
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.RawTotalTimeOfFlight">
|
||||
<summary>
|
||||
total time of flight in cordonel units
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.RAWDeltaTimeOfFlight">
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.RawDeltaTimeOfFlight">
|
||||
<summary>
|
||||
delta time of flight in cordonel units
|
||||
</summary>
|
||||
@ -201,5 +288,97 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.RadioConfigurationParams">
|
||||
<summary>
|
||||
All parameters needed for radio setup
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.RadioConfigurationParams.PcbId">
|
||||
<summary>
|
||||
Pcb identification
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.RadioConfigurationParams.SerialNumber">
|
||||
<summary>
|
||||
Serial number
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.RadioConfigurationParams.RadioAddress">
|
||||
<summary>
|
||||
Radio address
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.RadioConfigurationParams.PowerLevel">
|
||||
<summary>
|
||||
Power level
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.RadioConfigurationParams.PowerLevelOption">
|
||||
<summary>
|
||||
Power level option
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.RadioConfigurationParams.ImpedanceCodeNew">
|
||||
<summary>
|
||||
New code for impedance
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.RadioConfigurationParams.ImpedanceCodeOption">
|
||||
<summary>
|
||||
Impedance code option
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.RadioConfigurationParams.EncryptionKey">
|
||||
<summary>
|
||||
Encryption key
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.RadioConfigurationParams.FrqOffset">
|
||||
<summary>
|
||||
Frequency offset
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.RegisterToDb">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.RegisterToDb.#ctor(System.Byte[],System.Byte[])">
|
||||
<summary>
|
||||
Register address and value to DB
|
||||
</summary>
|
||||
<param name="adresse"></param>
|
||||
<param name="value"></param>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.RegisterToDb.Adresse">
|
||||
<summary>
|
||||
Address
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.RegisterToDb.Value">
|
||||
<summary>
|
||||
Value
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.TempTofCalc">
|
||||
<summary>
|
||||
Temperature Time Of Flight calculation
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.TempTofCalc.RefDate">
|
||||
<summary>
|
||||
Reference data
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.TempTofCalc.RefTemp">
|
||||
<summary>
|
||||
Reference temperature
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.TempTofCalc.Tof">
|
||||
<summary>
|
||||
Time Of Flight
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -198,6 +198,16 @@
|
||||
Acknowledge feedback from meter after communication
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.RequestAcknowledgeState.CommandNotAssigned">
|
||||
<summary>
|
||||
Acknowledge code for unassigned command
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.RequestAcknowledgeState.Unsent">
|
||||
<summary>
|
||||
Will be used initially as the record is not sent
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.RequestAcknowledgeState.NoResponse">
|
||||
<summary>
|
||||
Response missing
|
||||
@ -224,6 +234,11 @@
|
||||
The response record couldn't be decoded
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.RequestAcknowledgeState.WakeupMessage">
|
||||
<summary>
|
||||
The meter sent a wakeup message instead of the required data
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.RequestAcknowledgeState.Ok">
|
||||
<summary>
|
||||
Valid meter response record
|
||||
@ -282,11 +297,6 @@
|
||||
Holds request commands with detail parameters to see processing state
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.Command">
|
||||
<summary>
|
||||
Indicates the base command <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands" />
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.ResponseCommand">
|
||||
<summary>
|
||||
Indicates the base command <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands" />
|
||||
@ -485,6 +495,15 @@
|
||||
<remarks date="2021-Feb-02" author="T.Wiedebusch">
|
||||
- Avoid enqueue of _recordInProcess if retry counter is 0.
|
||||
</remarks>
|
||||
<remarks date="2022-Nov-04" author="T.Wiedebusch">
|
||||
- Additional DEBUG information included about FIFO and loops.
|
||||
</remarks>
|
||||
<remarks date="2022-Nov-07" author="T.Wiedebusch">
|
||||
- Command not assigned response for recordInProcess == null.
|
||||
</remarks>
|
||||
<remarks date="2024-Apr-22" author="T.Wiedebusch">
|
||||
- Initial request acknowledge state changed from NotDecoded to NoResponse.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.AddRecordToSendFifo(System.Byte,System.Byte[],Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition,System.Boolean,System.UInt16)">
|
||||
<summary>
|
||||
@ -518,6 +537,23 @@
|
||||
<remarks date="2020-Jan-18" author="T.Wiedebusch">
|
||||
- Initial skip retry error code set to 0x0004 (e.g FW not installed 0x0004).
|
||||
</remarks>
|
||||
<remarks date="2023-Mai-16" author="T.Wiedebusch">
|
||||
- Hide data in log forwarded to DecodeDateForPhysicalLayer to hide passwords in log files.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.AddRecordToSendFifoUI1236(System.String,System.Byte[],Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition,System.Boolean,System.UInt16)">
|
||||
<summary>
|
||||
Record dispatcher to send FIFO of UI1236 command
|
||||
</summary>
|
||||
<remarks date="2022-Aug-24" author="R.Drabesch">
|
||||
- Initial
|
||||
</remarks>
|
||||
<param name="ident">string for logging of slot</param>
|
||||
<param name="payload">Data package with all details like CRC, etc</param>
|
||||
<param name="register"><see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition" /> which is intend</param>
|
||||
<param name="hideDataInLog">hiding data in log file to avoid spying of passwords</param>
|
||||
<param name="skipRetryErrorCode">error mask to skip retries</param>
|
||||
<returns>the assembled record for the send FIFO</returns>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.DecodeRecord(Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.IPortDataEventArgs)">
|
||||
<summary>
|
||||
@ -549,6 +585,30 @@
|
||||
<remarks date="2019-Jan-22" author="T.Wiedebusch">
|
||||
- Avoid activation of wakeup retry if record is meanwhile acknowledged.
|
||||
</remarks>
|
||||
<remarks date="2022-Jul-19" author="T.Wiedebusch">
|
||||
- Wakeup message handling changed,
|
||||
- Multiple replies on wakeup message allowed.
|
||||
</remarks>
|
||||
<remarks date="2022-Oct-02" author="T.Wiedebusch">
|
||||
- On wakeup message 5 retires are allowed to avoid an infinite loop.
|
||||
</remarks>
|
||||
<remarks date="2022-Oct-04" author="T.Wiedebusch">
|
||||
- On wakeup message exit this routine.
|
||||
</remarks>
|
||||
<remarks date="2023-Feb-13" author="T.Wiedebusch">
|
||||
- Early exit on _recordInProcess == null,
|
||||
- Wakeup message retries from 5 to 2,
|
||||
- Removed error base from error code decision as error base is only the AppId
|
||||
</remarks>
|
||||
<remarks date="2023-Sep-01" author="T.Wiedebusch">
|
||||
- HideDataInLog.
|
||||
</remarks>
|
||||
<remarks date="2024-Jan-24" author="T.Wiedebusch">
|
||||
- Ignore wakeup if message already acknowledged (avoid to set
|
||||
"_recordInProcess.Acknowledge = RequestAcknowledgeState.NotDecoded"),
|
||||
- Avoid to overwrite "_recordInProcess.Acknowledge = RequestAcknowledgeState.Acknowledge" with
|
||||
"RequestAcknowledgeState.WakeupMessage".
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.CommandToMeter(System.Byte,Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition,System.Byte[],System.Nullable{System.Int32},System.Boolean,System.UInt16)">
|
||||
<summary>
|
||||
@ -595,6 +655,25 @@
|
||||
<remarks date="2019-Jan-18" author="T.Wiedebusch">
|
||||
- Default <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.CommunicationConfig.SkipRetryErrorCode"/> set.
|
||||
</remarks>
|
||||
<remarks date="2023-Sep-06" author="T.Wiedebusch">
|
||||
- MultipleReadData based on data size.
|
||||
</remarks>
|
||||
<remarks date="2023-Nov-24" author="T.Wiedebusch">
|
||||
- Exit multiple read date if retries exceeded.
|
||||
</remarks>
|
||||
<remarks date="2024-Apr-11" author="T.Wiedebusch">
|
||||
- Exit multiple read date if retries exceeded increased to <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.CommunicationConfig.MaxRequestRetries"/>.
|
||||
</remarks>
|
||||
<remarks date="2024-Apr-11 Version 2" author="T.Wiedebusch">
|
||||
- Rewound to version from 06.09.2023 14:44:33 before Commit 8c9d7704.
|
||||
</remarks>
|
||||
<remarks date="2024-Apr-15" author="T.Wiedebusch">
|
||||
- Removed useless too short comments as every string is going to be delimited by a 0 and usually won't match
|
||||
to a 4 byte chunk.
|
||||
</remarks>
|
||||
<remarks date="2026-Jan-06" author="T.Wiedebusch">
|
||||
- Removed redundant 'return cRecord'.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.CheckErrorCode">
|
||||
<summary>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -27,17 +27,22 @@
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder">
|
||||
<summary>
|
||||
Data fields and definitions for GENESIS streaming protocol
|
||||
Data fields and definitions for GENESIS streaming protocol
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder._bendDetectionDefault">
|
||||
<summary>
|
||||
Default data for bend detection tests of Genesis
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder._dataDefault">
|
||||
<summary>
|
||||
Default data for
|
||||
Default data for flow tests of Genesis
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.DataCalib">
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder._rawDataDefault">
|
||||
<summary>
|
||||
Calibration data
|
||||
Default data for calibration of Genesis
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.#ctor(System.Boolean)">
|
||||
@ -45,50 +50,90 @@
|
||||
Constructor initializes all decoded members with default values
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.DataCalib">
|
||||
<summary>
|
||||
Calibration data
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.DataFlowTest">
|
||||
<summary>
|
||||
Flow test data
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.DataBendDetectTest">
|
||||
<summary>
|
||||
Bend detection test data
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.DecodeMsg(System.String)">
|
||||
<summary>
|
||||
Decoding the raw message
|
||||
</summary>
|
||||
<param name="rawMsg">message received as one line delimited with LF</param>
|
||||
<returns>true if decoding was successful and data has been validated</returns>
|
||||
<remarks date="2023-Mar-09" author="T.Wiedebusch">
|
||||
- Modified using common CRC check before branching to the protocol specific decoder.
|
||||
</remarks>
|
||||
<remarks date="2023-Dec-06" author="T.Wiedebusch">
|
||||
- Introduced protocol 'm' for bending detection.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.DecodeProtocolF(System.Collections.Generic.IList{System.String})">
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.DecodeProtocolM(Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord@,System.Collections.Generic.IList{System.String})">
|
||||
<summary>
|
||||
Extracting message from string fields for protocol 'm'
|
||||
</summary>
|
||||
<param name="dataBendTestRec">reference to bend detection test record</param>
|
||||
<param name="fields">Separated fields containing the measurement as string</param>
|
||||
<returns></returns>
|
||||
<remarks date="2023-Mar-09" author="T.Wiedebusch">
|
||||
- Modified using common CRC check in advance.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.DecodeProtocolF(Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.FlowTestRecord@,System.Collections.Generic.IList{System.String})">
|
||||
<summary>
|
||||
Extracting message from string fields for protocol 'f'
|
||||
</summary>
|
||||
<param name="field">Separated fields containing the measurement as string</param>
|
||||
<param name="dataFlowTestRec">reference to flow test record</param>
|
||||
<param name="fields">Separated fields containing the measurement as string</param>
|
||||
<returns></returns>
|
||||
<remarks date="2023-Mar-09" author="T.Wiedebusch">
|
||||
- Modified using common CRC check in advance.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.DecodeProtocolG(Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord@,System.Collections.Generic.IList{System.String})">
|
||||
<summary>
|
||||
Extracting message from string fields to individual raw channel for protocol 'g'
|
||||
</summary>
|
||||
<param name="dataProtGRec">Reference to result structure for raw data for one channel</param>
|
||||
<param name="field">Separated fields containing the measurement as string</param>
|
||||
<param name="fields">Separated fields containing the measurement as string</param>
|
||||
<returns>true if protocol is valid</returns>
|
||||
<remarks date="2018-Mar-22" author="T.Wiedebusch">
|
||||
- Usage of VolumeFactorRawToQm and calculation of AccuDutOverflowVolumeCm
|
||||
</remarks>
|
||||
<remarks date="2023-Mar-09" author="T.Wiedebusch">
|
||||
- Modified using common CRC check in advance.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.DecodeProtocolH(Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord@,System.Collections.Generic.IList{System.String})">
|
||||
<summary>
|
||||
Extracting message from string fields to individual raw channel for protocol 'g'
|
||||
</summary>
|
||||
<param name="dataProtHRec">Reference to result structure for raw data for one channel</param>
|
||||
<param name="field">Separated fields containing the measurement as string</param>
|
||||
<param name="fields">Separated fields containing the measurement as string</param>
|
||||
<returns>true if protocol is valid</returns>
|
||||
<remarks date="2018-Mar-22" author="T.Wiedebusch">
|
||||
- Usage of VolumeFactorRawToQm and calculation of AccuDutOverflowVolumeCm
|
||||
</remarks>
|
||||
<remarks date="2023-Mar-09" author="T.Wiedebusch">
|
||||
- Modified using common CRC check in advance.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.ProtFsubString">
|
||||
field position in protocol 'f'
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.ProtMsubString">
|
||||
field position in protocol 'm'
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.ProtGsubString">
|
||||
field position in protocol 'g'
|
||||
</member>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -9,11 +9,11 @@
|
||||
Applies an action to a list of meters in a separate thread
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCall.RunAction(System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter})">
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCall.RunAction(System.Collections.Generic.IEnumerable{Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter})">
|
||||
<summary>
|
||||
Starts a new task for a list of meters
|
||||
</summary>
|
||||
<param name="forMeters"></param>
|
||||
<param name="meters"></param>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCall.DoSingleAction(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
|
||||
<summary>
|
||||
@ -69,70 +69,119 @@
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallStopCalibration.DoSingleAction(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallTestBenchDispose">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallTestBenchDispose.DoSingleAction(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallStopMeasurement">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallStopMeasurement.DoSingleAction(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.ErrorState">
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes">
|
||||
<summary>
|
||||
Common definition for Meter handling in production and on test benches
|
||||
</summary>
|
||||
<summary>
|
||||
represents any error state a meter can have
|
||||
if hash code is 0 everything is running
|
||||
is Flags, so watch out to check with hasFlag!
|
||||
Display codes to keep the user informed about the production and processing step.
|
||||
This is useful as the user doesn't need to connect the device to a PC, he can
|
||||
immediately inspect the status of the device.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.ErrorState.None">
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.None">
|
||||
<summary>
|
||||
everything is good
|
||||
Status not set
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.ErrorState.InitFailed">
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.Error">
|
||||
<summary>
|
||||
problems on initialization
|
||||
Error state
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.ErrorState.MeasurementFailed">
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.PickingStarted">
|
||||
<summary>
|
||||
problems on Measurement
|
||||
Picking in progress
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.ErrorState.ComErrorRequestPort">
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.PickingTested">
|
||||
<summary>
|
||||
Problem on communication with meter
|
||||
Picking succeeded, next step can be initiated
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.ErrorState.ComErrorLed">
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.PickingFailed">
|
||||
<summary>
|
||||
Problem on optical output on meter
|
||||
Picking failed
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.ErrorState.ComErrorPulse">
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.PressureTested">
|
||||
<summary>
|
||||
if pulse can not readout
|
||||
Pressure testing succeeded, next step can be initiated
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.ErrorState.ErrorQRef">
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.PressureTestedFailed">
|
||||
<summary>
|
||||
no (or no good) reference flow available
|
||||
Pressure test failed
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.ErrorState.CalibrationFailed">
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.PressureTestedPending">
|
||||
<summary>
|
||||
Calibration went wrong
|
||||
Pressure test failed
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.ErrorState.CalibrationOutOfRange">
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.Mounted">
|
||||
<summary>
|
||||
calibration is out of range. Check documentation from meter to find limitation
|
||||
Connection between PCBID, Serial Number and Order number done
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.ErrorState.FatalError">
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.ZeroFlow">
|
||||
<summary>
|
||||
blue screen like error
|
||||
Zero flow test succeeded, next step can be initiated
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.ZeroFlowFailed">
|
||||
<summary>
|
||||
Zero flow test failed
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.FlowCalibrated">
|
||||
<summary>
|
||||
Flow calibration succeeded, next step can be initiated
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.FlowCalibrationOurOfRange">
|
||||
<summary>
|
||||
Flow calibration failed
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.FlowTested">
|
||||
<summary>
|
||||
Flow test succeeded, next step can be initiated
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.FlowTestFailed">
|
||||
<summary>
|
||||
Flow test failed
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.FinalTestFailed">
|
||||
<summary>
|
||||
Final test failed, else the display will be switched to operational mode,
|
||||
showing the actual accumulated volume
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.FwUpdateActive">
|
||||
<summary>
|
||||
FW update is ongoing
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.FwUpdateFailed">
|
||||
<summary>
|
||||
FW update failed
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.FwUpToDate">
|
||||
<summary>
|
||||
FW update succeeded
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch">
|
||||
@ -345,11 +394,6 @@
|
||||
read-only to see current Process state <see cref="T:Xylem.Common.Metrology.Measurements.Consts.ProcessState" />
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.ErrorStatus">
|
||||
<summary>
|
||||
read-only to see current Error state <see cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.ErrorState" />
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.Slot">
|
||||
<summary>
|
||||
the current slot in test-bench
|
||||
@ -361,17 +405,35 @@
|
||||
has to be calculated depending on flow-rate and nominal diameter (DN)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.SkipPreparationForTestBench">
|
||||
<summary>
|
||||
Skip the test bench preparation process
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.CurrentActionText">
|
||||
<summary>
|
||||
Set the current action test
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.GetPcbId">
|
||||
<summary>
|
||||
Read the PcbId from IMeter, if device has no readable PcbId simulate one
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.ConnectMeter">
|
||||
<summary>
|
||||
Open Com ports, try some communication, login
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.SetupFromConfigFile(System.Int32,System.Boolean)">
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.SetupFromConfigFile(System.Int32,System.Boolean,System.Boolean,System.Boolean)">
|
||||
<summary>
|
||||
Setup up meter from config file. just a workaround for vb6 calls. please do not use if your working with .net
|
||||
</summary>
|
||||
<param name="slot">Slot Number for Test bench</param>
|
||||
<param name="ignoreCorruptedData">don´t send CRC error or telegrams with error flag to caller</param>
|
||||
<param name="useRequest"></param>
|
||||
<param name="useStreaming"></param>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.Logout">
|
||||
<summary>
|
||||
@ -383,11 +445,14 @@
|
||||
Start Login with password service
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.Login(System.String)">
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.Login(System.String,System.Boolean,System.Boolean)">
|
||||
<summary>
|
||||
Start Login with out password service and a fixed password
|
||||
Start Login without password service and a fixed password
|
||||
</summary>
|
||||
<param name="password">password for login</param>
|
||||
<param name="runImmediately">execute immediately</param>
|
||||
<param name="skipReadMeterFwAndAssignRegisters">skip app readout and register generation to speed up
|
||||
the initial connection process</param>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.InitMeasurement">
|
||||
<summary>
|
||||
@ -408,7 +473,7 @@
|
||||
Stop receive record from meter and decode record
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.GetMainMeasurementResult(System.Nullable{System.Double},System.Nullable{System.Double},System.Boolean)">
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.GetMainMeasurementResult(System.Nullable{System.Double},System.Nullable{System.Double},System.Boolean,Xylem.Common.Metrology.Measurements.Consts.MeasurementDirection)">
|
||||
<remarks date="2018JAN09" author="drabesch">
|
||||
- simplify the measurement results handling
|
||||
- getting the main measurement of the entire device (combination of all paths)
|
||||
@ -420,7 +485,7 @@
|
||||
</summary>
|
||||
<returns>Calculated results</returns>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.GetAllMeasurementResults(System.Nullable{System.Double},System.Nullable{System.Double},System.Boolean,System.Nullable{System.Int32})">
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.GetAllMeasurementResults(System.Nullable{System.Double},System.Nullable{System.Double},System.Boolean,System.Nullable{System.Int32},Xylem.Common.Metrology.Measurements.Consts.MeasurementDirection)">
|
||||
<summary>
|
||||
The first measurement is ALWAYS a FlowTestRecord.
|
||||
</summary>
|
||||
@ -432,6 +497,13 @@
|
||||
<param name="onlyChannelNr">leave empty for an aggregate state for all measurements or pass the channel number to check</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.RequestIntermediateMeasurementState(System.Nullable{System.Int32})">
|
||||
<summary>
|
||||
Request for intermediate measurement state.
|
||||
</summary>
|
||||
<param name="onlyChannelNr"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.InitCalibration">
|
||||
<summary>
|
||||
set up calibration parameter (calibration factor to default) and set meter into calibration mode
|
||||
@ -448,9 +520,7 @@
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.StopCalibration">
|
||||
<summary>
|
||||
Meter must have a active for calibration <see />
|
||||
Stop receive record from meter, decode and store record
|
||||
record will not calculate or store
|
||||
Meter must have an active Stop Record for calibration
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.GetCalibrationState">
|
||||
@ -518,6 +588,11 @@
|
||||
Clear all object set up on runtime
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.TestBenchDispose">
|
||||
<summary>
|
||||
Dispose the entire test bench
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterEvents">
|
||||
<summary>
|
||||
Interface for <see cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter"/> Events
|
||||
@ -559,5 +634,35 @@
|
||||
occurs when the calibration is completed
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.DataPackages.MeasurementRecords.FlowDeviations.RequierdFlowQmPerH">
|
||||
<summary>
|
||||
Flowrate for setting up the Pumps on bench
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.DataPackages.MeasurementRecords.FlowDeviations.RequierdTimeS">
|
||||
<summary>
|
||||
how long the flow should last
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.DataPackages.MeasurementRecords.FlowDeviations.MeasuredRefFlowQmPerH">
|
||||
<summary>
|
||||
Corrected measurement of flowrate from Refrence meter
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.DataPackages.MeasurementRecords.FlowDeviations.RefTimeS">
|
||||
<summary>
|
||||
how long the mesurement was running
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.DataPackages.MeasurementRecords.FlowDeviations.MeasuredDutFlowQmPerH">
|
||||
<summary>
|
||||
Measurement of flowrate from DUT
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Hardware.WaterMeter.DataPackages.MeasurementRecords.FlowDeviations.DutTimeS">
|
||||
<summary>
|
||||
how long the mesurement was running for DUT
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -81,7 +81,25 @@
|
||||
</history>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Metrology.Measurements.BaseMeasurement.#ctor(System.Int32,System.Type,System.Int32,System.Int32)">
|
||||
<inheritdoc />
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="slot"></param>
|
||||
<param name="measurementRecordType"></param>
|
||||
<param name="intermediateUpdateTimeS"></param>
|
||||
<param name="channel"></param>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Metrology.Measurements.BaseMeasurement.RequestIntermediateRecordByTimer(System.Object,System.Timers.ElapsedEventArgs)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="o"></param>
|
||||
<param name="e"></param>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Metrology.Measurements.BaseMeasurement.RequestIntermediateRecord">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Metrology.Measurements.BaseMeasurement.GetType">
|
||||
<inheritdoc />
|
||||
@ -167,7 +185,7 @@
|
||||
The Result is NOT being stored to the meter.
|
||||
CAN BE USED FOR STATIC START/STOP AND FLYING START/STOP PROCEDURE
|
||||
</summary>
|
||||
<param name="RefVolumeCm">reference volume in m³</param>
|
||||
<param name="refVolumeCm">reference volume in m³</param>
|
||||
<param name="refTimeS">reference time in seconds</param>
|
||||
<param name="reqDeviationPercent">the deviation to set the calibration in %</param>
|
||||
<returns> calibration factor as relative value or null if calibration factor cannot be calculated</returns>
|
||||
@ -317,6 +335,118 @@
|
||||
Calibration is stored on meter
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Metrology.Measurements.Consts.Units">
|
||||
<summary>
|
||||
SI Units
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Metrology.Measurements.Consts.Units.Name">
|
||||
<summary>
|
||||
Unit definitions based on SI or derived SI or NON SI
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.Name.UNITLESS">
|
||||
<summary>
|
||||
Value without any attachable unit []
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.Name.NORMALIZED">
|
||||
<summary>
|
||||
Normalized to +/- 1.000 [norm]
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.Name.PERCENT">
|
||||
<summary>
|
||||
Percent [%]
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.Name.VOLTAGE_V">
|
||||
<summary>
|
||||
Voltage in Volts [V]
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.Name.CURRENT_A">
|
||||
<summary>
|
||||
Current in Amperes [A]
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.Name.ELECTRICAL_POWER_W">
|
||||
<summary>
|
||||
Electrical Power in Watts [W]
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.Name.ELECTRICAL_LOAD_Ah">
|
||||
<summary>
|
||||
Electrical Load in Ampere hours [Ah]
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.Name.DISTANCE_m">
|
||||
<summary>
|
||||
Distance in Meters [m]
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.Name.FLOW_RATE_cm_per_h">
|
||||
<summary>
|
||||
Flow rate in cubic-meters per hour [m³/h]
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.Name.TEMPERATURE_degC">
|
||||
<summary>
|
||||
Temperature in degree Celsius [°C]
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.Name.TIME_s">
|
||||
<summary>
|
||||
Time in seconds [s]
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.Name.PRESSURE_Pa">
|
||||
<summary>
|
||||
Pressure in Pascal [Pa]
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.Name.FREQUENCY_Hz">
|
||||
<summary>
|
||||
Frequency in Hertz [Hz]
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Metrology.Measurements.Consts.Units.SiUnit">
|
||||
<summary>
|
||||
Combine SI unit names with string value
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.SiUnit.Name">
|
||||
<summary>
|
||||
Hard coded return string from FM2014
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.SiUnit.AbbreviationStr">
|
||||
<summary>
|
||||
SI unit string
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Metrology.Measurements.Consts.Units.SiUnit.#ctor(Xylem.Common.Metrology.Measurements.Consts.Units.Name,System.String)">
|
||||
<summary>
|
||||
Ctor
|
||||
</summary>
|
||||
<param name="name"></param>
|
||||
<param name="abbreviationStr"></param>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.Consts.Units.SiUnitTbl">
|
||||
<summary>
|
||||
Table of SI and NON-SI units
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Metrology.Measurements.Consts.Units.GetInfo(Xylem.Common.Metrology.Measurements.Consts.Units.Name)">
|
||||
<summary>
|
||||
Get the information string
|
||||
</summary>
|
||||
<param name="name"></param>
|
||||
<returns>Unit string</returns>
|
||||
<remarks date="2026-Jan-10" author="Thomas Wiedebusch">
|
||||
- Initial.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Metrology.Measurements.IMeasurement">
|
||||
<inheritdoc />
|
||||
<summary>
|
||||
@ -345,6 +475,11 @@
|
||||
Actual state of the measurement
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Xylem.Common.Metrology.Measurements.IMeasurement.FlowDirectionforCalculatingVol">
|
||||
<summary>
|
||||
Actual state of the measurement
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Metrology.Measurements.IMeasurement.Clear">
|
||||
<summary>
|
||||
Clear start, intermediate and end record and set action state to idle
|
||||
@ -382,7 +517,7 @@
|
||||
The timing will be set by the IntermediateUpdateTimeS.
|
||||
</summary>
|
||||
<param name="refTimeS"></param>
|
||||
<param name="RefVolumeCm"></param>
|
||||
<param name="refVolumeCm"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Metrology.Measurements.IMeasurement.GetIntermediateMeasurementResult(System.Nullable{System.Double},System.Nullable{System.Double})">
|
||||
@ -390,7 +525,7 @@
|
||||
Returning the intermediate results of the ongoing measurement from the start of measurement until now!
|
||||
</summary>
|
||||
<param name="refTimeS"></param>
|
||||
<param name="RefVolumeCm"></param>
|
||||
<param name="refVolumeCm"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Metrology.Measurements.IMeasurement.GetFinalMeasurementResult(System.Nullable{System.Double},System.Nullable{System.Double})">
|
||||
@ -398,7 +533,7 @@
|
||||
Returning the results of the measurements from start until stop.
|
||||
</summary>
|
||||
<param name="refTimeS">Measurement duration is needed explicit for flying start/stop procedure</param>
|
||||
<param name="RefVolumeCm">reference volume is ALWAYS needed for scale and deviation</param>
|
||||
<param name="refVolumeCm">reference volume is ALWAYS needed for scale and deviation</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Metrology.Measurements.IMeasurement.RequestIntermediateRecord">
|
||||
@ -463,6 +598,21 @@
|
||||
actual volume in cubic meters
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.MeasurementRecord.ForwardVolumeCm">
|
||||
<summary>
|
||||
Forward volume in cubic meters
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.MeasurementRecord.NegativeReverseVolumeCm">
|
||||
<summary>
|
||||
Reverse volume in cubic meters as negative value
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.MeasurementRecord.FlowRateCmPh">
|
||||
<summary>
|
||||
Flow rate in cubic meters per hour
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.MeasurementRecord.OverflowVolumeCm">
|
||||
<summary>
|
||||
Overflow volume
|
||||
@ -525,7 +675,9 @@
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Xylem.Common.Metrology.Measurements.MeasurementResults">
|
||||
<inheritdoc />
|
||||
<summary>
|
||||
Calculate the measurements based on time, start- and stop-volume and overflow.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Xylem.Common.Metrology.Measurements.MeasurementResults.State">
|
||||
<inheritdoc cref="T:Xylem.Common.Metrology.Measurements.Consts.MeasurementResultsStates"/>
|
||||
@ -614,7 +766,7 @@
|
||||
this will use the <see cref="F:Xylem.Common.Metrology.Measurements.MeasurementResults.CorrectedDutVolumeCm"/>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Xylem.Common.Metrology.Measurements.MeasurementResults.#ctor(Xylem.Common.Metrology.Measurements.IMeasurementRecord,Xylem.Common.Metrology.Measurements.IMeasurementRecord,System.Double,System.Double,System.Nullable{System.Double},System.Nullable{System.Double},System.Int32)">
|
||||
<member name="M:Xylem.Common.Metrology.Measurements.MeasurementResults.#ctor(Xylem.Common.Metrology.Measurements.IMeasurementRecord,Xylem.Common.Metrology.Measurements.IMeasurementRecord,System.Double,System.Double,System.Nullable{System.Double},System.Nullable{System.Double},System.Int32,Xylem.Common.Metrology.Measurements.Consts.MeasurementDirection)">
|
||||
<summary>
|
||||
Calculation of measurement results, overflow will be taken into account:
|
||||
- DutVolumeCm in cubic meters:
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -2,44 +2,48 @@
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<section name="Xylem.Common.Ui.GenesisToolBox.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
|
||||
<section name="Xylem.Common.Ui.GenesisToolBox.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
<userSettings>
|
||||
<Xylem.Common.Ui.GenesisToolBox.Properties.Settings>
|
||||
<setting name="InitialBinaryPath" serializeAs="String">
|
||||
<value/>
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="InitialPackageFile" serializeAs="String">
|
||||
<value/>
|
||||
<value />
|
||||
</setting>
|
||||
</Xylem.Common.Ui.GenesisToolBox.Properties.Settings>
|
||||
</userSettings>
|
||||
<appSettings>
|
||||
<add key="AdminName" value="My Name"/>
|
||||
<add key="AdminEMail" value="MyEMailAddress"/>
|
||||
<add key="ClientSettingsProvider.ServiceUri" value=""/>
|
||||
<add key="AdminName" value="My Name" />
|
||||
<add key="AdminEMail" value="MyEMailAddress" />
|
||||
<add key="ClientSettingsProvider.ServiceUri" value="" />
|
||||
</appSettings>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0"/>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Xylem.Common.CommonCore" publicKeyToken="null" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.8.18.29406" newVersion="2.8.18.29406" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<system.web>
|
||||
<membership defaultProvider="ClientAuthenticationMembershipProvider">
|
||||
<providers>
|
||||
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri=""/>
|
||||
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
|
||||
</providers>
|
||||
</membership>
|
||||
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
|
||||
<providers>
|
||||
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400"/>
|
||||
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
|
||||
</providers>
|
||||
</roleManager>
|
||||
</system.web>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user