common/Ui/LegacyGenesisControl/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.xml
2026-04-23 17:50:07 +02:00

2871 lines
156 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0"?>
<doc>
<assembly>
<name>Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore</name>
</assembly>
<members>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.Alarm">
<summary>
Alarm messages
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst">
<summary>
Power correction constants
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.EmeaFwThresholdForPowCorr">
<summary>
Threshold for power correction EMEA version
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.NaFNaFwThresholdForPowCorr">
<summary>
Threshold for power correction NA version
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.MinNaCurrent_uA">
<summary>
Minimum region radio current NA
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.MinEmeaRadioRfModeCurrent_uA">
<summary>
Minimum region radio current sensus radio RF mode EMEA
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.MinEmeaRadioTfxModeCurrent_uA">
<summary>
Minimum region radio current sensus radio TFX mode EMEA
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.FixProductionCurrent_uA">
<summary>
Fixed current in production if production values are not logged in DB
and dispatched as 0 or null.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.FixNaCurrent_uA">
<summary>
Fixed region radio current NA
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.PulseReportLengthEstimate_uA">
<summary>
Fixed region radio current sensus radio RF mode EMEA
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.FixEmeaRadioRfModeCurrent_uA">
<summary>
Fixed region radio current sensus radio RF mode EMEA
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.FixEmeaRadioTfxModeCurrent_uA">
<summary>
Fixed region radio current sensus radio TFX mode EMEA
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.PulseReportLengthMode1To4Even0">
<summary>
Pulse report length for pulse mode 1 to 4 even distribution 0
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.PulseReportLengthMode1To4Even1">
<summary>
Pulse report length for pulse mode 1 to 4 even distribution 1
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.PulseReportLengthMode5To6Even0">
<summary>
Pulse report length for pulse mode 5 to 6 even distribution 0
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.PulseReportLengthMode5To6Even1">
<summary>
Pulse report length for pulse mode 5 to 6 even distribution 1
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.PowCorrConst.SensusRadioSystemStateTfXModeMask">
<summary>
TFX mode mask of sensus radio system state
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.MetrologyDefinition">
<summary>
Update capability check for all necessary settings according to meter.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.MetrologyDefinition.MetrologyUpgradePermitted">
<summary>
It is allowed to upgrade the metrology, causing an upgrade capability check to pass always.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.MetrologyDefinition.MetrologyName">
<summary>
The name of the metrology application.
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.ErrorState">
<summary>
Common definition for Meter handling in production and on test benches
</summary>
<summary>
represents any error state a meter can have
if hash code is 0 everything is running
is Flags, so watch out to check with hasFlag!
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.ErrorState.None">
<summary>
everything is good
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.ErrorState.InitFailed">
<summary>
problems on initialization
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.ErrorState.MeasurementFailed">
<summary>
problems on Measurement
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.ErrorState.ComErrorRequestPort">
<summary>
Problem on communication with meter
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.ErrorState.ComErrorLed">
<summary>
Problem on optical output on meter
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.ErrorState.ComErrorPulse">
<summary>
if pulse can not readout
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.ErrorState.ErrorQRef">
<summary>
no (or no good) reference flow available
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.ErrorState.CalibrationFailed">
<summary>
Calibration went wrong
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.ErrorState.CalibrationOutOfRange">
<summary>
calibration is out of range. Check documentation from meter to find limitation
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.ErrorState.FatalError">
<summary>
blue screen like error
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.LedMode">
<summary>
Streaming modes that supported by genesis meter.
Set meter to this Streaming mode means that , the meter pushes mode-specific record to port without any responses
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.LedMode.FlowTestAndCalibDataAndBendCorrect">
<summary>
Test mode with raw record to log.
Should give one <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.FlowTestRecord"/>
3 times <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord"/> and
one <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.BendDetectionRecord"/>
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.LedMode.FlowTestAndCalibData">
<summary>
Test mode with raw record to log. Should give one <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.FlowTestRecord"/>
3 times <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord"/> and repeat this till led mode is switch
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.LedMode.FlowTestData">
<summary>
Test mode should give <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.FlowTestRecord"/> out
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.LedMode.CalibData">
<summary>
Calibration mode should give <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.CalibrationRecord"/> out
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.LedMode.Off">
<summary>
Deactivate streaming
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.LedMode.Unknown">
<summary>
not set or an new not supported Streaming mode
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter">
<summary>
Interface of special GenesisMeter derived from IMeter
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.PcbId">
<summary>
Represent <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Registers.Register.Configexchange.PcbSerialNumber" />
proposed for login
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.CheckRebootCtr">
<summary>
A new meter has to be checked for the reboot counter. On retries the reboot counter
may have increased on unsuccessfully after-reboot procedure. This would force failing
the 'ConnectCordonel'.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.InterfaceInfo">
<summary>
Interface information
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.InterfaceSupportsFwVersion">
<summary>
This FW version is supported by the interface "configuration.json".
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.TransmitProtocol">
<summary>
Transmit protocol access for underlie objects to change response timeout
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.MeterAppListVersion">
<summary>
List of all present meter applications installed in meter
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.IsLoggedOn">
<summary>
Successfully logged on to meter
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.CoreRevision">
<summary>
Core revision of boot code.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.StrCoreRevision">
<summary>
Core revision of boot code as string.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.FwVersion">
<summary>
This is the FLEXNETVERSION version which describes the entire packet.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.InstalledFwVersion">
<summary>
This is the FLEXNETVERSION version which describes the entire packet.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.LutCrc">
<summary>
This is the Metrology Lookup Table CRC.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.MeterSize">
<summary>
This is the meter size.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.MeterLength">
<summary>
Length of the meter.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.PressureSensorAssembled">
<summary>
Pressure sensor assembled to meter.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.Region">
<summary>
Region (EMEA, NA or China).
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.RadioFrequencyMhz">
<summary>
Radio frequency in MHz (433 or 868 or null).
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.MetrologyUpgradePermission">
<summary>
Metrology upgrade permission.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.OrderNumber">
<summary>
Order number under which this meter has to be produced
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.RadioAddress">
<summary>
Radio address
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.Configuration">
<summary>
Process configuration
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.CustomerSerialNumber">
<summary>
Customer serial number for informal issues
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.UnlockEssentialProperties">
<summary>
Unlocked the property change ability for special sequences.
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.CheckRegionSizeLutCrc">
<summary>
Check region and size.
After reading the version, all valid registers are going to be selected.
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.EnablePropertyChangeAbility(System.Boolean)">
<summary>
Unlocked the property change ability for special sequences.
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.SetMeterSize``1(``0)">
<summary>
Set the meter size if previously unlocked.
The data types are: - String like "DN50" or
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.SetPressureSensorAssembled(System.Boolean)">
<summary>
Set the pressure sensor if previously unlocked
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.ResetAlarm(Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.Alarm)">
<summary>
Reset the empty pipe alarm
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.PushProgress(System.String,System.String)">
<summary>
Upload app list to database
</summary>
<param name="progressName"></param>
<param name="version"></param>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.ClearPassword">
<summary>
Clear password to force new password reading
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.StoreAllConfigurations">
<summary>
Executes all StoreConfiguration and StoreCalibration for each application.
</summary>
<returns>true if all configurations are stored</returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.ReLogin">
<summary>
Login with identical password as last time to avoid get password from database
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.GetConfigRegistersDefinitions">
<summary>
Returns meter registers
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.RebootGenesis">
<summary>
Common routine for reboot being able to override this routine which will be called in
MeteResetPsu to simulate a reboot.
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.WriteRegister``1(System.String,``0,System.Boolean,System.Boolean,System.UInt16)">
<summary>
Write Register, optional: wait for result and validate,
write register will ALWAYS log the data DON'T use for password write
</summary>
<typeparam name="T">Data type of Register</typeparam>
<param name="regName">Register name</param>
<param name="value">Value to save as byte array in raw format</param>
<param name="waitForResult">wait until result is ready</param>
<param name="checkRegister">check the content of the register by read back</param>
<param name="skipRetryErrorCode">skip retries on this error code return</param>
<returns>true on successful operation</returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.ReadRegister(System.String,System.Nullable{System.Int32},System.UInt16)">
<summary>
Read Register and return byte array
</summary>
<param name="regName">Register name</param>
<param name="expectedLength">expected length for response</param>
<param name="skipRetryErrorCode">skip retries on this error code return</param>
<returns>value as byte array in raw format or null</returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter.ClearAlarm">
<summary>
Clear all pending alarms.
</summary>
<remarks date="2025-Aug-26" author="Roland Drabesch">
- Initial.
</remarks>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.InterfaceInfo">
<summary>
Collection of interface information
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.InterfaceInfo.InterfaceVersion">
<summary>
The interface version
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.InterfaceInfo.SupportedFwVersions">
<summary>
List of supported FW versions by this interface
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrectionCalc">
<summary>
Read of required registers and calculation of power correction
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrectionCalc.#ctor(Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter,Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection)">
<summary>
Ctor
</summary>
<param name="currentGenesis"></param>
<param name="powCorr"></param>
<returns>true if successful</returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrectionCalc.PowerCorrEstimation">
<summary>
Calculate the values for power correction
</summary>
<returns>true if successful</returns>
<remarks date="2024-May-15" author="Thomas Wiedebusch">
- Initial
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrectionCalc.CorrectPowerConsumption">
<summary>
Calculate the values for power correction
</summary>
<returns>true if successful</returns>
<remarks date="2024-May-14" author="Thomas Wiedebusch">
- Initial
</remarks>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection">
<summary>
Power correction parameters used for overestimated power consumption on
Cordonel FW update from:
EMEA below R1.3.x
NA below R2.0.07
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.PcbId">
<summary>
Unique identification of PCB
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ProductionDateTimeUtc">
<summary>
Date time UTC at EOL - Production
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ProductionTotalUsedSeconds_s">
<summary>
Total used seconds at EOL - Production
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ProductionTotalUsedCharge_uAs">
<summary>
Total used charge of batteries at EOL - Production
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ProductionRadioSystemState">
<summary>
Radio system state at EOL - Production
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ProductionPulseAdapterIsInstalled">
<summary>
Pulse adapter was installed during at EOL - Production VAKO
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ProductionPulseMode">
<summary>
Pulse mode during at EOL - Production
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ProductionPulseSequenceCounter">
<summary>
Pulse sequence counter during at EOL - Production
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ProductionPulseEvenDistribution">
<summary>
Pulse distribution at EOL - Production
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ActualFwVersion">
<summary>
Detected FW version before maintenance
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ActualDateTimeUtc">
<summary>
Date time UTC at time of maintenance
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ActualTotalUsedSeconds_s">
<summary>
Total used seconds of entire runtime
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ActualTotalUsedCharge_uAs">
<summary>
Total used charge of batteries of entire runtime
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ActualRadioSystemState">
<summary>
Actual detected radio system state at maintenance
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ActualPulseAdapterIsInstalled">
<summary>
Detection of pulse adapter installation
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ActualPulseMode">
<summary>
Pulse mode during maintenance
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ActualPulseSequenceCounter">
<summary>
Pulse sequence counter during maintenance
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.ActualPulseEvenDistribution">
<summary>
Pulse distribution during maintenance
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.PulseAdapterMarkedAsInstalled">
<summary>
Mark pulse adapter as installed on any detected or sequence counted
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.BatteryQuantity">
<summary>
Remind battery quantity used for estimation of drained load
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.InitialBatteryLoad_mAh">
<summary>
Remind battery initial load used for estimation of drained load
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.RequiredFwVersion">
<summary>
FW version for the update
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.PulseReportLength">
<summary>
Calculated pulse report length
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.PostProductionTotalUsedSeconds_s">
<summary>
Total used seconds after EOL and before maintenance
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.OverestimatedTotalUsedCharge_uAs">
<summary>
Overestimated total used charge before maintenance
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.FixedEstimateTotalUsedCharge_uAs">
<summary>
Based on fixed estimation total used charge before maintenance
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.MinimumTotalUsedCharge_uAs">
<summary>
Lowest threshold for total used charge calculated during maintenance
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.PowerCorrection.CorrectedTotalUsedCharge_uAs">
<summary>
Corrected total used charge during maintenance
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter">
<inheritdoc cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter" />
<summary>
Genesis meter, main class for all action that occurs on production life of meter
one meter always have a linked port for UART communication and one for LED (even if you don't need them)
it´s has to be open for vb6 COM so don't use any record types or objects that vb6 didn't understand or
interprets differently than dotNet
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.#ctor">
<summary> Default constructor. </summary>
<remarks> R.Drabesch, 2018-Feb-16. </remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.#ctor(System.Int32,System.Nullable{Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig},System.Nullable{Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig},System.Boolean,System.String)">
<summary>
</summary>
<param name="slot">Slot number for test-bench </param>
<param name="requestPort"><see cref="T:Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig" /> for request Port</param>
<param name="streamingPort"><see cref="T:Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig" /> for streaming Port</param>
<param name="ignoreCorruptedData">don´t send CRC error or telegrams with error flag to caller</param>
<param name="password">
If you have a password for highest access level you need, if you don't want to access the meter
(just read led record) than you can leave it null
</param>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.LoginLvl">
<summary>
Keep up the highest access level for all function in <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter" /> where used
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.LogoutLvl">
<summary>
Logout with level 0
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.MinPcbIdLength">
<summary>
Minimal length for PcbId
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.QuiescentCurrent_uA">
<summary>
The quiescent current threshold is the absolut minimal threshold for current consumption´in micro-Ampere.
This will be used to decide that the current isn't below for operational calculations of power consumption.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.Logger">
<summary>
Logger for NLog
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.UseOfflinePasswords">
<summary>
Optional request to use the offline passwords
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.OfflinePassword">
<summary>
Remind the offline password for comparison if this is actively used
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.Configuration">
<summary>
Process configuration
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.TransmitProtocol">
<summary>
Transmit protocol access for underlie objects to change response timeout
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SerialNumber">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.CustomerSerialNumber">
<summary>
Customer serial number for informal issues
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.Slot">
<inheritdoc />
<summary>
Save Slot Number (position at test-bench) for logging purposes
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.PcbId">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.CheckRebootCtr">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.MeterAppListVersion">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.CoreRevision">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.InterfaceInfo">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.StrCoreRevision">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.FwVersion">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.InstalledFwVersion">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.LutCrc">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.MeterSize">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.InterfaceSupportsFwVersion">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.Region">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.MeterLength">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.PressureSensorAssembled">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.RadioFrequencyMhz">
<summary>
Radio frequency in MHz (433 or 868 or null).
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.MetrologyUpgradePermission">
<summary>
Metrology upgrade permission.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.IntermediateUpdateTimeS">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.OrderNumber">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.RadioAddress">
<inheritdoc />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.Password">
<summary>
Add on ctor a password, it will be used for login in if no other password is set
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter._acknowledgeCode">
<summary>
reminder for last communication acknowledge code to detect communication errors
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter._autoLogon">
<summary>
default false only enabled by <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.EnableAutoLogon"/>
when it is true, the meter will enforce the login when session is gone or access is denied
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter._enableRawDataLogging">
<summary>
Enable raw record logging, if set every incoming package will be logged
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.PulseAdapterAutoDetected">
<summary>
Detected pulse adapter communication on request port
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.IsDevelopmentUsage">
<summary>
Enable use of registers that are not valid (last version not match the current app)
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ConfigRegister">
<summary>
All parameters stored in the SOFTWARE of GenesisMeter: NOT IN THE METER
if you want to read them from meter use <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ReadRegister(System.String,System.Nullable{System.Int32},System.UInt16)" />
if you want to set them to meter use <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.WriteRegister``1(System.String,``0,System.Boolean,System.Boolean,System.UInt16)" />
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ConfigApplications">
<summary>
All applications defined by configuration.json
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.RequestPort">
<summary>
request port assignment/info
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.RequestProtocol">
<summary>
request protocol assignment/info
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.StreamingPort">
<summary>
streaming port assignment/info
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.StreamingProtocol">
<summary>
streaming protocol assignment/info
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SkipPreparationForTestBench">
<summary>
to reduce the IrdA communication in test bench, preparation will be done once (when SkipPreparationForTestBench is true)
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.OnRequestRecordReceived">
<summary>
Response received after request for record
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter._myProcessStatus">
<summary>
do not use it to set ProcessStatus
if you want to change ProcessStatus of this genesis use <see cref="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ProcessStatus" />
<see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter._myProcessStatus" /> is just store for some routines
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ProcessStatus">
<inheritdoc />
if state is change
<see cref="E:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.OnProcessStatusChanged" />
will be invoked.
on some states other events will be invoked as well
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter._myErrorState">
<summary>
do not use it to set ErrorStatus
if you want to change ErrorStatus of this genesis use <see cref="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ErrorStatus" />
<see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter._myErrorState" /> is just store for some routines
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ErrorStatus">
fires up
<see cref="E:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.OnErrorStatusChanged" />
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.IsLoggedOn">
<summary>
Logged in to device
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.CurrentActionText">
<summary>
Hold the current process name e.g. FlowTest, Preadjustment for logging
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.UnlockEssentialProperties">
<summary>
Unlocked the property change ability for special sequences.
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SetConfigRegisterDefinitions(System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.IRegister})">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.EnablePropertyChangeAbility(System.Boolean)">
<summary>
Unlocked the property change ability for special sequences.
</summary>
<param name="unlockPropertyChange">true if unlock required</param>
<returns>true if possible</returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SetMeterSize``1(``0)">
<summary>
Set the meter size if previously unlocked
</summary>
<param name="meterSize"></param>
<returns>true if possible</returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SetPressureSensorAssembled(System.Boolean)">
<summary>
Set the pressure sensor if previously unlocked
</summary>
<param name="pressureSensorAssembled">true if setting is allow</param>
<returns>true if possible</returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.GetConfigRegistersDefinitions">
<summary>
Returns meter registers
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.LoadConfiguration(System.String)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SetupFromConfigFile(System.Int32,System.Boolean)">
<summary>
Setup water meter from configuration file:
-slot,
-streaming protocol,
-streaming port
-request port
</summary>
<param name="slot"></param>
<param name="ignoreCorruptedData"></param>
<exception cref="T:System.ApplicationException"></exception>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SetupFromConfigFile(System.Int32,System.Boolean,System.Boolean,System.Boolean)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SetupGenesisMeter(System.Int32,System.Nullable{Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig},System.Nullable{Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig},System.Boolean,System.String)">
<summary>
just internal setup. called on ctor or from vb6 setup function
</summary>
<param name="slot">Slot Number for test-bench </param>
<param name="requestPort"><see cref="T:Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig" /> for RFID/UART/IrDA Port</param>
<param name="streamingPort"><see cref="T:Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig" /> for LED Port</param>
<param name="ignoreCorruptedData">don´t send CRC error or telegrams with error flag to caller</param>
<param name="password">
If you have a password for highest access level you need, if you don't want to access the meter
(just read led record) than you can leave it nullS
</param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ConnectMeter">
<inheritdoc />
<summary>
Start Event listening, has to be called after <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SetupGenesisMeter(System.Int32,System.Nullable{Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig},System.Nullable{Xylem.Common.Hardware.Interfaces.Ports.PortCore.PortConfig},System.Boolean,System.String)" />
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.LinkPortToProtocol(Xylem.Common.Hardware.Interfaces.Ports.PortCore.IPort,Xylem.Common.Hardware.Interfaces.Protocols.ProtocolCore.IProtocol)">
<summary>
Add a port to working queue
</summary>
<param name="port">On <see cref="T:Xylem.Common.Hardware.Interfaces.Ports.PortCore.IPort" /> should one once added in runtime</param>
<param name="protocol"></param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SyncStreamingBuffer(Xylem.Common.CommonCore.Consts.SyncMarkRecord)">
<summary>
Synchronization of the record for the streaming interface
</summary>
<param name="markRecord"></param>
<exception cref="T:System.ApplicationException"></exception>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.OnCalibCompleted">
<inheritdoc cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter" />
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.OnErrorStatusChanged">
<inheritdoc cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter" />
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.OnProcessStatusChanged">
<inheritdoc cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter" />
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.OnCalibInitCompleted">
<inheritdoc cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter" />
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.OnInitCompleted">
<inheritdoc cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter" />
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.OnMeasurementInitCompleted">
<inheritdoc cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter" />
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.OnMeasurementCompleted">
<inheritdoc cref="T:Xylem.Common.Hardware.WaterMeter.WaterMeterCore.IMeter" />
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.AuthorizationRequired">
<summary>
call this if session is expired and you need a re-authorization
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.Invoker(System.EventHandler,System.Object,System.EventArgs)">
<summary>
A helper to invoke events only if someone is listening, otherwise nothing will happen
</summary>
<param name="handler">Event handler to call</param>
<param name="sender">Sender (can be null)</param>
<param name="e">Event arguments (can be null)</param>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ErrorCurrent">
<summary>
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.StreamingProtocol_ApplyDecodedRecord(System.Object,Xylem.Common.Hardware.Interfaces.Protocols.ProtocolCore.EventArguments.BaseDataEventArgs)">
<summary>
Track all incoming led record packages (Calibration and Flow)
</summary>
<param name="sender"></param>
<param name="e">
I should be <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords.FlowTestRecord" /> or <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.CalibDataEventArgs" />
otherwise this method does nothing
</param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.RequestProtocol_ApplyDecodedRecord(System.Object,Xylem.Common.Hardware.Interfaces.Protocols.ProtocolCore.EventArguments.BaseDataEventArgs)">
<summary>
tracking request record processing
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.QueryCaps">
<summary>
QueryCaps can send before login
arrange record for communication (e.g. Baud rate)
</summary>
<returns>
Running outgoing command
</returns>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter._backupLoginLvl">
<summary>
The backup login level is needed for re-authorization
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.PrivilegeCommandToMeter(System.Int32,System.Boolean)">
<summary>
SetRegister <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Registers.Register.Configexchange.Privilege" /> to loginLvl and wait for response
</summary>
<param name="loginLvl"></param>
<param name="runImmediately"> true = process command; false = add command to list. call
<see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.RequestProtocolProcess"></see> to process login command </param>
<returns> if is completed and no error occurred it is true </returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.LoginCommandToMeter(System.String,System.Boolean)">
<summary>
Set <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Registers.Register.Configexchange.Password" />
</summary>
<param name="password"> if null , use password from initialization</param>
<param name="runImmediately"> true = process command; false = add command to list. call
<see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.RequestProtocolProcess"></see> to process login command </param>
<returns>
</returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ClearPassword">
<summary>
Clear password to force new password reading
</summary>
<remarks date="2023JAN21" author="R.Drabesch">
- Initial.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.GetPassword">
<summary>
Acquires the password from WEB-API.
</summary>
<returns>password</returns>
<remarks date="2018JAN08" author="R.Drabesch">
- Initial.
</remarks>
<remarks date="2022-Nov-02" author="T.Wiedebusch">
- PcbId handling improved.
</remarks>
<remarks date="2022-Dec-12" author="T.Wiedebusch">
- PcbId unknown returns immediately.
</remarks>
<remarks date="2023-Jan-19" author="T.Wiedebusch">
- Password had been reset to empty string if read from file, corrected!
</remarks>
<remarks date="2023-Feb-28" author="T.Wiedebusch">
- Used <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.MeterPwdHandlerDb.GetPasswordFromDb(System.String,System.String@)"/>
</remarks>
<remarks date="2025-Oct-10" author="T.Wiedebusch">
- Optional the offline passwords will be used.
</remarks>
<remarks date="2025-Oct-21" author="T.Wiedebusch">
- BUGFIX: Avoid request of password from DB if offline password usage fored.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.Login">
<inheritdoc />
<remarks date="2018JAN08" author="drabesch">
Get password from server
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ReLogin">
<inheritdoc />
<remarks date="2019-Jun-23" author="Thomas Wiedebusch">
- Initial
</remarks>
<remarks date="2022-Jul-22" author="Thomas Wiedebusch">
- Immediately returns if already logged in.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.Login(System.String,System.Boolean,System.Boolean)">
<summary>
Starting a timer to keep session active,
starting the <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.KeepSessionThreadLoop"/>.
</summary>
<param name="password">password string to log in</param>
<param name="runImmediately"> true = process command; false = add command to list. call
<see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.RequestProtocolProcess"></see> to process login command </param>
<param name="skipReadMeterFwAndAssignRegisters"></param>
<returns></returns>
<remarks date="2019JAN01" author="drabesch">
pass runImmediately for auto login
</remarks>
<remarks date="2021-Feb-02" author="Thomas Wiedebusch">
- Avoid retries during login, a retry will lock the Genesis for 2s, 4s, 8s, 16s and so on.
</remarks>
<remarks date="2023-Feb-20" author="Thomas Wiedebusch">
- Quick login removed.
</remarks>
<remarks date="2023-Mar-06" author="Thomas Wiedebusch">
- Pulse module deactivated at login.
</remarks>
<remarks date="2023-Mar-07" author="Thomas Wiedebusch">
- REMOVED: Pulse module deactivated at login.
- Skip FW readout to quickly connect being able to immediately switch off the pulse mode before App detection.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.BuildFlexnetFwVersion(System.UInt32@,System.String,System.Nullable{System.Byte},System.Nullable{System.Byte},System.Boolean)">
<summary>
Building the FW Version:
- string like "R1.1.07" or "B1.1.07" or optional reduced form for configuration capability check "1107",
- hexadecimal version like 0x1107 or 0x9107 for the 'B' version.
Input:
- optional string like "1107", "11.07", "R1.1.07", "B1.1.07", "1.3.0B" or "9.0.2D".
- optional 2 bytes representing the msb and lsb like 0x11 and 0x07.
REASON: FLEXNETVERSION is one application which does not follow the same rule of decimal numbers.
Instead, it uses hexadecimal digits.
</summary>
<param name="fwVersion">version as hexadecimal result of version e.g. 0x1107 or 0x130B</param>
<param name="strVersion">any string to evaluate like "11.07" or "R1.1.07" or "1.3.0B"</param>
<param name="msb">most significant byte representing the major and minor version</param>
<param name="lsb">last significant byte representing the built version</param>
<param name="buildShortVersion">will force to reduce the string output of FW version to e.g. "1107"</param>
<returns>FLEXNET version string e.g. "R1.2.47" or "B1.2.0C" </returns>
<remarks date="2023-Mar-02" author="Thomas Wiedebusch">
- Initial.
</remarks>
<remarks date="2023-Mar-08" author="Thomas Wiedebusch">
- Removed the optional leading "B" or "R" on strVersion input to create the fwVersion.
</remarks>
<remarks date="2025-Sep-30" author="Thomas Wiedebusch">
- .
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.BuildFwVersion(System.UInt32@,System.Byte,System.Byte)">
<summary>
Building the FW Version string out of 2 bytes of data and a decimal version.
Example:
Inputs msb = 2, msb = 34,
Outputs fwVersion = 234, string "2.34"
</summary>
<param name="fwVersion">firmware version as decimal e.g. 234 </param>
<param name="msb">most significant byte hex</param>
<param name="lsb">last significant byte hex</param>
<returns>converted as string e.g. "2.34" or "2.0C" </returns>
<remarks date="2023-Mar-06" author="Thomas Wiedebusch">
- Initial.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.BuildFwVersionStringFromHex(System.UInt32)">
<summary>
Building the FW Version string out of UInt32 as hexadecimal input like 0x1107 (meaning 1.1.07).
Example:
Input fwVersion = 1107,
Outputs string "1.1.07"
</summary>
<param name="fwVersion">firmware version as hex</param>
<returns>converted to "2.34" or "2.0C" </returns>
<remarks date="2023-Mar-06" author="Thomas Wiedebusch">
- Initial.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.BuildFwVersionStringFromDec(System.Nullable{System.Int32})">
<summary>
Building the FW Version string out of Int32 as decimal input.
Example:
Input fwVersion = 238,
Outputs string "2.38"
</summary>
<param name="fwVersion">firmware version as hex</param>
<returns>converted to "2.34" or "2.01" </returns>
<remarks date="2023-Mar-07" author="Thomas Wiedebusch">
- Initial.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.CheckRegionSizeLutCrc">
<summary>
Check region and size.
After reading the version, all valid registers are going to be selected.
</summary>
<remarks date="2023-Jan-19" author="Thomas Wiedebusch">
- Initial, extracted from <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ReadMeterFirmwareAndAssignRegisters"/>
</remarks>
<remarks date="2025-Feb-04" author="Thomas Wiedebusch">
- Frequency indicator == 0 means it is a NA-Region Octopus with EMEA FW installed.
</remarks>
<remarks date="2025-Mai-28" author="Thomas Wiedebusch">
- Pressure sensor detection.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.BuildValidMeterRegisters(System.Collections.Generic.List{System.Collections.Generic.KeyValuePair{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition,System.Byte[]}})">
<summary>
Build a list of all registers based on the interface (configuration.json) and the installed
meter applications with a specific version.
</summary>
<remarks date="2024-Apr-04" author="Roland Drabesch/Thomas Wiedebusch">
- Initial, extracted from <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ReadMeterFirmwareAndAssignRegisters"/>
</remarks>
<remarks date="2025-Dec-09" author="Thomas Wiedebusch">
- Excluded register versions explicit specified in the 'configuration.json' as version.exclude list.
</remarks>
<remarks date="2025-Dec-16" author="Thomas Wiedebusch">
- Excluded all registers from apps which are NOT installed (isInstalled == false).
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ReadMeterFirmwareAndAssignRegisters">
<summary>
Reading all applications which can be found in the configuration.json and have been stored
to the meter register dictionary in advance.
The read process covers the FW version and the CRC.
After reading the version, all valid registers are going to be selected.
</summary>
<remarks date="2021-Mar-10" author="Thomas Wiedebusch">
- Removed "Cordonel " from CoreRevision to have the e.g. "1.64" remaining
</remarks>
<remarks date="2021-Apr-15" author="Thomas Wiedebusch">
- Read radio frequency
</remarks>
<remarks date="2022-Mar-30" author="Thomas Wiedebusch">
- Read lockup table CRC,
- Read meter size.
</remarks>
<remarks date="2022-Apr-27" author="Thomas Wiedebusch">
- Read lockup table CRC bugfix with try, catch for legacy versions, where this register does not exists.
</remarks>
<remarks date="2022-Dec-02" author="Thomas Wiedebusch">
- CoreRevision from String to Int32?,
- MeterSize from String to MeterSize,
- Region separated from RadioRegion as String,
- RadioFrequencyMhz introduced as Int32? (null if "NA" region or not installed),
- LutCrc from String to Int32?.
</remarks>
<remarks date="2023-Jan-16" author="Thomas Wiedebusch">
- Checked meter size string for "DN", then it cannot be an EMEA version.
</remarks>
<remarks date="2023-Feb-13" author="Thomas Wiedebusch">
- Removed retry as this will be handled by the <see cref="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.RequestProtocol"/>.
</remarks>
<remarks date="2023-Nov-27" author="Thomas Wiedebusch">
- Remind installed FW version of FLEXNETVERSION for StoreAllConfigurations.
</remarks>
<remarks date="2023-Dec-08..11" author="Thomas Wiedebusch">
- Avoid multiple assignment of identical register in dictionary as the configuration.json may overlap
on some versions. If one register has been added, this passed the test and is valid for this FW.
It has to be avoided to have the register multiple times as it may cause unpredictable assignments
of values to one and reading and compare from another which doesn't have a value!
</remarks>
<remarks date="2024-Feb-22" author="Thomas Wiedebusch">
- Build dictionary for debug to observe if configuration.json contains overlapping versions.
</remarks>
<remarks date="2024-Apr-23" author="Thomas Wiedebusch">
- On missing answer mark as communication error being able to compare against not-installed. This issue
was responsible to start a FW update process in the CUST as it assumes the installation was incomplete,
but it couldn't detect those applications due to communication issues.
</remarks>
<remarks date="2024-May-06" author="Thomas Wiedebusch">
- BuildFlexnetFwVersion,
- Calculate core revision.
</remarks>
<remarks date="2025-Aug-05" author="Thomas Wiedebusch">
- Extract interface version (configuration.json) from "OPTICALINTERFACE".
- AppId from Byte to UInt16 including typecast for Byte on WriteRegister. To external, it will be used as Byte
as before this change. But being able to parse the configuration.json with OPTICALINTERFACE using the
AppId 256, which exceeds the byte range as this isn't a real application, but will be used to identify
the interface (configuration.json) version.
</remarks>
<remarks date="2025-Sep-30" author="Thomas Wiedebusch">
- Handle the interface compatibility FW version with short string like "1421" and discrete FW versions.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.EnableAutoLogon">
<summary>
Automatic login to meter enabled if logged out by lost authentication
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.KeepSessionTimerElapsed_SyncKeepSessionThread(System.Object,System.Timers.ElapsedEventArgs)">
<summary>
If the timeout timer elapsed to keep the session active, this routine will be called
awaking the <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.KeepSessionThreadLoop"/>.
</summary>
<param name="sender"></param>
<param name="eventARgs"></param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.KeepSessionThreadLoop">
<summary>
Thread to keep the connection to the meter open and the session alive,
because on missing communication the meter is going to logout automatically.
This thread will be started at <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.Login"/> and aborted on
<see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.Logout"/>
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.Logout">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.CheckStateAfterMeasurement">
<summary>
Check if EMPTY_PIPE or REBOOT is set
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.HasAlarms(Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.Alarm)">
<summary>
Check if alarmToCheck is set on register
</summary>
<param name="alarmToCheck">is Flags so you can use more than one alarms (like Alarm.EMPTY_PIPE | Alarm.REBOOT)</param>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.GetAlarms">
<summary>
Read out all AlarmStatus register and combine them to one <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.Alarm"/>
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ClearAlarm">
<inheritdoc/>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ResetAlarm(Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts.Alarm)">
<summary>
Reset the empty pipe alarm
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.GetPcbId">
<summary>
Reads the PCB Identification, can be accessed at all login levels,
Read Privilege is always needed to BUGFIX read access to PCB ID
</summary>
<returns>PCB ID</returns>
<remarks date="2018JAN08" author="R.Drabesch">
- PcbId handling improved.
</remarks>
<remarks date="2022-Nov-02" author="T.Wiedebusch">
- PcbId handling improved,
- Removed retries as these are handled by the protocol.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.GetRegistersDic">
<summary>
Get the actual register dictionary
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.GetSerialNumber">
<summary>
Serial number of meter married with PcbId
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SetLcdText(System.Boolean,System.Byte[])">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.RequestProtocol_MeterRegisterUpdated(System.Object,Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments.RegisterUpdatedEventArgs)">
<summary>
Event to Sync Register on MeterSide and <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ConfigRegister" />
Fired on Write or read register
</summary>
<param name="sender"></param>
<param name="e">Register to update with value to update</param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.WriteRegister``1(System.String,``0,System.Boolean,System.Boolean,System.UInt16)">
<summary>
Write Register, optional: wait for result and validate,
write register will ALWAYS log the data DON'T use for password write
</summary>
<typeparam name="T">Data type of Register</typeparam>
<param name="reg">Register to change</param>
<param name="value">Value to save</param>
<param name="waitForResult">wait until result is ready</param>
<param name="checkRegister">check the content of the register by read back</param>
<param name="skipRetryErrorCode">skip retries on this error code return</param>
<returns>true on successful operation</returns>
<remarks date="2024-May-17" author="Thomas Wiedebusch">
- Changed sensitive information from "*****" to SHA256.
</remarks>
<remarks date="2024-Dec-03" author="Thomas Wiedebusch">
- PreRegisterWrite enabled to check register accessibility and range.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.ReadRegister(System.String,System.Nullable{System.Int32},System.UInt16)">
<summary>
Read Register and return byte array
</summary>
<param name="regName"></param>
<param name="expectedLength">expected length for response</param>
<param name="skipRetryErrorCode">skip retries on this error code return</param>
<returns></returns>
<remarks date="2024-May-17" author="Thomas Wiedebusch">
- Changed sensitive information from "*****" to SHA256.
</remarks>
<remarks date="2025-Oct-13" author="Thomas Wiedebusch">
- Date size directly from register object.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.RequestProtocolProcess">
<summary>
Execute request protocol and acts on response code.
</summary>
<remarks date="2020-Dec-19" author="Thomas Wiedebusch">
- Removed throw because the throw always kicks in to
the FW-Update process causing an unpredictable stop!
</remarks>
<remarks date="2024-Apr-22" author="Thomas Wiedebusch">
- Remind last communication acknowledge code.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SendUI1236Command(System.Byte[],System.Boolean,System.Boolean,System.UInt16)">
<summary>
Send UI1236 command
</summary>
<remarks date="2022-Aug-24" author="R.Drabesch">
- Initial
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.Clear">
<summary>
Clear Ports
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.DisposeMeter">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.Dispose">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.WriteLog(System.String)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.LogRawData(System.Boolean)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SetProcessState(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes)">
<summary>
Set the process state to display and to the production database
</summary>
<param name="newState"></param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SetProcessState(Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes,System.Boolean)">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.GetLastProcessState">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.PreRegisterWrite(Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition,System.Byte[])">
<summary>
Check for min and max of register values to avoid out of range access
</summary>
<param name="regDef"></param>
<param name="value"></param>
<remarks date="2019-Apr-06" author="Roland Drabesch">
- Initial
</remarks>
<remarks date="2024-Dec-03" author="Thomas Wiedebusch">
- Reactivated to validate the register range.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.RebootGenesis">
<summary>
Common routine for reboot being able to override this routine which will be called in
MeteResetPsu to simulate a reboot.
</summary>
<returns></returns>
<remarks date="2024-Dec-11" author="Thomas Wiedebusch">
- Initial.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.StoreAllConfigurations">
<summary>
Executes all StoreConfiguration and StoreCalibration for each application.
</summary>
<returns>true if all configurations are stored</returns>
<remarks date="2019-Apr-06" author="Roland Drabesch">
- Initial
</remarks>
<remarks date="2022-Apr-21" author="Thomas Wiedebusch">
- Corrected logic to enter write and read loop,
- Removed SENSUSRADIO from read check as it returns NULL on read of StoreConfiguration.
</remarks>
<remarks date="2022-Apr-26" author="Thomas Wiedebusch">
- After write store configuration extended sleep.
</remarks>
<remarks date="2022-Jun-23" author="Thomas Wiedebusch">
- Removed comparison of allConfigRegisters less than 8 because the NA version has fewer registers and new
apps will have a new register.
</remarks>
<remarks date="2022-Jul-22" author="Thomas Wiedebusch">
- Removed temporary NA2ALARMS read back as this has no handler in the FW.
</remarks>
<remarks date="2023-Nov-22..23" author="Thomas Wiedebusch">
- Store first all configurations for every app in a bulk then read the status back.
</remarks>
<remarks date="2023-Nov-27" author="Thomas Wiedebusch">
- Installed FW version taken to enable read back for radio and na2walarms.
</remarks>
<remarks date="2024-May-07" author="Thomas Wiedebusch">
- Changed threshold check from decimal 1200 to hexadecimal 0x1200.
</remarks>Cl
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.PushProgress(System.String,System.String)">
<summary>
Upload app list to database
</summary>
<param name="progressName"></param>
<param name="version"></param>
<remarks date="2019-Apr-06" author="Roland Drabesch">
- Initial
</remarks>
<remarks date="2024-Aug-06" author="Thomas Wiedebusch">
- Using MetrologyUpgradePermission to flag if metrology is updateable as for "NA" versions this is the case.
</remarks>
<remarks date="2024-Aug-30" author="Thomas Wiedebusch">
- returns status.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.StoreCurrentRegisterDic">
<summary>
Backup current register dictionary to database
</summary>
<exception cref="T:System.Exception"></exception>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.PostRegisterRead(Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition,System.Byte[])">
<summary>
Logging of register write processes to meter
ATTENTION: DON'T USE FOR PASSWORDS!
</summary>
<param name="reg"></param>
<param name="value"></param>
<remarks date="2025-Jun-30" author="Thomas Wiedebusch">
- Hide all file access commands and passwords.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.LogCalibrationData(System.UInt16,System.UInt16,System.UInt16)">
<summary>
Storage of calibration values
</summary>
<param name="calibrationFactor1"></param>
<param name="calibrationFactor2"></param>
<param name="calibrationFactor3"></param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.TestBenchDispose">
<summary>
Dummy
</summary>
<remarks date="2023-Dec-11" author="Roland Drabesch">
- Initial.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.BuildAndCheckCalibFactorsAllChannels(System.Double,System.Nullable{System.Double},System.Double,System.Double)">
<summary>
Dummy
</summary>
<remarks date="???" author="Roland Drabesch">
- Initial.
</remarks>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter._calibFactor">
<summary>
Calibration factors for all channels
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter._registersToStoreCalibFactor">
<summary>
Registers needed to store the calibration for the individual channel
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.InitCalibration">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.StartCalibration">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.StopCalibration">
<inheritdoc />
<summary>
Just stop recording without calculation
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.GetCalibrationState">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.BuildAndCheckCalibFactorsAllChannels(System.Double,System.Nullable{System.Double},System.Double,System.Double,System.Nullable{System.Int32})">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.SetCalibFactorsAllChannels(System.Boolean)">
<inheritdoc />
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter._listOfIMeasurement">
<summary>
List of ongoing measurements, base- and calibration-measurements
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.AllChannelsRequired">
<summary>
All channels required to process
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.QualityWatchMode">
<summary>
Quality watch mode can be used to decode intermediate records and check
for actual quality of the measurements.
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.InitMeasurement">
<inheritdoc />
<summary>
Perpetration of Measurement
SampleRate 10 and Led mode Test
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.StartMeasurement">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.StopMeasurement">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.CheckChannelFlowDirection">
<summary>
Testing the flow direction
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.GetMainMeasurementResult(System.Nullable{System.Double},System.Nullable{System.Double},System.Boolean,Xylem.Common.Metrology.Measurements.Consts.MeasurementDirection)">
<inheritdoc />
<summary>
the first measurement is ALWAYS a FlowTestRecord due to the underlying<see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.GetAllMeasurementResults(System.Nullable{System.Double},System.Nullable{System.Double},System.Boolean,System.Nullable{System.Int32},Xylem.Common.Metrology.Measurements.Consts.MeasurementDirection)"/> routine logic.
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.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.Genesis.GenesisCore.GenesisMeter.GetMeasurementState(System.Nullable{System.Int32})">
<inheritdoc />
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter.RequestIntermediateMeasurementState(System.Nullable{System.Int32})">
<inheritdoc />
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.CalibFactor">
<summary>
Calibration content
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.CalibFactor.IsCalculated">
<summary>
has been calibrated
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.CalibFactor.Channel">
<summary>
Channel for calibration
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.CalibFactor.RegisterToStoreCalibFactor">
<summary>
Register to store the calibration
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.CalibFactor.#ctor(System.Int32,System.String)">
<summary>
Ctor for calibration factor
</summary>
<param name="channel"></param>
<param name="registerToStoreCalibFactor"></param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.CalibFactor.BuildMeterCalibFactor(System.Double)">
<summary>
set the user readable relative (around 1.0) calibration factor
and convert it to the raw calibration factor for the meter
</summary>
<param name="relativeCalibFactor"></param>
<exception cref="T:System.Exception"></exception>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.CalibFactor.GetRelativeCalibFactor">
<summary>
Read the relative (around 1.0) calibration factor calculated from the actual
meter calibration factor divided by the default calibration factor
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.CalibFactor.GetMeterRawCalibFactorDefault">
<summary>
Genesis internal raw default value (around 15625)
</summary>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.CalibFactor.SetMeterRawCalibFactor(System.UInt16)">
<summary>
Set the meter raw calibration factor (around 15625)
</summary>
<param name="meterRawCalibFactor"></param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.CalibFactor.GetMeterRawCalibFactor">
<summary>
Get the meter raw calibration factor (around 15625)
</summary>
<returns></returns>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality">
<summary>
Check the positioning of the streaming LED to validate the quality of the communication line
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality.LastQualityResult">
<summary>
Backup of last quality
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality.IsRunning">
<summary>
Quality check is active
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality.StartStreamingQualityCheck(System.Nullable{System.Int32})">
<summary>
Kick off the streaming quality check.
</summary>
<param name="tillDecodedCount"></param>
<exception cref="T:System.ApplicationException"></exception>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality.StopStreamingQualityCheck(System.Int32)">
<summary>
Stop the streaming check.
</summary>
<param name="sampleRateHz"></param>
<returns></returns>
<exception cref="T:System.ApplicationException"></exception>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality.QualityResult">
<summary>
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality.QualityResult.TotalLinesCount">
<summary>
Number of records received (read line for LED message)
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality.QualityResult.TotalDecodedCount">
<summary>
Total records decoded
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality.QualityResult.TotalTransportErrorCount">
<summary>
Total errors
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality.QualityResult.TotalValidationWithoutErrorsCount">
<summary>
Validated without errors
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality.QualityResult.ExpectedLinesCount">
<summary>
Expected lines
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality.QualityResult.TotalTime">
<summary>
Time
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality.QualityResult.ErrorOccurredCounter">
<summary>
Error counter
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality.QualityResult.#ctor(System.Collections.Generic.List{System.String},System.TimeSpan,System.Int32)">
<summary>
The real result of quality check
</summary>
<param name="collectedRecords"></param>
<param name="ts"></param>
<param name="sampleRateHz"></param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeterStreamingQuality.QualityResult.#ctor">
<summary>
The quality result as dummy zero
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.MeterPortScanner">
<summary>
Port scanner:
using the Windows Device Manager listed ports,
tries to open the port with an exception if it cannot be accessed (very time-consuming),
tries to use the request protocol to detect a Genesis device.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.MeterPortScanner._currentGenesis">
<summary>
Genesis for test access
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.MeterPortScanner.AutoDetectedPortName">
<summary>
Auto-detected port name
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.MeterPortScanner.OnProcessUpdate">
<summary>
Port scan result event for message dispatcher to caller
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.MeterPortScanner.StopPortScan">
<summary>
Stop the port scan
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.MeterPortScanner.NumberOfPorts">
<summary>
Number of ports
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.MeterPortScanner.ActualPortCtr">
<summary>
Actual Port Counter
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.MeterPortScanner.GetPortScanState">
<summary>
Returns the port scan state
</summary>
<returns></returns>
<remarks date="2020-Oct-21" author="Thomas Wiedebusch">
- Initial
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.MeterPortScanner.#ctor(System.String)">
<summary>
Ctor
</summary>
<returns>true if one port has been validated</returns>
<remarks date="2020-Dec-11" author="Thomas Wiedebusch">
- Initial
</remarks>
<param name="portType">type of communication port to meter like IrDA</param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.MeterPortScanner.Dispose">
<inheritdoc />
<remarks date="2021-Jan-05" author="Thomas Wiedebusch">
- Initial.
</remarks>
<remarks date="2021-Mai-11" author="Thomas Wiedebusch">
- Remove all meters removed as _meterBatch.Dispose will remove all meters.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.MeterPortScanner.ScanAllSerialPorts(System.Int32,System.String)">
<summary>
Use initially the port configuration to speed up search,
If configuration file contains wrong port setup than scan all serial ports listed in
the windows device manager,
Read available ports,
Try to open port and connect to Genesis meter.
</summary>
<param name="slot">slot to search for</param>
<param name="portConfigFilePathName">configuration of port to speed up search</param>
<returns>true if port found</returns>
<returns>true if one port has been validated</returns>
<remarks date="2020-Oct-14" author="Thomas Wiedebusch">
- Initial
</remarks>
<remarks date="2020-Dec-11" author="Thomas Wiedebusch">
- Port type from Ctor,
- Event message changed:
- Overall message: ctr / counts - ongoing scan,
- Actual message: Information to log
</remarks>
<remarks date="2021-Jan-05" author="Thomas Wiedebusch">
- Changed exit of function,
- Added configuration file handling.
</remarks>
<remarks date="2021-Mai-11" author="Thomas Wiedebusch">
- Remove all meters removed as _meterBatch.Dispose will remove all meters.
</remarks>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisConfigurationReader">
<summary>
JSON filer reader for generation of register lists
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisConfigurationReader.ConfigRegistersDefinitions">
<summary>
Registers defined in configuration.json file
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisConfigurationReader.ConfigApplicationDefinitions">
<summary>
Applications defined in configuration.json file
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisConfigurationReader.InterfaceInfo">
<summary>
Information collected during 'configuration.json' read
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisConfigurationReader.#ctor">
<summary>
Ctor
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisConfigurationReader.#ctor(System.String)">
<summary>
Ctor
</summary>
<param name="configFilePath">the file path for configuration.json as interface description to the meter</param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisConfigurationReader.BuildRegisterList(System.String)">
<summary>
Convert file content to register list
</summary>
<param name="configurationJson"></param>
<returns></returns>
<exception cref="T:System.Exception"></exception>
<remarks date="??" author="Stoyan Slatev">
- Initial.
</remarks>
<remarks date="2025-Aug-05" author="Thomas Wiedebusch">
- AppId from Byte to UInt16 including typecast for Byte[] return. To external, it will be used as Byte
as before this change. But being able to parse the configuration.json with OPTICALINTERFACE using the
AppId 256, which exceeds the byte range as this isn't a real application, but will be used to identify
the interface (configuration.json) version.
</remarks>
<remarks date="2025-Aug-07" author="Thomas Wiedebusch">
- Extract the max supported versions for EMEA and NA to check the supported FW.
</remarks>
<remarks date="2025-Sep-30" author="Thomas Wiedebusch">
- Supported application list introduced.
</remarks>
<remarks date="2025-Oct-10" author="Thomas Wiedebusch">
- Data size introduced including the new 'ByteArray' type and size to get rid of new defined 'uintxx_t'
data types.
</remarks>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisConfigurationReader.SerializerSettings">
<summary>
Settings
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisConfigurationReader.GetType(System.String)">
<summary>
Convert data types from interface 'configuration.json' to CLR type or array
</summary>
<param name="value"></param>
<returns>type</returns>
<exception cref="T:System.Exception"></exception>
<remarks date="??" author="Stoyan Slatev">
- Initial.
</remarks>
<remarks date="2025-Oct-10" author="Thomas Wiedebusch">
- Parsed all 'uintxx_t' which are not based on CLR types to byte-array
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisConfigurationReader.GetSize(System.String)">
<summary>
Build the data size
</summary>
<param name="value"></param>
<returns>size</returns>
<remarks date="2025-Oct-10" author="Thomas Wiedebusch">
- Initial: - parsed all 'uintxx_t' which are not based on CLR types to byte-array
</remarks>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.AccessConverter">
<summary>
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.AccessConverter.CanConvert(System.Type)">
<summary>
</summary>
<param name="t"></param>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.AccessConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)">
<summary>
</summary>
<param name="reader"></param>
<param name="t"></param>
<param name="existingValue"></param>
<param name="serializer"></param>
<returns></returns>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.AccessConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
<summary>
</summary>
<param name="writer"></param>
<param name="untypedValue"></param>
<param name="serializer"></param>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.AccessConverter.Singleton">
<summary>
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrErrorMissingConfiguration">
<summary>
Looks up a localized string similar to ERROR: Missing or invalid register definition (configuration.json)! Search in:.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrErrorMsgComPort">
<summary>
Looks up a localized string similar to Cannot Open Comport. Check TaskManager for other Genesis relevant programs and close them! Also check if the comport is valid!.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrErrorMsgCsdMissing">
<summary>
Looks up a localized string similar to ERROR: Could not find a CSD parameter in register list!.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrErrorMsgRegisterNotFound">
<summary>
Looks up a localized string similar to ERROR: Could not find register in register list! Check configuration.json for latest version!.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrErrorMsgRegisterWrite">
<summary>
Looks up a localized string similar to ERROR: Could not write register!.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrMeterValue">
<summary>
Looks up a localized string similar to Read back.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrPortAccessRequest">
<summary>
Looks up a localized string similar to Access request..
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrPortFailedToOpen">
<summary>
Looks up a localized string similar to Failed to open..
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrPortListDeviceManger">
<summary>
Looks up a localized string similar to Ports listed in the Windows device manager..
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrPortScanStarted">
<summary>
Looks up a localized string similar to Automatic port scan started..
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrPortSuccessfullyAccessed">
<summary>
Looks up a localized string similar to Successfully accessed..
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrReadRegister">
<summary>
Looks up a localized string similar to Read register.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrReadRegistersAfterUpdate">
<summary>
Looks up a localized string similar to Reading registers after maintenance.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrReadRegistersBeforeUpdate">
<summary>
Looks up a localized string similar to Reading registers before maintenance.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrRegisterCompare">
<summary>
Looks up a localized string similar to Compare register.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrRegisterCompareFailed">
<summary>
Looks up a localized string similar to ERROR: Comparison failed!.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrRegisterCompareSucceeded">
<summary>
Looks up a localized string similar to Successfully compared..
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrRegisterRecoveryExec">
<summary>
Looks up a localized string similar to Execute configuration sequence.....
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrRegisterRecoveryFinalization">
<summary>
Looks up a localized string similar to Finalize configuration sequence.....
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrRegisterRecoveryPreparation">
<summary>
Looks up a localized string similar to Prepare configuration sequence.....
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrRegisterValueOutOfRange">
<summary>
Looks up a localized string similar to ERROR: Register value is out of range!.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrRequestPortDetectionFailed">
<summary>
Looks up a localized string similar to Cordonel not detected!.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrScanPort">
<summary>
Looks up a localized string similar to Scan port.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrSetRegisterToDefault">
<summary>
Looks up a localized string similar to WARNING: Register value set to default.
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties.Resources.StrWriteRegister">
<summary>
Looks up a localized string similar to Write register.
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer">
<summary>
Read, compare and restore if unequal al registers marked with
<see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.Registers.DataTypes.StaticType"/> equals
<see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Registers.DataTypes.StaticType.RestoreRequired"/>".
The reader will use the byte values as they are unmodified and
will not be rounded and therefor possibly fail the comparison.
For logging the register value will be converted its unit.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._pcbIdInitialRegisterRead">
<summary>
PCB ID for pre update read for comparison
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._pcbIdWriteRegisters">
<summary>
PCB ID for pre update write for comparison
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._pcbIdFinalRegisterRead">
<summary>
PCB ID for post update for comparison
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.RecoveryRegisters">
<summary>
Collection of recovery registers - programming parameters
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.HasRestoreRegistersAfterRebootIfCompareFailed">
<summary>
Marker for restore after reboot parameters
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._initialRegisters">
<summary>
Register content on initial connect to keep those during update
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._finalRegisters">
<summary>
Register content after all operation had been performed
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.RecoveryRegisterCount">
<summary>
Register which shall be restored after change of FW or after register recovery
</summary>
</member>
<member name="E:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.OnProcessUpdate">
<summary>
Register access event for message dispatcher to caller
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._unReversedParameters">
<summary>
List for un-reversed parameters which can be written, all others need to be swapped byte-wise
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._excludedFromCompareParameters">
<summary>
Registers manually explicit excluded from comparison as those may change even if those have the
"StaticType": "static" in the configuration.json but will change for some reason.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._restoreAfterRebootIfCompareFailed">
<summary>
Registers manually explicit marked to be restored after reboot if compare failed. Those registers will
temporary setup values which do not survive a reboot. This is done to overcome a FW-bug which overwrites
those values after the reboot procedure!
</summary>
<remarks date="2025-Nov-17" author="Thomas Wiedebusch">
- Initial to restore values which do not survive the reboot as workaround for R1.4.22 and below.
</remarks>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._fieldUpdateBlacklist">
<summary>
Registers manually explicit excluded for in-field updatable parameters for the CUST to prevent inadvertent
modifications resulting in potential MID violations.
</summary>
<remarks date="2025-Jul-16" author="Thomas Wiedebusch">
Defined by M.C., J.L. and A.F. with the file: 'FwUpdateController.cs-GetRecoveryFile()-2507160616.xlsx'.
</remarks>
<remarks date="2025-Dec-08..10" author="Thomas Wiedebusch">
CUST 2.8.14:
- Added: - SENSUSRADIO_WakeupInterval to keep radio active after CUST run
- Removed: - 'GENESISFLOW_SealDisplay' being able to modify display resolution
</remarks>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._excludedFromReadParameters">
<summary>
Registers manually explicit excluded from reading as those do not contain useful information.
Applies for RW commands not RPC data type.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._prepareProgramming">
<summary>
Pre-programming parameters for all devices defined here, will be filled with radio parameters
if meter has radio
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.FailedComparisonRegisters">
<summary>
Registers which failed the comparison
</summary>
</member>
<member name="P:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.RestoreRegistersAfterReboot">
<summary>
Name of registers which should be restored after reboot if the compare failed.
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._finalizeProgrammingAll">
<summary>
Post programming parameters for all devices
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._finalizeProgrammingEmea">
<summary>
Post programming parameters for EMEA region as NA region doesn't have radio and seal display shouldn't
be executed.
</summary>
<remarks date="2025-Nov-20" author="Thomas Wiedebusch">
- Removed 'SENSUSRADIO_SystemState' as this will synchronize all parameters between this app and the
'PERIODICLOG' app. Meaning, the 'SENSUSRADIO' app will overwrite the previously adjusted parameters of
the 'PERIODICLOG'. After writing the last 'PERIODICLOG' parameter a delay timer between finish exec-
parametrization and store all configs needs at least 20 s to update contents.
</remarks>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._finalizeProgrammingEol">
<summary>
Post programming parameters for EOL (end of line, prepare for shipping workplace)
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._actualRegisterCtr">
<summary>
Actual register counter
</summary>
</member>
<member name="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._currentGenesis">
<summary>
Genesis meter object
</summary>
</member>
<member name="T:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.ReplaceVakoByCsd">
<summary>
Struct to observe replacements
</summary>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.#ctor(Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter)">
<summary>
Ctor
</summary>
<param name="currentGenesis"></param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.RenewMeter(Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter)">
<summary>
Renew meter for Unit tests based on different meter
</summary>
<param name="currentGenesis"></param>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.AssignGenesis(Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.IGenesisMeter)">
<summary>
Assign new genesis after reboot and keep the RegisterRestorer object.
</summary>
<param name="genesisMeter"></param>
<remarks date="2020-Dec-19" author="Thomas Wiedebusch">
- Initial
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.EnableCompareExternalSetRegisters">
<summary>
Enable comparison from external set registers for read back with written value
</summary>
<remarks date="2024-Nov-25" author="Thomas Wiedebusch">
- Initial
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.ExportRawProgrammingParametersToFile(System.String,System.String,System.Collections.Generic.List{Xylem.Common.Logic.ProductionOrderCore.ProgrammingParameters})">
<summary>
Export list of programming parameters to file being able to use it for test purposes.
</summary>
<param name="path"></param>
<param name="fileName"></param>
<param name="programmingParameters"></param>
<returns></returns>
<remarks date="2024-Dec-11" author="Thomas Wiedebusch">
- Initial.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.ImportRawProgrammingParametersFromFile(System.String,System.String,System.String,System.Collections.Generic.List{Xylem.Common.Logic.ProductionOrderCore.ProgrammingParameters})">
<summary>
Import list of programming parameters from file being able to use it for test purposes.
The input request the absolut path to the XX_YY_RawParameterExample.json and the filters for:
- Region,
- MeterSize,
- "RawParams" and
- ".json"
</summary>
<param name="paramsRootPath">path where all raw parameter examples are stored</param>
<param name="region">Region for configuration</param>
<param name="meterSize">Meter size for programming parameters</param>
<param name="programmingParameters"></param>
<returns></returns>
<remarks date="2024-Dec-11..13" author="Thomas Wiedebusch">
- Initial.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.RawProgrammingParametersFilterAndSort(System.Collections.Generic.List{Xylem.Common.Logic.ProductionOrderCore.ProgrammingParameters},System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem},System.String@,System.Boolean)">
<summary>
Process the raw programming parameters got from the database or meanwhile in raw-format stored to file
being able to fill the register restorer from external with values and test the byte-wise reverting
of the parameter (optional un-reverted if defined in the list <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._unReversedParameters"/>).
The priority of the parameters forced by its source is:
- CSD (highest),
- VAKO,
- Order based or standard config (lowest).
</summary>
<param name="rawProgParams">unprocessed data, not filtered by the priority and un-reversed</param>
<param name="recoveryRegisters">output as recovery registers reduced to the real needed ones and
processed as reverted or non-reverted values which directly can be written to the meter using the
meter specific "IGenesisMeter.WriteRegister"</param>
<param name="errorMsg">error message for caller</param>
<param name="fieldUpdate">field update forces to use the 'fieldUpdateBlacklist' to remove parameters</param>
<returns></returns>
<remarks date="2024-Dec-11" author="Thomas Wiedebusch">
- Initial imported from <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.DownloadProgrammingParametersFromDb(System.String,System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem},System.String@,System.Boolean)"/>.
</remarks>
<remarks date="2025-Jan-21" author="Thomas Wiedebusch">
- Return error message,
- Requirement to fulfill the at least one parameter has to be a CSD parameter as initially all programming
parameters are going to be preset with the default values (coming from the Web-API). After this they are
going to be overwritten with the VAKO (variant configuration) and finally again with the CSD of the
customer if required.
</remarks>
<remarks date="2025-Jan-28" author="Thomas Wiedebusch">
- Debug for overwriting VAKO with CSD including real values.
</remarks>
<remarks date="2025-Jul-16..21" author="Thomas Wiedebusch">
- Remove '_fieldUpdateBlacklist' parameters for the CUST to prevent inadvertent modifications resulting in potential
MID violations,
- Debug log of blacklist caused removals.
</remarks>
<remarks date="2025-Jul-24" author="Thomas Wiedebusch">
- Debug lists generation sequence changed.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.DownloadProgrammingParametersFromDb(System.String,System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem},System.String@,System.Boolean)">
<summary>
Collect programming parameters from DB.
</summary>
<param name="pcbId"></param>
<param name="recoveryRegistersDb">registers key value pair from database</param>
<param name="errorMsg">error message from parameter analysis</param>
<param name="fieldUpdate">field update forces to use the 'fieldUpdateBlacklist' to remove parameters</param>
<returns>recovery registers</returns>
<remarks date="2021-Feb-01" author="Thomas Wiedebusch">
- Initial.
</remarks>
<remarks date="2023-10-19" author="Thomas Wiedebusch">
- Sort the registers from DB but keep the PrepareProgramming and FinalizeProgramming in the required sequence.
</remarks>
<remarks date="2023-10-25" author="Thomas Wiedebusch">
- Removed preparation and finalization of register recovery to remove sequencing as this will be done in the
RegisterRestorer by the FwUpdateSw worker giving the ability to log this in the report.
</remarks>
<remarks date="2024-01-17" author="Thomas Wiedebusch">
- Data base access imported to have a common interface for programming parameters for EOL (shipping) and CUST.
</remarks>
<remarks date="2024-01-29" author="Thomas Wiedebusch">
- Removed prohibited parameters.
</remarks>
<remarks date="2024-02-12" author="Thomas Wiedebusch">
- Added un-reversed parameters based on data type (string, uint128).
</remarks>
<remarks date="2024-Apr-04..05" author="Thomas Wiedebusch">
- Check and validate register values with installed or intended to be installed FW and given
configuration.json.
</remarks>
<remarks date="2024-Apr-08" author="Thomas Wiedebusch">
- Exported register range check to <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.ValidateRegisterRange(Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem,Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition,System.String@,System.Boolean)"/>.
</remarks>
<remarks date="2024-Jul-05" author="Thomas Wiedebusch">
- Debug lists for CSD and VAKO parameters.
</remarks>
<remarks date="2024-Dec-11" author="Thomas Wiedebusch">
- Sorting, filtering for VAKO, CSD and order, reverting or un-reverting parameter value order exported
for the ability to load the raw programming parameters from any source and check the correct processing.
This will be especially used for unit-tests <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.RawProgrammingParametersFilterAndSort(System.Collections.Generic.List{Xylem.Common.Logic.ProductionOrderCore.ProgrammingParameters},System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem},System.String@,System.Boolean)"/>
</remarks>
<remarks date="2025-Jan-21" author="Thomas Wiedebusch">
- Error message.
</remarks>
<remarks date="2025-Jul-16" author="Thomas Wiedebusch">
- Remove '_fieldUpdateBlacklist' parameters for the CUST to prevent inadvertent modifications resulting in potential
MID violations.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.EolProgrammingRegisters(System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem},System.Threading.CancellationToken)">
<summary>
EOL (end of line) programming contains a reset of the accumulators. Else it is identical with recover
registers.
</summary>
<param name="recoveryRegistersDb">list of registers to update from database without special sequence
</param>
<param name="cancellationToken"></param>
<returns>true if setup succeeded</returns>
<remarks date="2024-Jan-17" author="Thomas Wiedebusch">
- Initial.
</remarks>
<remarks date="2025-Apr-07" author="Thomas Wiedebusch">
- CancellationToken.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.ValidateRegisterRange(Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem,Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition,System.String@,System.Boolean)">
<summary>
Validate the range of the register.
</summary>
<param name="recReg">register key value pair</param>
<param name="regDef">register definition by configuration.json</param>
<param name="errorMessage">error message if range check failed</param>
<param name="checkDefault">check default value and supply warning</param>
<returns>status</returns>
<remarks date="2024-Apr-08" author="Thomas Wiedebusch">
- Initial, imported from <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.DownloadProgrammingParametersFromDb(System.String,System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem},System.String@,System.Boolean)"/>
</remarks>
<remarks date="2024-Sep-25" author="Thomas Wiedebusch">
- Leave the message generation to the <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterCheck.CheckRange(Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition,System.Byte[],System.String@,System.Boolean)"/>
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.WriteRegisters(System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem},System.Threading.CancellationToken,System.Boolean)">
<summary>
Recover all registers set from caller. Additional preparation and finalization will be added.
settings.
</summary>
<param name="recoveryRegistersDb">list of registers to update from database without special sequence
</param>
<param name="cancellationToken"></param>
<param name="fieldUpdate">field update, if not set EOL (end of line) programming with accu reset</param>
<returns>true if restoring succeeded</returns>
<remarks date="2023-Oct-09" author="Thomas Wiedebusch">
- Initial.
</remarks>
<remarks date="2023-Oct-24" author="Thomas Wiedebusch">
- Return true if already recovered,
- replace _restoreRegisters with new value.
</remarks>
<remarks date="2023-Oct-25" author="Thomas Wiedebusch">
- Added preparation and finalization of register recovery giving the ability to log this in the report.
</remarks>
<remarks date="2023-Nov-22" author="Thomas Wiedebusch">
- Moved register dictionary value set to inner try catch loop to avoid early exit if one register is
unknown.
</remarks>
<remarks date="2023-Dec-11" author="Thomas Wiedebusch">
- Logging of some exception messages.
</remarks>
<remarks date="2024-Jan-17" author="Thomas Wiedebusch">
- EOL sequence for accumulators reset,
- Remind pcbId as already recovered before the true return,
- Exclude lock of repeated execution for EOL.
</remarks>
<remarks date="2024-Jan-29" author="Thomas Wiedebusch">
- Avoid writing of parameters if not writable. The DB delivers parameters which exclusively have to be
compared to the specified value.
</remarks>
<remarks date="2024-Feb-19" author="Thomas Wiedebusch">
- Register list changed from RegisterDefinition to RecoveryRegisterItem list,
- Preset RecoveryRegisters if not set as those have to be compared later on.
</remarks>
<remarks date="2024-Mar-04" author="Thomas Wiedebusch">
- Add only registers to recovery list which are found in the generated register list based on installed
applications.
</remarks>
<remarks date="2024-Mar-12" author="Thomas Wiedebusch">
- Avoid writing of NOT writable registers.
</remarks>
<remarks date="2024-Mar-21" author="Thomas Wiedebusch">
- Check register limits, if those are out of range avoid writing and log warning message.
</remarks>
<remarks date="2024-Apr-08" author="Thomas Wiedebusch">
- Exported register range check to <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.ValidateRegisterRange(Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem,Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RegisterDefinition,System.String@,System.Boolean)"/>.
</remarks>
<remarks date="2024-Apr-09" author="Thomas Wiedebusch">
- Removed skip recovery if already done in previous run to enable a retry.
</remarks>
<remarks date="2024-Jul-16" author="Thomas Wiedebusch">
- Seal display and Sensus radio to EMEA finalization.
</remarks>
<remarks date="2025-Feb-14" author="Thomas Wiedebusch">
- Exported write routines to <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.WriteRegisterParameterSet(System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem},System.Int32,Xylem.Common.Hardware.WaterMeter.Genesis.Registers.MeterRegisters,System.Threading.CancellationToken,System.Boolean)"/>.
</remarks>
<remarks date="2025-Apr-07" author="Thomas Wiedebusch">
- CancellationToken.
</remarks>
<remarks date="2025-Jul-16" author="Thomas Wiedebusch">
- Remove '_fieldUpdateBlacklist' parameters for the CUST to prevent inadvertent modifications resulting in potential
MID violations.
</remarks>
<remarks date="2025-Nov-17" author="Thomas Wiedebusch">
- Login/Logout moved to <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.WriteRegisterParameterSet(System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem},System.Int32,Xylem.Common.Hardware.WaterMeter.Genesis.Registers.MeterRegisters,System.Threading.CancellationToken,System.Boolean)"/>.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.WriteRegisterParameterSet(System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem},System.Int32,Xylem.Common.Hardware.WaterMeter.Genesis.Registers.MeterRegisters,System.Threading.CancellationToken,System.Boolean)">
<summary>
Write a parameter set:
-
</summary>
<param name="recoveryRegistersDb"></param>
<param name="recRegistersCount"></param>
<param name="meterRegisters"></param>
<param name="cancellationToken"></param>
<param name="fieldUpdate"></param>
<returns></returns>
<remarks date="2025-Feb-14" author="Thomas Wiedebusch">
- Initial imported from <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.WriteRegisters(System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem},System.Threading.CancellationToken,System.Boolean)"/>.
</remarks>
<remarks date="2025-Apr-07" author="Thomas Wiedebusch">
- CancellationToken.
</remarks>
<remarks date="2025-Mai-07" author="Thomas Wiedebusch">
- Temporary excluded un-comparable registers from write as this make no sense to write them blind being
unable to read the correct value back.
</remarks>
<remarks date="2025-Jul-16" author="Thomas Wiedebusch">
- Remove '_fieldUpdateBlacklist' parameters for the CUST to prevent inadvertent modifications resulting in potential
MID violations.
</remarks>
<remarks date="2025-Jul-22" author="Thomas Wiedebusch">
- Excluded un-comparable registers from write turned back on ('blind' writing enabled again).
</remarks>
<remarks date="2025-Nov-17" author="Thomas Wiedebusch">
- Login/Logout moved here.
</remarks>
<remarks date="2025-Dec-12" author="Thomas Wiedebusch">
- Redundant OOR message removed.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.RestoreAndCompareRegistersAfterReboot(System.Threading.CancellationToken)">
<summary>
Restore and compare all registers which did not survive a reboot and are listed in the
<see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._restoreAfterRebootIfCompareFailed"/>
- This is a workaround for a FW-bug in R1.4.22 and below.
</summary>
<param name="cancellationToken"></param>
<returns></returns>
<remarks date="2025-Nov-17" author="Thomas Wiedebusch">
- Initial.
</remarks>
<remarks date="2025-Nov-19" author="Thomas Wiedebusch">
- Leave the initial 'RecoveryRegisters' intact.
</remarks>
<remarks date="2025-Dec-08" author="Thomas Wiedebusch">
- Leave the initial 'FailedComparisonRegisters' intact.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.CompareRegisters(System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem},System.Threading.CancellationToken)">
<summary>
Compare all registers which can be restored without new access to meter.
</summary>
<param name="recoveryRegisters"></param>
<param name="cancellationToken"></param>
<returns>true if equal</returns>
<remarks date="2023-Nov-20" author="Thomas Wiedebusch">
- Initial.
</remarks>
<remarks date="2023-Nov-28" author="Thomas Wiedebusch">
- Compare registers reactivated based on new interface (configuration.json) with new
"StaticType": “approximate”.
</remarks>
<remarks date="2023-Dec-08" author="Thomas Wiedebusch">
- Removed <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer._excludedFromCompareParameters"/> as those will change on e.g. FW update.
</remarks>
<remarks date="2023-Dec-11" author="Thomas Wiedebusch">
- Avoid message event if message is empty.
</remarks>
<remarks date="2024-Jan-23" author="Thomas Wiedebusch">
- Remind registers which failed the comparison including values.
</remarks>
<remarks date="2024-Feb-19" author="Thomas Wiedebusch">
- Register list changed from RegisterDefinition to RecoveryRegisterItem list.
</remarks>
<remarks date="2024-Feb-20" author="Thomas Wiedebusch">
- Removed all registers from comparison which are neither static nor approximate.
</remarks>
<remarks date="2024-Mar-04" author="Thomas Wiedebusch">
- Exception logging extended,
- Data size base on write data size as this may be shorter than the read data size which is always filled up
to a 4 byte chunk size.
</remarks>
<remarks date="2024-Mar-04" author="Thomas Wiedebusch">
- Add only registers to recovery list which are found in the generated register list based on installed applications.
</remarks>
<remarks date="2024-Mar-06" author="Thomas Wiedebusch">
- Used RecoveryRegisters WriteValue and ReadBackValue for comparison.
</remarks>
<remarks date="2024-Mar-20" author="Thomas Wiedebusch">
- Hash password and encryption key with SHA256.
</remarks>
<remarks date="2025-Apr-07" author="Thomas Wiedebusch">
- CancellationToken.
</remarks>
<remarks date="2025-Aug-12" author="Thomas Wiedebusch">
- Take 'null' in readBack into account due to communication error.
</remarks>
<remarks date="2025-Nov-17" author="Thomas Wiedebusch">
- _restoreAfterRebootIfCompareFailed.
</remarks>
<remarks date="2025-Nov-17" author="Thomas Wiedebusch">
- Made method static.
</remarks>
<remarks date="2025-Nov-19" author="Thomas Wiedebusch">
- Avoid clearing of failed registers
</remarks>
<remarks date="2025-Nov-19" author="Thomas Wiedebusch">
- Leave the initial 'RecoveryRegisters' intact.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.FinalReadRegisters(System.Threading.CancellationToken)">
<summary>
Read the registers after the update for comparision. Build the post update registers here,
because an update may have changed the registers (new or removed registers).
</summary>
<param name="cancellationToken"></param>
<returns>true if registers could be read</returns>
<remarks date="2020-Dec-08" author="Thomas Wiedebusch">
- Initial.
</remarks>
<remarks date="2020-Dec-20" author="Thomas Wiedebusch">
- Build here the post update registers, they may have changed due to update!
</remarks>
<remarks date="2020-Dec-21" author="Thomas Wiedebusch">
- Clear pre update registers if post indicates a different PCB ID to avoid wrong overwriting of
registers to non-matching new meter.
</remarks>
<remarks date="2023-Oct-24" author="Thomas Wiedebusch">
- Return true if already executed in previous run.
</remarks>
<remarks date="2023-Nov-21" author="Thomas Wiedebusch">
- Return false if PcbId between initial- and final-read does NOT match return false.
</remarks>
<remarks date="2023-Nov-30" author="Thomas Wiedebusch">
- Allow final read out as often as called even if done before.
</remarks>
<remarks date="2024-Feb-19" author="Thomas Wiedebusch">
- Register list changed from RegisterDefinition to RecoveryRegisterItem list.
</remarks>
<remarks date="2024-Mar-06" author="Thomas Wiedebusch">
- Backup _finalRegisters to RecoveryRegisters.
</remarks>
<remarks date="2024-Dec-12" author="Thomas Wiedebusch">
- Check readBack value for null.
</remarks>
<remarks date="2025-Apr-07" author="Thomas Wiedebusch">
- CancellationToken.
</remarks>
<remarks date="2025-Nov-19" author="Thomas Wiedebusch">
- Cleared all failed compare registers and the restore after reboot registers as a new reading
will give it a new chance to compare it.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.InitialReadRegisters(System.Threading.CancellationToken)">
<summary>
Get DEFINED registers from GenesisMeter class and read all registers which are flagged with
read write (RW) or read only (RO). Build a list of all registers being able to restore flagged
with <see cref="T:Xylem.Common.Hardware.WaterMeter.Genesis.Registers.DataTypes.StaticType"/> equals <see cref="F:Xylem.Common.Hardware.WaterMeter.Genesis.Registers.DataTypes.StaticType.RestoreRequired"/>".
The defined registers are based on the "configuration.json" and the installed application with
a specific version.
</summary>
<param name="cancellationToken"></param>
<returns>true if registers could be read</returns>
<remarks date="2020-Dec-08" author="Thomas Wiedebusch">
- Initial.
</remarks>
<remarks date="2020-Dec-17" author="Thomas Wiedebusch">
- Stored registers before and after update.
</remarks>
<remarks date="2020-Dec-18" author="Thomas Wiedebusch">
- Extended register check.
</remarks>
<remarks date="2020-Dec-20" author="Thomas Wiedebusch">
- Removed after update registers and moved them to FinalReadRegisters. They may have changed
during the update.
</remarks>
<remarks date="2020-Dec-21" author="Thomas Wiedebusch">
- Deny register pre update if _pcbIdPreUpdate indicates, that this has been already processed.
</remarks>
<remarks date="2023-Oct-24" author="Thomas Wiedebusch">
- Removed login/logout,
- if _initialReadRegisters and _restoreRegisters are filled, return true.
</remarks>
<remarks date="2024-Feb-19" author="Thomas Wiedebusch">
- Register list changed from RegisterDefinition to RecoveryRegisterItem list.
</remarks>
<remarks date="2025-Apr-07" author="Thomas Wiedebusch">
- CancellationToken.
</remarks>
<remarks date="2025-Apr-07" author="Thomas Wiedebusch">
- CancellationToken.
</remarks>
<remarks date="2025-Dec-13" author="Thomas Wiedebusch">
- Repaired building of initial register list.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.BuildReadableRegisterDictionary(System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem}@)">
<summary>
Get DEFINED registers from GenesisMeter class and build a list all registers which are flagged
with read write (RW) or read only (RO).
The defined registers are based on the "configuration.json" and the installed application with
a specific version.
</summary>
<para name = "registers">all readable registers dictionary creation </para>
<returns>true if register dictionary is not empty</returns>
<returns>true if registers could be read</returns>
<remarks date="2024-Jan-22" author="Thomas Wiedebusch">
- Initial from <see cref="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.InitialReadRegisters(System.Threading.CancellationToken)"/>.
</remarks>
<remarks date="2024-Feb-19" author="Thomas Wiedebusch">
- Register list changed from RegisterDefinition to RecoveryRegisterItem list.
</remarks>
<remarks date="2024-Feb-23" author="Thomas Wiedebusch">
- Excluded registers which do not contain useful information.
</remarks>
<remarks date="2025-Nov-17" author="Thomas Wiedebusch">
- Sequence resorted.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.ReadRegisters(System.Threading.CancellationToken)">
<summary>
Get DEFINED registers from GenesisMeter class and read all registers which are flagged with read write
(RW) or read only (RO).
The defined registers are based on the "configuration.json" and the installed application with a specific
version.
</summary>
<param name="cancellationToken"></param>
<returns>true if registers could be read</returns>
<remarks date="2023-Oct-16" author="Thomas Wiedebusch">
- Initial.
</remarks>
<remarks date="2024-Feb-19" author="Thomas Wiedebusch">
- Register list changed from RegisterDefinition to RecoveryRegisterItem list.
</remarks>
<remarks date="2025-Apr-07" author="Thomas Wiedebusch">
- CancellationToken.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.ReadPresetRegisters(System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem},System.Threading.CancellationToken)">
<summary>
Read predefined registers from RecoveryRegisters.
</summary>
<param name="recoveryRegisters"></param>
<param name="cancellationToken"></param>
<returns>true if registers could be read</returns>
<remarks date="2024-Sep-25" author="Thomas Wiedebusch">
- Initial.
</remarks>
<remarks date="2025-Apr-07" author="Thomas Wiedebusch">
- CancellationToken.
</remarks>
<remarks date="2025-Nov-19" author="Thomas Wiedebusch">
- Leave the initial 'RecoveryRegisters' intact.
</remarks>
</member>
<member name="M:Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.RegisterRestorer.ReadRegistersSet(System.Collections.Generic.List{Xylem.Common.Hardware.WaterMeter.Genesis.Registers.RecoveryRegisterItem}@,System.Threading.CancellationToken)">
<summary>
Register read loop.
All registers needed to be read from the Genesis meter as they are only prepared as template and NOT filled
with the register data!
The <see cref="T:Xylem.Common.Utils.ProcessExec.EventArguments.ProcessExecEventArgs"/> uses the overall process text and value for user information process
bar and text and the actual process text for logging to the report file!
Executes login, read cycle and logout.
</summary>
<param name="registers">registers to read</param>
<param name="cancellationToken"></param>
<returns>true if registers could be read</returns>
<remarks date="2020-Dec-17" author="Thomas Wiedebusch">
- Initial.
</remarks>
<remarks date="2020-Dec-18" author="Thomas Wiedebusch">
- Set value to actual process message.
</remarks>
<remarks date="2020-Dec-20" author="Thomas Wiedebusch">
- Added PCB ID to logging.
</remarks>
<remarks date="2021-Mar-09" author="Thomas Wiedebusch">
- Removed PCB ID from logging.
</remarks>
<remarks date="2023-Oct-24" author="Thomas Wiedebusch">
- Simplified input of set of registers to read.
</remarks>
<remarks date="2023-Nov-21" author="Thomas Wiedebusch">
- Set raw values in register dictionaries.
</remarks>
<remarks date="2023-Nov-24" author="Thomas Wiedebusch">
- Extended try catch to avoid break on one register failed.
</remarks>
<remarks date="2023-Dec-11" author="Thomas Wiedebusch">
- Filtered restore registers to access only if assigned,
- Logging of some exception messages.
</remarks>
<remarks date="2024-Feb-19" author="Thomas Wiedebusch">
- Register list changed from RegisterDefinition to RecoveryRegisterItem list.
</remarks>
<remarks date="2025-Apr-07" author="Thomas Wiedebusch">
- CancellationToken.
</remarks>
<remarks date="2025-Oct-13" author="Thomas Wiedebusch">
- Date size directly from register object.
</remarks>
</member>
</members>
</doc>