Merge remote-tracking branch 'private-origin/develop/SLM-PT50_genesisDirectDecode' into develop/SLM-PT50_genesisDirectDecode

This commit is contained in:
Michal Buzik 2026-08-05 12:48:48 +02:00
commit 126322584f
297 changed files with 231935 additions and 784 deletions

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Root Type="DevExpress.CodeRush.Foundation.CodePlaces.Options.FavoritesListContainer">
<Options Language="Neutral">
<Groups />
</Options>
</Root>

View File

@ -2,6 +2,7 @@
/// Copyright (c) 2016-2021 Sensus Slovensko a.s. /// Copyright (c) 2016-2021 Sensus Slovensko a.s.
/// ///
using System; using System;
using System.Linq;
namespace Common namespace Common
{ {
@ -286,97 +287,97 @@ namespace Common
public static bool IsQuantity(Unit unit, Quantity quantity) public static bool IsQuantity(Unit unit, Quantity quantity)
{ {
return (quantity == GetQuantity(unit)); return GetQuantity(unit).Contains(quantity);
} }
public static Quantity GetQuantity(Unit unit) public static Quantity[] GetQuantity(Unit unit)
{ {
switch (unit) switch (unit)
{ {
case Unit.pulse: case Unit.pulse:
case Unit.degree: case Unit.degree:
return Quantity.Pulses; return new[] { Quantity.Pulses };
case Unit.ml: case Unit.ml:
return Quantity.Volume; return new[] { Quantity.Volume, Quantity.MultiFunctionalVariables };
case Unit.l: case Unit.l:
return Quantity.Volume; return new[] { Quantity.Volume, Quantity.MultiFunctionalVariables };
case Unit.dm3: case Unit.dm3:
return Quantity.Volume; return new[] { Quantity.Volume, Quantity.MultiFunctionalVariables };
case Unit.USgal: case Unit.USgal:
return Quantity.Volume; return new[] { Quantity.Volume, Quantity.MultiFunctionalVariables };
case Unit.UKgal: case Unit.UKgal:
return Quantity.Volume; return new[] { Quantity.Volume, Quantity.MultiFunctionalVariables };
case Unit.cf: case Unit.cf:
return Quantity.Volume; return new[] { Quantity.Volume, Quantity.MultiFunctionalVariables };
case Unit.m3: case Unit.m3:
return Quantity.Volume; return new[] { Quantity.Volume, Quantity.MultiFunctionalVariables };
case Unit.lph: case Unit.lph:
return Quantity.Flow; return new[] { Quantity.Flow };
case Unit.cfph: case Unit.cfph:
return Quantity.Flow; return new[] { Quantity.Flow };
case Unit.lpm: case Unit.lpm:
return Quantity.Flow; return new[] { Quantity.Flow };
case Unit.USgalpm: case Unit.USgalpm:
return Quantity.Flow; return new[] { Quantity.Flow };
case Unit.m3ph: case Unit.m3ph:
return Quantity.Flow; return new[] { Quantity.Flow };
case Unit.lps: case Unit.lps:
return Quantity.Flow; return new[] { Quantity.Flow };
case Unit.USgalps: case Unit.USgalps:
return Quantity.Flow; return new[] { Quantity.Flow };
case Unit.m3pm: case Unit.m3pm:
return Quantity.Flow; return new[] { Quantity.Flow };
case Unit.cfs: case Unit.cfs:
return Quantity.Flow; return new[] { Quantity.Flow };
case Unit.gps: case Unit.gps:
return Quantity.MassFlow; return new[] { Quantity.MassFlow};
case Unit.gpm: case Unit.gpm:
return Quantity.MassFlow; return new[] { Quantity.MassFlow};
case Unit.gph: case Unit.gph:
return Quantity.MassFlow; return new[] { Quantity.MassFlow};
case Unit.kgps: case Unit.kgps:
return Quantity.MassFlow; return new[] { Quantity.MassFlow};
case Unit.kgpm: case Unit.kgpm:
return Quantity.MassFlow; return new[] { Quantity.MassFlow};
case Unit.kgph: case Unit.kgph:
return Quantity.MassFlow; return new[] { Quantity.MassFlow};
case Unit.tps: case Unit.tps:
return Quantity.MassFlow; return new[] { Quantity.MassFlow};
case Unit.tpm: case Unit.tpm:
return Quantity.MassFlow; return new[] { Quantity.MassFlow};
case Unit.tph: case Unit.tph:
return Quantity.MassFlow; return new[] { Quantity.MassFlow};
case Unit.lbps: case Unit.lbps:
return Quantity.MassFlow; return new[] { Quantity.MassFlow};
case Unit.lbpm: case Unit.lbpm:
return Quantity.MassFlow; return new[] { Quantity.MassFlow};
case Unit.lbph: case Unit.lbph:
return Quantity.MassFlow; return new[] { Quantity.MassFlow};
case Unit.g: case Unit.g:
return Quantity.Mass; return new[] { Quantity.Mass, Quantity.MultiFunctionalVariables };
case Unit.oz: case Unit.oz:
return Quantity.Mass; return new[] { Quantity.Mass, Quantity.MultiFunctionalVariables };
case Unit.lb: case Unit.lb:
return Quantity.Mass; return new[] { Quantity.Mass, Quantity.MultiFunctionalVariables };
case Unit.kg: case Unit.kg:
return Quantity.Mass; return new[] { Quantity.Mass, Quantity.MultiFunctionalVariables };
case Unit.t: case Unit.t:
return Quantity.Mass; return new[] { Quantity.Mass, Quantity.MultiFunctionalVariables };
case Unit.ms: case Unit.ms:
case Unit.s: case Unit.s:
case Unit.min: case Unit.min:
case Unit.hour: case Unit.hour:
return Quantity.Time; return new[] { Quantity.Time };
case Unit.C: case Unit.C:
case Unit.F: case Unit.F:
case Unit.K: case Unit.K:
return Quantity.Temperature; return new[] { Quantity.Temperature };
case Unit.Pa: case Unit.Pa:
case Unit.hPa: case Unit.hPa:
@ -386,14 +387,14 @@ namespace Common
case Unit.psi: case Unit.psi:
case Unit.bar: case Unit.bar:
case Unit.MPa: case Unit.MPa:
return Quantity.Pressure; return new[] { Quantity.Pressure };
case Unit.RPct: case Unit.RPct:
return Quantity.Humidity; return new[] { Quantity.Humidity };
case Unit.Promile: case Unit.Promile:
case Unit.Pct: case Unit.Pct:
return Quantity.Error; return new[] { Quantity.Error };
case Unit.mm: case Unit.mm:
case Unit.cm: case Unit.cm:
@ -402,23 +403,23 @@ namespace Common
case Unit.foot: case Unit.foot:
case Unit.yard: case Unit.yard:
case Unit.m: case Unit.m:
return Quantity.Length; return new[] { Quantity.Length };
case Unit.kgpm3: case Unit.kgpm3:
case Unit.kgpl: case Unit.kgpl:
return Quantity.Density; return new[] { Quantity.Density };
case Unit.J: case Unit.J:
case Unit.kJ: case Unit.kJ:
case Unit.MJ: case Unit.MJ:
case Unit.Wh: case Unit.Wh:
case Unit.kWh: case Unit.kWh:
case Unit.MWh: case Unit.MWh:
return Quantity.Energy; return new[] { Quantity.Energy };
case Unit.uSpcm: case Unit.uSpcm:
case Unit.mSpm: case Unit.mSpm:
return Quantity.Conductivity; return new[] { Quantity.Conductivity };
case Unit.ppl: case Unit.ppl:
case Unit.ppdm3: case Unit.ppdm3:
@ -428,22 +429,22 @@ namespace Common
case Unit.dm3pp: case Unit.dm3pp:
case Unit.lpdeg: case Unit.lpdeg:
case Unit.dm3pdeg: case Unit.dm3pdeg:
return Quantity.PulsePerLtr; return new[] { Quantity.PulsePerLtr };
case Unit.ppkWh: case Unit.ppkWh:
case Unit.kWhpp: case Unit.kWhpp:
return Quantity.PulsePerKWh; return new[] { Quantity.PulsePerKWh };
case Unit.A: case Unit.A:
case Unit.mA: case Unit.mA:
return Quantity.Current; return new[] { Quantity.Current };
case Unit.V: case Unit.V:
case Unit.mV: case Unit.mV:
return Quantity.Voltage; return new[] { Quantity.Voltage };
default: default:
return Quantity.Number; return new[] { Quantity.Number };
} }
} }

View File

@ -7,6 +7,22 @@
<assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" /> <assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
</configuration> </configuration>

View File

@ -7,6 +7,22 @@
<assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" /> <assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
</configuration> </configuration>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Xylem.Common.CommonCore" publicKeyToken="null" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.8.18.17954" newVersion="2.8.18.17954" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>

View File

@ -0,0 +1,15 @@
{
"Erase": [
"1\\tstfile",
"1\\fdrdata",
"1\\logdata",
"1\\blklist",
"1\\pulsedbg",
"1\\upg*",
"1\\img*"
],
"Restore": [
{
}
]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,87 @@
<?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="\\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="${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>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
</configuration>

View File

@ -0,0 +1,312 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Xylem.Common.Hardware.Interfaces.Ports.PortCore</name>
</assembly>
<members>
<member name="T:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.BasePortDataEventArgs">
<inheritdoc cref="T:System.EventArgs" />
</member>
<member name="F:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.BasePortDataEventArgs._receivedTime">
<summary>
Marker for incoming record at time of the PC
</summary>
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.BasePortDataEventArgs.GetData">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.BasePortDataEventArgs.SetData(System.Object)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.BasePortDataEventArgs.SetReceivedTime(System.DateTimeOffset)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.BasePortDataEventArgs.GetReceivedTime">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.BasePortDataEventArgs.SetSyncMarkRecord(Xylem.Common.CommonCore.Consts.SyncMarkRecord)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.BasePortDataEventArgs.GetSyncMarkRecord">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.IPortDataEventArgs">
<summary>
Interface for port data event arguments
</summary>
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.IPortDataEventArgs.GetData">
<summary>
Read data
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.IPortDataEventArgs.SetData(System.Object)">
<summary>
Write data
</summary>
<param name="data"></param>
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.IPortDataEventArgs.GetReceivedTime">
<summary>
Reading received time
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.IPortDataEventArgs.SetReceivedTime(System.DateTimeOffset)">
<summary>
Writing received time
</summary>
<param name="receivedTime"></param>
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.IPortDataEventArgs.SetSyncMarkRecord(Xylem.Common.CommonCore.Consts.SyncMarkRecord)">
<summary>
Setting the data marker
</summary>
<param name="syncMarkRecord"></param>
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.IPortDataEventArgs.GetSyncMarkRecord">
<summary>
Getting the data marker
</summary>
<returns></returns>
</member>
<member name="T:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.ListBytePortDataEventArgs">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.ListBytePortDataEventArgs.#ctor(System.Collections.Generic.List{System.Byte},System.DateTimeOffset,Xylem.Common.CommonCore.Consts.SyncMarkRecord)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.ListBytePortDataEventArgs.GetData">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.ListBytePortDataEventArgs.SetData(System.Object)">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.StringPortDataEventArgs">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.StringPortDataEventArgs.#ctor(System.String,System.DateTimeOffset,Xylem.Common.CommonCore.Consts.SyncMarkRecord)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.StringPortDataEventArgs.GetData">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.StringPortDataEventArgs.SetData(System.Object)">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.Interfaces.Ports.PortCore.IPort">
<summary>
Interface for Ports
</summary>
</member>
<member name="E:Xylem.Common.Hardware.Interfaces.Ports.PortCore.IPort.OnRawRecordReceived">
<summary>
event for record received, either bytes or string
</summary>
</member>
<member name="E:Xylem.Common.Hardware.Interfaces.Ports.PortCore.IPort.OnRawRecordSendOut">
<summary>
event for record received, either bytes or string
</summary>
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.IPort.SynchronizeReceiveBuffer(Xylem.Common.CommonCore.Consts.SyncMarkRecord)">
<summary>
set specific mark
and flush or delete all incoming byte from buffer when SyncMarkRecord is <see cref="F:Xylem.Common.CommonCore.Consts.SyncMarkRecord.SyncStart"/> or
<see cref="F:Xylem.Common.CommonCore.Consts.SyncMarkRecord.SyncEnd"/>
</summary>
<param name="syncMarkRecord"></param>
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.IPort.Open">
<summary>
if the port needs stuff to open, always open for better logical handling
</summary>
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.IPort.Dispose">
<summary>
close and dispose all connections
</summary>
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.IPort.IsOpen">
<summary>
indicates if the Port is open (also on Ports that did not have an open state)
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.IPort.PortWrite(System.Byte[])">
<summary>
Write byte[] to the Stream/Port on Child Class
wrapped with base class error handling
</summary>
<param name="data">Array of bytes to write</param>
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.IPort.Clear">
<summary>
discard all buffers
</summary>
</member>
<member name="M:Xylem.Common.Hardware.Interfaces.Ports.PortCore.IPort.GetPortName">
<summary>
Return the port name
</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,System.Char,System.Int32,System.IO.Ports.Parity)">
<summary>
The transmission protocol needs to inform the communication port how to set up,
this is the data container.
</summary>
<param name="protSyncByte"></param>
<param name="protLengthIndex"></param>
<param name="protAddLength"></param>
<param name="responseTimeoutMs"></param>
<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>
start of receiving synchronization byte at byte receive routine
syncByte == null: use the readLine routine (ASCII) and NOT the BYTE routine,
lengthPosition and additionalLength are not used
</summary>
</member>
<member name="F:Xylem.Common.Hardware.Interfaces.Ports.PortCore.TransmitPortSettings.ProtLengthIndex">
<summary>
position of length information field in received BYTE record
lengthIndex == null: take the constant receive length of additionalLength
because the record doesn't contain length information
</summary>
</member>
<member name="F:Xylem.Common.Hardware.Interfaces.Ports.PortCore.TransmitPortSettings.ProtAddLength">
<summary>
additional record length NOT covert by the record length information field
lengthIndex == null: constant length for received record
Being used for the BYTE records indicated by a valid syncByte,
not being used for ASCII records.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.Interfaces.Ports.PortCore.TransmitPortSettings.ResponseTimeoutMs">
<summary>
Response time out in milliseconds
</summary>
</member>
<member name="F:Xylem.Common.Hardware.Interfaces.Ports.PortCore.TransmitPortSettings.BaudRate">
<summary>
BaudRate for Port
</summary>
</member>
<member name="F:Xylem.Common.Hardware.Interfaces.Ports.PortCore.TransmitPortSettings.ReceiveBufferFlushThreshold">
<summary>
lower threshold for buffer flushing if dataMarker != SkipDecoding
receiveBufferFlushThreshold == null: never flush the communication buffer
receiveBufferFlushThreshold == 0: flush always the communication buffer
receiveBufferFlushThreshold == x: flush communication buffer if it exceeds x Byte
waste old records if an up-to-date record is being needed for start/stop synchronization
of a measurement. This is the level at which the old data have to be flushed because the
data have been dammed up in the communication port input buffer which means they are to
old for synchronization purposes.
/// </summary>
</member>
<member name="F:Xylem.Common.Hardware.Interfaces.Ports.PortCore.TransmitPortSettings.DoubleSyncByte">
<summary>
a special implementation may require the doubling of the sync byte to re-synchronize
</summary>
</member>
</members>
</doc>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>

View File

@ -0,0 +1,384 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages</name>
</assembly>
<members>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.CalibDataEventArgs">
<inheritdoc />
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.CalibDataEventArgs.CalibChl">
<summary>
Stream record for calibration on channel
</summary>
</member>
<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>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.FlowDataEventArgs.NewData">
<summary>
new record from Stream
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.FlowDataEventArgs.GetEventData">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.RegisterUpdatedEventArgs">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.RegisterUpdatedEventArgs.#ctor(Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition,System.Byte[])">
<inheritdoc />
<summary>
Ctor with base record
</summary>
<param name="register">base record <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.RegisterUpdatedEventArgs.Register" /></param>
<param name="value">base record <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.RegisterUpdatedEventArgs.Value" /></param>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.RegisterUpdatedEventArgs.Register">
<summary>
Register witch has updated
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.RegisterUpdatedEventArgs.Value">
<summary>
New Value in Register
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.RequestResponseDataEventArgs">
<inheritdoc />
<summary>
EventArgs for Request Responses
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.RequestResponseDataEventArgs.RequestResponseData">
<summary>
Request response from meter
</summary>
</member>
<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>
hold streaming record for protocol H (contains calibration record)
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.Validation">
<summary>
record validation
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.TotalTimeOfFlightS">
<summary>
total time of flight in seconds
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.DeltaTimeOfFlightS">
<summary>
delta time of flight in seconds
</summary>
</member>
<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">
<summary>
delta time of flight in cordonel units
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.VolumeScaleRawPerMl">
<summary>
volume scale (default: 1024) means
1024digits = 1ml
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.VolumeFactorRawToQm">
<summary>
volume factor to convert raw to m³
uses 1E-6 (ml to m³) / VolumeScaleRawPerMl
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.DeltaVolumeRaw">
<summary>
raw volume between two samples
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.DeltaVolumeQm">
<summary>
calculated out of dRawVolume * VolumeFactorRawToQm .
in cubic meters
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.AccuVolumeRaw">
<summary>
accumulated raw volume
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.SampleIntervalS">
<summary>
sample interval between two samples in seconds
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.AmplitudeUpV">
<summary>
high threshold amplitude in V
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.AmplitudeDownV">
<summary>
low threshold amplitude in V
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.PulseWidthRatioUp">
<summary>
high ratio for pulse width
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.PulseWidthRatioDown">
<summary>
low ratio for pulse width
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.TemperatureRaw">
<summary>
raw temperature
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.TemperaturePowFactor">
<summary>
temperature scale
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.TemperatureDegC">
<summary>
calculated temperature in degree C
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord.ToString">
<summary>
Get result as string
</summary>
<returns></returns>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.FlowTestRecord">
<inheritdoc />
<summary>
struct to hold Led record for protocol F (contains measurement record)
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.FlowTestRecord.ToString">
<summary>
Get result as string
</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>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>

View File

@ -0,0 +1,697 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol</name>
</assembly>
<members>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands">
<summary>
Commands that the genesis meter support over the request protocol.
Functional Specification Breeze Core and Applications Revision:3.03(12748DOC11 - functional spec ICOE472.pdf)
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.Nop">
<summary>
9.2.5
Command 0x00 (NOP)
This command will do nothing, and will have no response.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.QueryCaps">
<summary>
9.2.6
Command 0x01 (Query capabilities)
This command will be used by the external computer to discover the protocol parameters that may be varied.
These can then be compared with the external computers capabilities and the best match selected.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.QueryCapsReply">
<summary>
response on <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.QueryCaps"/>
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.SetCaps">
<summary>
9.2.7
Command 0x03 (Set capabilities)
Used to finalize the baud rate and packet settings after negotiation.
The reply will be sent at the currently selected baud rate and packet length,
after which the settings will take effect
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.SetCapsReply">
<summary>
response on <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.SetCaps"/>
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.Train">
<summary>
9.2.8
Command 0x05 (Train)
This command will perform target driven data training, that is, where the target is in control of the data flow.
See also command 0x11.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.TrainReply">
<summary>
response on <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.Train"/>
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.RepeatLast">
<summary>
9.2.9
Command 0x07 (Repeat last)
Used by the external computer to request the last response to be resent, for example if it was found to be corrupted.
Note that the response 0x08 will never be sent, the reply to command 0x07 will be a verbatim resend of the last response.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.RepeatLastReply">
<summary>
response on <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.RepeatLast"/>
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.ReadData">
<summary>
9.2.10
Command 0x09 (Read data)
This command makes reads of any random selection of configuration registers, up to the maximum packet size negotiated.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.ReadDataReply">
<summary>
response on <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.ReadData"/>
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.WriteData">
<summary>
9.2.11
Command 0x0B (Write data)
This command makes writes to any random selection of configuration registers, up to the maximum packet size negotiated.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.WriteDataReply">
<summary>
response on <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.WriteData"/>
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.MultipleReadData">
<summary>
9.2.12
Command 0x0D (Multiple read data)
This command makes reads of one register multiple times, which will be more efficient than performing successive reads using command 0x09.
This command will be available from protocol version 0.40, for earlier protocol versions command 0x09 should be used.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.MultipleReadDataReply">
<summary>
response on <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.MultipleReadData"/>
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.MultipleWriteData">
<summary>
9.2.13
Command 0x0F (Multiple write data)
This command makes writes to one register multiple times, which will be more efficient than performing successive reads using command 0x0B.
This command will be available from protocol version 0.40, for earlier protocol versions command 0x0B should be used.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.MultipleWriteDataReply">
<summary>
response on <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.MultipleWriteData"/>
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.SetLevel">
<summary>
9.2.14
Command 0x11 (Set level)
This command will perform external driven data training, that is, where the external computer is in control of the data flow.
This command will be available from protocol version 0.42, for earlier protocol versions command 0x05 should be used.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.SetLevelReply">
<summary>
response on <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.SetLevel"/>
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.ConfigExErrors">
<summary>
Config Exchange error codes.
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.HighLevelErrors">
<summary>
Transport errors for request protocol
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.LowLevelErrors">
<summary>
List of constance for error codes from genesis meter
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.LowLevelErrors.NoError">
<summary>
everything is fine
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.LowLevelErrors.SerialPortClosed">
<summary>
Port is not open
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.LowLevelErrors.SerialPortWriteFailure">
<summary>
fails to write to serial port
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.LowLevelErrors.SerialPortReadFailure">
<summary>
fails to read from serial port
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.LowLevelErrors.MaxDataLength">
<summary>
Command is to long
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.LowLevelErrors.Exception">
<summary>
deeper exception, check out log if this happen
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.LowLevelErrors.CrcCalcError">
<summary>
wrong CRC
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.LowLevelErrors.Unknown">
<summary>
something strange
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.LowLevelErrors.Timeout">
<summary>
Timeout occur
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.RequestAcknowledgeState">
<summary>
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
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.RequestAcknowledgeState.CommandError">
<summary>
Response command not match the required command
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.RequestAcknowledgeState.AuthorizationRequired">
<summary>
Lost connection (logged out from meter), a re-authorization is required
to access this command and/or register
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.RequestAcknowledgeState.MeterError">
<summary>
Meter error received, a retry may be useful
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.RequestAcknowledgeState.DecodingError">
<summary>
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
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Exceptions.RequestProtocolException">
<summary>
Holds all errors can occur on the request protocol
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Exceptions.RequestProtocolException.Command">
<summary>
Exception occurred on this command
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Exceptions.RequestProtocolException.ReceivedData">
<summary>
Exception occurred while receiving this data
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Exceptions.RequestProtocolException.ConfigExErrorCode">
<summary>
Error is interpreted and has a define error code
if its not null is Genesis.Protocols.Request.Const.ConfigExErrors
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Exceptions.RequestProtocolException.HighLevelErrorCode">
<summary>
Error is interpreted and has a define error code
if its not null is Genesis.Protocols.Request.Const.HighLevelError
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Exceptions.RequestProtocolException.#ctor(System.String)">
<summary>
Ctor with only message
</summary>
<param name="message">error message</param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Exceptions.RequestProtocolException.#ctor(System.String,System.Object)">
<summary>
Ctor with message and <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Exceptions.RequestProtocolException.Command"/>
</summary>
<param name="message">error message</param>
<param name="command"><see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Exceptions.RequestProtocolException.Command"/></param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Exceptions.RequestProtocolException.#ctor(System.String,System.Object,System.Object)">
<summary>
Ctor with message, <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Exceptions.RequestProtocolException.Command"/> and <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Exceptions.RequestProtocolException.ReceivedData"/>
</summary>
<param name="message">error message</param>
<param name="command"><see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Exceptions.RequestProtocolException.Command"/></param>
<param name="receivedData"><see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Exceptions.RequestProtocolException.ReceivedData"/> </param>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord">
<summary>
Holds request commands with detail parameters to see processing state
</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" />
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.Register">
<summary>
the register the command refers to.
needed to set Register dictionary to link response with dictionary key
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.Acknowledge">
<summary>
Command acknowledged
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.RetryCtr">
<summary>
Retry counter
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.WakeupMessageRetryCtr">
<summary>
Wakeup-message retry counter
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.ResponseErrorBase">
<summary>
indicates error base on <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord"/>
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.ResponseErrorReason">
<summary>
indicates error reason on <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord"/>
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.ResponseErrorCode">
<summary>
Combined error code of base and reason
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.ResponseErrorPosition">
<summary>
Chunk position of error on multiple read/write access
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.RequestProtocolData">
<summary>
Data containing the request protocol
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.EncodedRequestData">
<summary>
Encoded with transmit protocol, ready to stream to port as is
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.ResponsePayload">
<summary>
Extracted payload of response
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.ResponseTimeoutMs">
<summary>
Extracted payload of response
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.HideDataInLog">
<summary>
avoid logging for e.g. password
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.SkipRetryErrorCode">
<summary>
error mask to skip retries for functional errors <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.ResponseErrorCode"/>
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.#ctor(System.Byte,System.Collections.Generic.List{System.Byte},System.Collections.Generic.List{System.Byte},System.Int32,Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition,System.Boolean,System.UInt16)">
<summary>
Ctor for an base command <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands" />
</summary>
<param name="command"><see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands" /> as an byte</param>
<param name="requestProtocolData">Request protocol data for logging</param>
<param name="encodedRequestData"> Ready to send data encoded with transmit protocol retries</param>
<param name="responseTimeoutMs">Timeout for response</param>
<param name="register"><see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition"/> to do command with</param>
<param name="hideDataInLog">hiding data in log file to avoid spying of passwords</param>
<param name="skipRetryErrorCode">error mask to skip retries <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.ResponseErrorCode"/></param>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.EventArguments.AuthorizationRequiredEventArgs">
<inheritdoc />
<summary>
if session is gone and a re authorization is necessary
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.EventArguments.AuthorizationRequiredEventArgs.#ctor(Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord)">
<inheritdoc />
<summary>
Ctor
</summary>
<param name="command">this command will be resend after authorization</param>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.EventArguments.AuthorizationRequiredEventArgs.Command">
<summary>
Command to resend
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol">
<summary>
a bidirectional protocol support read and write genesis meter registers
needed for
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol._recordsSendFifo">
<summary>
FIFO of records to be send next
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol._recordInProcess">
<summary>
This is the actual record in the send loop
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.LastCommTime">
<summary>
Last communication time for session refresh
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.OnRecordReadyToSend">
<inheritdoc />
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.OnRecordIsDecoded">
<inheritdoc />
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.OnAuthorizationGrant">
<summary>
Occurs when a meter Response for write password is good
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.OnMeterRegisterUpdated">
<summary>
Event after a register entries changed
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.AdditionalRetryTimeoutMs">
<summary>
User adjustable additional retry timeout. This is 0 ms for standard operation.
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.#ctor(System.String)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.ProcessRecordList">
<summary>
Process all records needed to be sent, this routine has to be called
to kick-off the communication of all RequestRecords saved to the send
FIFO <see cref="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>
<remarks date="2018-Dec-07" author="T.Wiedebusch">
- Initial
</remarks>
<remarks date="2018-Dec-09" author="T.Wiedebusch">
- Logging of raw RequestProtocol at time of sending,
- Logging of retries.
</remarks>
<remarks date="2018-Dec-12" author="T.Wiedebusch">
- Added timeout from transmit protocol.
</remarks>
<remarks date="2019-Jan-02" author="Drabesch">
- Added reorder FIFO to bring login at first position
</remarks>
<remarks date="2019-Apr-11" author="T.Wiedebusch">
- Hide data in logging for e.g. passwords
</remarks>
<remarks date="2019-Jun-06" author="T.Wiedebusch">
- Retry counter reset if authorization required and this record will be put back into FIFO,
- Retry delay corrected for all errors.
</remarks>
<remarks date="2019-Jun-12" author="T.Wiedebusch">
- Dynamic retry delay: ResponseTimeoutMs * Retry counter.
</remarks>
<remarks date="2019-Jun-28" author="T.Wiedebusch">
- Skip retries on specific error mask to speed up communication on functional errors
or informational feed backs (e.g FW not installed 0x0004)
<see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.ResponseErrorCode"/>
</remarks>
<remarks date="2019-Aug-29" author="T.Wiedebusch">
- User adjustable additional retry timeout.
</remarks>
<remarks date="2020-Jan-17/18" author="T.Wiedebusch">
- Response timeout message output,
- Initialize acknowledge code before communication to NoResponse.
</remarks>
<remarks date="2020-Jan-22" author="T.Wiedebusch">
- Response timeout deviated from system time.
</remarks>
<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>
Assemble record with transmit protocol and put it to record-send-FIFO,
backup the ready-to-send, which is the dataEncodedWithTransmitProtocol,
to the RequestRecord object for sending including the retry capability.
</summary>
<param name="payload">Data package with all details like CRC, etc</param>
<param name="cmd">Command identifier <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands" /></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>
<remarks date="2018-Dec-08" author="T.Wiedebusch">
- Initial
</remarks>
<remarks date="2018-Dec-09" author="T.Wiedebusch">
- Logging of raw data (RequestProtocol) moved to ProcessRecordList.
</remarks>
<remarks date="2018-Dec-12" author="T.Wiedebusch">
- Added timeout from transmit protocol.
</remarks>
<remarks date="2019-Apr-11" author="T.Wiedebusch">
- Hide data in logging for e.g. passwords
</remarks>
<remarks date="2019-Jun-28" author="T.Wiedebusch">
- Skip retries on specific error mask to speed up communication on functional errors
or informational feed backs (e.g FW not installed 0x0004)
<see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.ResponseErrorCode"/>
</remarks>
<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>
Called after successful response.
Decode and check record, handle Errors and dispatch result.
Invokes <see cref="E:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.OnRecordIsDecoded" />if somebody is listening
</summary>
<remarks date="2018-Mar-15" author="R.Drahbesch">
- Initial
</remarks>
<remarks date="2018-Dec-08" author="T.Wiedebusch">
- First part reworked to extract the response protocol information
</remarks>
<remarks date="2019-Apr-11" author="T.Wiedebusch">
- Hide data in logging for e.g. passwords
</remarks>
<remarks date="2019-Jun-28" author="T.Wiedebusch">
- Error code extraction changed for <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.SkipRetryErrorCode"/>
</remarks>
<remarks date="2019-Dec-12/16" author="T.Wiedebusch">
- Wakeup-message will avoid further timeout (during FW update this is in the range
of 15000ms).
- Allow one additional retry on decoding error, which is often the wakeup-message.
</remarks>
<remarks date="2019-Jan-17" author="T.Wiedebusch">
- Send time reminder for timeout time calculation as output in log-file,
- OnRecordIsDecoded?.Invoke moved before return to assure that the Acknowledge status is set.
</remarks>
<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>
Method to send basic Commands to Meter. Creates an integer of 4 bytes for the payload.
Supported Commands are: <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.ReadData" />,<see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.MultipleReadData" />,
<see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.WriteData" />, <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.MultipleWriteData" /> and <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.QueryCaps" />.
Calculate CRCs and Command length and check if command is valid.
Use <see cref="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)" /> to push data to Port/Meter.
</summary>
<param name="command">
Supported <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.ReadData" />,<see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.MultipleReadData" />,
<see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.WriteData" />, <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.MultipleWriteData" /> and <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.QueryCaps" />.
</param>
<param name="meterRegister">Register to Read or Write, null for <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.QueryCaps" /></param>
<param name="payload">
Data to push into the <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition" />.
must be null on Read Commands ( <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.ReadData" />,<see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.MultipleReadData" />)
and not null on WriteData (<see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.WriteData" /> and <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts.Commands.MultipleWriteData" />)
</param>
<param name="expectedLength"></param>
<param name="hideDataInLog">hiding data in log file to avoid spying of passwords</param>
<param name="skipRetryErrorCode">mask to skip reties on error</param>
<returns>an new command just send to port/meter </returns>
<remarks date="2018-Mar-15" author="R.Drahbesch">
- Initial
</remarks>
<remarks date="2018-Dec-08" author="T.Wiedebusch">
- Reworked to zero pad payload with chunks of 4 bytes, the caller needn't take care of the size
</remarks>
<remarks date="2018-Dec-09" author="T.Wiedebusch">
- Corrected payload content in request protocol
</remarks>
<remarks date="2019-Apr-11" author="T.Wiedebusch">
- Hide data in logging for e.g. passwords
</remarks>
<remarks date="2019-Jun-28" author="T.Wiedebusch">
- Skip retries on specific error mask to speed up communication on functional errors
or informational feed backs (e.g FW not installed 0x0004)
<see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestRecord.ResponseErrorCode"/>
</remarks>
<remarks date="2019-Aug-28" author="R.Drabesch">
- Multiple read for string split to simple reads.
</remarks>
<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>
Analyzes the error code
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.ReorderRecordList(System.String)">
<summary>
Reorders the record list so that first entry is the defined topRegister
</summary>
<param name="topRegister"></param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.RequestProtocol.ContainsRegisterIdent(System.String)">
<summary>
Checks the active register to access
</summary>
<param name="registerName"></param>
<returns></returns>
</member>
</members>
</doc>

View File

@ -0,0 +1,144 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol</name>
</assembly>
<members>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingProtocol">
<inheritdoc />
<summary>
Layer between <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder" /> CRC16CCITT handler and Events
block trashy telegrams
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingProtocol._streamingDecode">
<summary>
Decode data and hold results
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingProtocol.OnRecordIsDecoded">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingProtocol.DecodeRecord(Xylem.Common.Hardware.Interfaces.Ports.PortCore.EventArguments.IPortDataEventArgs)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingProtocol.#ctor(System.String,System.Boolean)">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder">
<summary>
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 flow tests of Genesis
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder._rawDataDefault">
<summary>
Default data for calibration of Genesis
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.#ctor(System.Boolean)">
<summary>
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.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="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="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="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>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.StreamingDecoder.ProtHsubString">
field position in protocol 'h'
</member>
</members>
</doc>

View File

@ -0,0 +1,81 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages</name>
</assembly>
<members>
<member name="T:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.DataTypes.Calibration">
<summary>
Used as structured calibration converter from liters per second to
cubic meters per hour and vice versa
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.DataTypes.Calibration.refFlowRate">
<summary>
Reference meter flow rate - unit free for use
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.DataTypes.Calibration.dutFlowRate">
<summary>
DUT meter flow rate - unit free for use
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.EventArguments.MagFluxFlowDataEventArgs">
<inheritdoc />
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.EventArguments.MagFluxFlowDataEventArgs.NewData">
<summary>
new record from Stream
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.EventArguments.MagFluxFlowDataEventArgs.GetEventData">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.EventArguments.RequestResponseDataEventArgs">
<inheritdoc />
<summary>
EventArgs for Request Responses
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.EventArguments.RequestResponseDataEventArgs.RequestResponseData">
<summary>
Request response from meter
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.EventArguments.RequestResponseDataEventArgs.GetEventData">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.MeasurementRecords.MagFluxRecord">
<inheritdoc />
<summary>
struct to hold Led record for protocol L (contains measurement record)
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.MeasurementRecords.MagFluxRecord.SensorId">
<summary>
Sensor Id of MagFlux
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.MeasurementRecords.MagFluxRecord.UniqueId">
<summary>
Serial number of MagFlux
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.MeasurementRecords.MagFluxRecord.StatusBits">
<summary>
Status of sensor and electronics
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.MeasurementRecords.MagFluxRecord.StringDelimiter">
<summary>
String delimiter to separate elements in ToString() routine
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.MeasurementRecords.MagFluxRecord.ToString">
<summary>
Get result as string
</summary>
<returns></returns>
</member>
</members>
</doc>

View File

@ -0,0 +1,668 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Xylem.Common.Hardware.WaterMeter.WaterMeterCore</name>
</assembly>
<members>
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCall">
<summary>
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.IEnumerable{Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter})">
<summary>
Starts a new task for a list of meters
</summary>
<param name="meters"></param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCall.DoSingleAction(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
<summary>
Apply a single action to a specific meter
</summary>
<param name="meter"></param>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallConnectMeter">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallConnectMeter.DoSingleAction(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallInitCalibration">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallInitCalibration.DoSingleAction(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallInitMeasurement">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallInitMeasurement.DoSingleAction(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallLogin">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallLogin.DoSingleAction(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallSetCalibrationFactor">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallSetCalibrationFactor.DoSingleAction(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallStartCalibration">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallStartCalibration.DoSingleAction(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallStartMeasurement">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallStartMeasurement.DoSingleAction(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.BatchActions.BatchCallStopCalibration">
<inheritdoc />
</member>
<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.DisplayCodes">
<summary>
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.DisplayCodes.None">
<summary>
Status not set
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.Error">
<summary>
Error state
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.PickingStarted">
<summary>
Picking in progress
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.PickingTested">
<summary>
Picking succeeded, next step can be initiated
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.PickingFailed">
<summary>
Picking failed
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.PressureTested">
<summary>
Pressure testing succeeded, next step can be initiated
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.PressureTestedFailed">
<summary>
Pressure test failed
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.PressureTestedPending">
<summary>
Pressure test failed
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.Mounted">
<summary>
Connection between PCBID, Serial Number and Order number done
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.ZeroFlow">
<summary>
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">
<summary>
Can hold various <see cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter"/>s and hold connection record to relieve the meter.
Every contact with meter has to go over <see cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch"/> even if you have just only one.
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.AddMeter(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
<summary>
holds all <see cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter"/>
Add <see cref="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.AddMeter(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)"/> and delete with <see cref="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.RemoveMeter(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)"/>
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.RemoveMeter(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
<summary>
Remove Meter from batch and clear communication
</summary>
<param name="meterToRemove"> meter to be removed</param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.GetMeter(System.Int32)">
<summary>
Get meter from slot number.
</summary>
<param name="slot"></param>
<returns>null if slot has no genesis</returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.RemoveAllMeters">
<summary>
Remove all Meters and comports
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.GetCurrentMeter">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.GetCurrentMeterSlots">
<summary>
Detect all meters
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.MetersLogin">
<summary>
login to all meters
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.MetersInit">
<summary>
Initialize all meters
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.MetersInitCalibration">
<summary>
Initialize calibration for all meters
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.MetersInitMeasurement">
<summary>
Initialize measurement for all meters
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.MetersSaveCalculatedCalibration">
<summary>
Store new calculated calibration to all meters
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.MetersStartCalibration">
<summary>
Start calibration for all meters
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.MetersStartMeasurement">
<summary>
Start measurement for all meters
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.MetersStopCalibration">
<summary>
Stop calibration of all meters
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterBatch.MetersStopMeasurement">
<summary>
Stop measurements of all meters
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch">
<summary>
Can hold various <see cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter"/>s and hold connection record to relieve the meter.
Every contact with meter has to go over <see cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch"/> even if you have only one.
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.#ctor(System.String)">
<summary>
ctor
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.ListOfMeters">
<summary>
Registered list of meters
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.AddMeter(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.GetCurrentMeter">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.GetCurrentMeterSlots">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.RemoveMeter(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.MetersLogin">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.MetersInit">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.MetersInitCalibration">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.MetersInitMeasurement">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.MetersSaveCalculatedCalibration">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.MetersStartCalibration">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.MetersStartMeasurement">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.MetersStopCalibration">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.MetersStopMeasurement">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.GetMeter(System.Int32)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.RemoveAllMeters">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.MeterBatch.Dispose">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter">
<inheritdoc />
<summary>
IMeter is the highest level interface between a meter with direct communication to a test bench.
has general things like calibration, measurement and set up routines.
no specific meter stuff in here!
it is always disposable
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.OnProcessStatusChanged">
<summary>
occurs when ProcessState has changed
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.OnErrorStatusChanged">
<summary>
occurs when ErrorState has changed
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.OnInitCompleted">
<summary>
occurs when Init is completed
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.OnMeasurementInitCompleted">
<summary>
occurs when the initialization for Measurement is completed
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.OnMeasurementCompleted">
<summary>
occurs when the Measurement is completed
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.OnCalibInitCompleted">
<summary>
occurs when the initialization for calibration is completed
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.OnCalibCompleted">
<summary>
occurs when the calibration is completed
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.OnDisposeCompleted">
<summary>
occurs when meter gets disposed
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.SerialNumber">
<summary>
unique meter identification
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.ProcessStatus">
<summary>
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.Slot">
<summary>
the current slot in test-bench
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.IntermediateUpdateTimeS">
<summary>
Setup of intermediate update time for measurement updates and overflow detections,
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,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>
Logout from device
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.Login">
<summary>
Start Login with password service
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.Login(System.String,System.Boolean,System.Boolean)">
<summary>
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>
set up measurement parameter and set meter into test-mode
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.StartMeasurement">
<summary>
Starting a Measurement
Meter must be initialized <see cref="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.InitMeasurement" />
Start to receive record from meter and decode this record into <code>MeasurementRecord</code>
<see cref="T:Xylem.Common.Metrology.Measurements.IMeasurementRecord" />
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.StopMeasurement">
<summary>
Meter must have a active measurement <see cref="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.StartMeasurement" />
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,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)
- add MeasurementResult
- remove all other methods
</remarks>
<summary>
After a completed measurement , you can grab <see cref="T:Xylem.Common.Metrology.Measurements.MeasurementResults"/>
</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},Xylem.Common.Metrology.Measurements.Consts.MeasurementDirection)">
<summary>
The first measurement is ALWAYS a FlowTestRecord.
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.GetMeasurementState(System.Nullable{System.Int32})">
<summary>
get current state of the running measurement
</summary>
<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
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.StartCalibration">
<summary>
Starting a Calibration
Meter must be initialized <see cref="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.InitCalibration" />
Start to receive record from meter, decode and store this record
no <see cref="T:Xylem.Common.Metrology.Measurements.IMeasurementRecord" /> available
To finish calibration process run <see cref="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.StopCalibration" />
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.StopCalibration">
<summary>
Meter must have an active Stop Record for calibration
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.GetCalibrationState">
<summary>
Get current state of the running calibration
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.BuildAndCheckCalibFactorsAllChannels(System.Double,System.Nullable{System.Double},System.Double,System.Double)">
<summary>
Calculate calibration factor for static and flying start / stop
Results kept internal and not being saved to meter.
if you want to store them on meter use <see cref="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.SetCalibFactorsAllChannels(System.Boolean)" />
</summary>
<param name="refVolumeCm">the reference volume is essential for calculation of calibration factor</param>
<param name="refTimeS">the reference time is needed for flying start/stop</param>
<param name="reqDeviationPercent">the required deviation to set the scale apart from 0</param>
<param name="maxCalibFactorTolerancePercent"> override the default max calibration factor tolerance</param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.SetCalibFactorsAllChannels(System.Boolean)">
<summary>
Save calculated calibration on meter if no calibration results available an exception occurred
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.SetLcdText(System.Boolean,System.Byte[])">
<summary>
To control the LCD from meter for status information etc.
</summary>
<param name="release">if set to true the meter will show his normal screen, if set to false the next parameter will shown in display</param>
<param name="textInHex">test shown in LCD in byte array as hex value (0x33,0xFF shows 33FF on screen)</param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.SetProcessState(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes,System.Boolean)">
<summary>
Sets Display text and update production database
</summary>
<param name="newState">New ProductionState</param>
<param name="webRequest">web logging required per default true, for offline usage set to false</param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.GetLastProcessState">
<summary>
Get last Process State
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.WriteLog(System.String)">
<summary>
Add external text to internal log file handling
</summary>
<param name="text">text to log</param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.LogRawData(System.Boolean)">
<summary>
Enable/Disable Raw record Logging
</summary>
<param name="on">True = Write Raw record into log/ false = Stop write raw record into log </param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.CheckStateAfterMeasurement">
<summary>
Check if the meter has any errors that can occur on a measurement
the error reason has find out in the log files
</summary>
<returns>false = everything is good, detect at least one error</returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter.DisposeMeter">
<summary>
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
you can use <see cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterEvents"/> without events (so with out <see cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter"/>)
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterEvents.OnProcessStatusChanged">
<summary>
occurs when ProcessState has changed
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterEvents.OnErrorStatusChanged">
<summary>
occurs when ErrorState has changed
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterEvents.OnInitCompleted">
<summary>
occurs when Init is completed
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterEvents.OnMeasurementInitCompleted">
<summary>
occurs when the initializations for Measurement is completed
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterEvents.OnMeasurementCompleted">
<summary>
occurs when the Measurement is completed
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterEvents.OnCalibInitCompleted">
<summary>
occurs when the initializations for calibration is completed
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeterEvents.OnCalibCompleted">
<summary>
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>

Some files were not shown because too many files have changed in this diff Show More