diff --git a/.cr/personal/FavoritesList/List.xml b/.cr/personal/FavoritesList/List.xml new file mode 100644 index 000000000..a60e5ed6c --- /dev/null +++ b/.cr/personal/FavoritesList/List.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Common/Units.cs b/Common/Units.cs index 2513a4d64..5a9c903ed 100644 --- a/Common/Units.cs +++ b/Common/Units.cs @@ -2,6 +2,7 @@ /// Copyright (c) 2016-2021 Sensus Slovensko a.s. /// using System; +using System.Linq; namespace Common { @@ -286,97 +287,97 @@ namespace Common public static bool IsQuantity(Unit unit, Quantity quantity) { - return (quantity == GetQuantity(unit)); + return GetQuantity(unit).Contains(quantity); } - public static Quantity GetQuantity(Unit unit) + public static Quantity[] GetQuantity(Unit unit) { switch (unit) { case Unit.pulse: case Unit.degree: - return Quantity.Pulses; + return new[] { Quantity.Pulses }; case Unit.ml: - return Quantity.Volume; + return new[] { Quantity.Volume, Quantity.MultiFunctionalVariables }; case Unit.l: - return Quantity.Volume; + return new[] { Quantity.Volume, Quantity.MultiFunctionalVariables }; case Unit.dm3: - return Quantity.Volume; + return new[] { Quantity.Volume, Quantity.MultiFunctionalVariables }; case Unit.USgal: - return Quantity.Volume; + return new[] { Quantity.Volume, Quantity.MultiFunctionalVariables }; case Unit.UKgal: - return Quantity.Volume; + return new[] { Quantity.Volume, Quantity.MultiFunctionalVariables }; case Unit.cf: - return Quantity.Volume; + return new[] { Quantity.Volume, Quantity.MultiFunctionalVariables }; case Unit.m3: - return Quantity.Volume; + return new[] { Quantity.Volume, Quantity.MultiFunctionalVariables }; case Unit.lph: - return Quantity.Flow; + return new[] { Quantity.Flow }; case Unit.cfph: - return Quantity.Flow; + return new[] { Quantity.Flow }; case Unit.lpm: - return Quantity.Flow; + return new[] { Quantity.Flow }; case Unit.USgalpm: - return Quantity.Flow; + return new[] { Quantity.Flow }; case Unit.m3ph: - return Quantity.Flow; + return new[] { Quantity.Flow }; case Unit.lps: - return Quantity.Flow; + return new[] { Quantity.Flow }; case Unit.USgalps: - return Quantity.Flow; + return new[] { Quantity.Flow }; case Unit.m3pm: - return Quantity.Flow; + return new[] { Quantity.Flow }; case Unit.cfs: - return Quantity.Flow; + return new[] { Quantity.Flow }; case Unit.gps: - return Quantity.MassFlow; + return new[] { Quantity.MassFlow}; case Unit.gpm: - return Quantity.MassFlow; + return new[] { Quantity.MassFlow}; case Unit.gph: - return Quantity.MassFlow; + return new[] { Quantity.MassFlow}; case Unit.kgps: - return Quantity.MassFlow; + return new[] { Quantity.MassFlow}; case Unit.kgpm: - return Quantity.MassFlow; + return new[] { Quantity.MassFlow}; case Unit.kgph: - return Quantity.MassFlow; + return new[] { Quantity.MassFlow}; case Unit.tps: - return Quantity.MassFlow; + return new[] { Quantity.MassFlow}; case Unit.tpm: - return Quantity.MassFlow; + return new[] { Quantity.MassFlow}; case Unit.tph: - return Quantity.MassFlow; + return new[] { Quantity.MassFlow}; case Unit.lbps: - return Quantity.MassFlow; + return new[] { Quantity.MassFlow}; case Unit.lbpm: - return Quantity.MassFlow; + return new[] { Quantity.MassFlow}; case Unit.lbph: - return Quantity.MassFlow; + return new[] { Quantity.MassFlow}; case Unit.g: - return Quantity.Mass; + return new[] { Quantity.Mass, Quantity.MultiFunctionalVariables }; case Unit.oz: - return Quantity.Mass; + return new[] { Quantity.Mass, Quantity.MultiFunctionalVariables }; case Unit.lb: - return Quantity.Mass; + return new[] { Quantity.Mass, Quantity.MultiFunctionalVariables }; case Unit.kg: - return Quantity.Mass; + return new[] { Quantity.Mass, Quantity.MultiFunctionalVariables }; case Unit.t: - return Quantity.Mass; + return new[] { Quantity.Mass, Quantity.MultiFunctionalVariables }; case Unit.ms: case Unit.s: case Unit.min: case Unit.hour: - return Quantity.Time; + return new[] { Quantity.Time }; case Unit.C: case Unit.F: case Unit.K: - return Quantity.Temperature; + return new[] { Quantity.Temperature }; case Unit.Pa: case Unit.hPa: @@ -386,14 +387,14 @@ namespace Common case Unit.psi: case Unit.bar: case Unit.MPa: - return Quantity.Pressure; + return new[] { Quantity.Pressure }; case Unit.RPct: - return Quantity.Humidity; + return new[] { Quantity.Humidity }; case Unit.Promile: case Unit.Pct: - return Quantity.Error; + return new[] { Quantity.Error }; case Unit.mm: case Unit.cm: @@ -402,23 +403,23 @@ namespace Common case Unit.foot: case Unit.yard: case Unit.m: - return Quantity.Length; + return new[] { Quantity.Length }; - case Unit.kgpm3: + case Unit.kgpm3: case Unit.kgpl: - return Quantity.Density; + return new[] { Quantity.Density }; - case Unit.J: + case Unit.J: case Unit.kJ: case Unit.MJ: case Unit.Wh: case Unit.kWh: case Unit.MWh: - return Quantity.Energy; + return new[] { Quantity.Energy }; case Unit.uSpcm: case Unit.mSpm: - return Quantity.Conductivity; + return new[] { Quantity.Conductivity }; case Unit.ppl: case Unit.ppdm3: @@ -428,22 +429,22 @@ namespace Common case Unit.dm3pp: case Unit.lpdeg: case Unit.dm3pdeg: - return Quantity.PulsePerLtr; + return new[] { Quantity.PulsePerLtr }; case Unit.ppkWh: case Unit.kWhpp: - return Quantity.PulsePerKWh; - + return new[] { Quantity.PulsePerKWh }; + case Unit.A: case Unit.mA: - return Quantity.Current; - + return new[] { Quantity.Current }; + case Unit.V: case Unit.mV: - return Quantity.Voltage; + return new[] { Quantity.Voltage }; default: - return Quantity.Number; + return new[] { Quantity.Number }; } } diff --git a/DeviceTest/app.config b/DeviceTest/app.config index 4c9e351d5..b3dc11eca 100644 --- a/DeviceTest/app.config +++ b/DeviceTest/app.config @@ -7,6 +7,22 @@ + + + + + + + + + + + + + + + + diff --git a/GenericTest/app.config b/GenericTest/app.config index 5e7f0894f..48447540a 100644 --- a/GenericTest/app.config +++ b/GenericTest/app.config @@ -7,6 +7,22 @@ + + + + + + + + + + + + + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Common.dll b/GenesisCordonelInterface/RuntimePackage/Package/Common.dll new file mode 100644 index 000000000..5b92f29a0 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Common.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Common.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Common.pdb new file mode 100644 index 000000000..d94dd6cd3 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Common.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/GMH3x32E.dll b/GenesisCordonelInterface/RuntimePackage/Package/GMH3x32E.dll new file mode 100644 index 000000000..28b685563 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/GMH3x32E.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/GenesisCordonelInterface.exe b/GenesisCordonelInterface/RuntimePackage/Package/GenesisCordonelInterface.exe new file mode 100644 index 000000000..c7317d813 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/GenesisCordonelInterface.exe differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/GenesisCordonelInterface.exe.config b/GenesisCordonelInterface/RuntimePackage/Package/GenesisCordonelInterface.exe.config new file mode 100644 index 000000000..47e7230cd --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/GenesisCordonelInterface.exe.config @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GenesisCordonelInterface/RuntimePackage/Package/GenesisCordonelInterface.pdb b/GenesisCordonelInterface/RuntimePackage/Package/GenesisCordonelInterface.pdb new file mode 100644 index 000000000..842b16dbe Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/GenesisCordonelInterface.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Logic.ProductionToProductMapper.dll b/GenesisCordonelInterface/RuntimePackage/Package/Logic.ProductionToProductMapper.dll new file mode 100644 index 000000000..39861edde Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Logic.ProductionToProductMapper.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Logic.ProductionToProductMapper.dll.config b/GenesisCordonelInterface/RuntimePackage/Package/Logic.ProductionToProductMapper.dll.config new file mode 100644 index 000000000..c764f5323 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Logic.ProductionToProductMapper.dll.config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Logic.ProductionToProductMapper.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Logic.ProductionToProductMapper.pdb new file mode 100644 index 000000000..18af7a487 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Logic.ProductionToProductMapper.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/MeterFilesEraseRestore.json b/GenesisCordonelInterface/RuntimePackage/Package/MeterFilesEraseRestore.json new file mode 100644 index 000000000..47413deb6 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/MeterFilesEraseRestore.json @@ -0,0 +1,15 @@ +{ + "Erase": [ + "1\\tstfile", + "1\\fdrdata", + "1\\logdata", + "1\\blklist", + "1\\pulsedbg", + "1\\upg*", + "1\\img*" + ], + "Restore": [ + { + } + ] +} \ No newline at end of file diff --git a/GenesisCordonelInterface/RuntimePackage/Package/NLog.dll b/GenesisCordonelInterface/RuntimePackage/Package/NLog.dll new file mode 100644 index 000000000..d519ffc52 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/NLog.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/NLog.xml b/GenesisCordonelInterface/RuntimePackage/Package/NLog.xml new file mode 100644 index 000000000..65f7343a4 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/NLog.xml @@ -0,0 +1,28513 @@ + + + + NLog + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + A task that completes in the state when completes. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Support implementation of + + + + + + + + + + + + + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without waiting) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + + + + + + + + + + String Conversion Helpers + + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + Output value + Default value + Returns false if the input value could not be parsed + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + The type of the enum + Output value. Null if parse failed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + Enables to extract extra context details for + + + + + Name of context + + + + + The current LogFactory next to LogManager + + + + + NLog internal logger. + + Writes to file, console or custom text writer (see ) + + + Don't use as that can lead to recursive calls - stackoverflow + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Event written to the internal log. + + + EventHandler will only be triggered for events, where severity matches the configured . + + Avoid using/calling NLog Logger-objects when handling these internal events, as it will lead to deadlock / stackoverflow. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Create log line with timestamp, exception message etc (if configured) + + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled for given LogLevel + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Determine if logging is enabled. + + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + A message to write. + + Works when property set to true. + The is used in Debug and Release configuration. + The works only in Debug configuration and this is reason why is replaced by . + in DEBUG + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A message has been written to the internal logger + + + + + The rendered message + + + + + The log level + + + + + The exception. Could be null. + + + + + The type that triggered this internal log event, for example the FileTarget. + This property is not always populated. + + + + + The context name that triggered this internal log event, for example the name of the Target. + This property is not always populated. + + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the capacity of the buffer + + + + + Gets the number of items in the buffer + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Marks the class as containing condition methods. + + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Condition message expression (represented by the exception keyword). + + + + + + + + Evaluates the current . + + Evaluation context. + The object. + + + + Base class for representing nodes in condition expression trees. + + Documentation on NLog Wiki + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + + + + Evaluates the expression by rendering the formatted output from + the + + Evaluation context. + The output rendered from the layout. + + + + Condition level expression (represented by the level keyword). + + + + + + + + Evaluates to the current log level. + + Evaluation context. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + + + + Evaluates the expression. + + Evaluation context. Ignored. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Gets the method parameters + + + + + + + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + + + + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + + + + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparison, e.g. parse a string to int. + + + + + + + Promotes to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparison. + + + index, 0 to max int. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + + Implementors must have the [ThreadAgnostic] attribute + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properties are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + + + + Provides logging interface and utility functions. + + + + + An assembly is trying to load. + + + + + Initializes a new instance of the class. + + Assembly that have been loaded + + + + The assembly that is trying to load. + + + + + Class for providing Nlog configuration xml code from app.config + to + + + + + Overriding base implementation to just store + of the relevant app.config section. + + The XmlReader that reads from the configuration file. + true to serialize only the collection key properties; otherwise, false. + + + + Override base implementation to return a object + for + instead of the instance. + + + A instance, that has been deserialized from app.config. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets the factory. + + + + + Gets the factory. + + + + + Gets the factory. + + + + + Gets the ambient property factory. + + + + + Gets the factory. + + + + + Gets the factory. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Gets the factory. + + The filter factory. + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Gets or sets the JSON serializer to use with + + + + + Gets or sets the string serializer to use with + + + + + Gets or sets the parameter converter to use with or + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in using late-bound types, so that we don't need a reference to the dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Dynamic filtering with a positive list of enabled levels + + + + + Dynamic filtering with a minlevel and maxlevel range + + + + + Format of the exception output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Appends the from the application or the object that caused the error. + + + + + Appends the from the application or the object that caused the error. + + + + + Appends any additional properties that specific type of Exception might have. + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The assembly name for the types. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + + + + + + + + + + + + + Factory specialized for s. + + + + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Factory of named items (such as , , , etc.). + + + + + Factory of named items (such as , , , etc.). + + + + + Registers type-creation from type-alias + + + + + Create type-instance from type-alias + + + + + Include context properties + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + Did the Initialize Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Interface for accessing configuration details + + + + + Name of this configuration element + + + + + Configuration Key/Value Pairs + + + + + Child configuration elements + + + + + Interface for loading NLog + + + + + Finds and loads the NLog configuration + + LogFactory that owns the NLog configuration + Name of NLog.config file (optional) + NLog configuration (or null if none found) + + + + Notifies when LoggingConfiguration has been successfully applied + + LogFactory that owns the NLog configuration + NLog Config + + + + Get file paths (including filename) for the possible NLog config files. + + Name of NLog.config file (optional) + The file paths to the possible config file + + + + Level enabled flags for each LogLevel ordinal + + + + + Converts the filter into a simple + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during install/uninstall. + + Log event info object. + + + + Convert object-value into specified type + + + + + Parses the input value and converts into the wanted type + + Input Value + Wanted Type + Format to use when parsing + Culture to use when parsing + Output value with wanted type + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingRules for LoggingConfiguration + + + + + LoggingRule being built + + + + + Interface for fluent setup of target for LoggingRule + + + + + LoggingConfiguration being built + + + + + LogFactory under configuration + + + + + Collection of targets that should be written to + + + + + Interface for fluent setup of LogFactory options for extension loading + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for enabling NLog + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingConfiguration for LogFactory + + + + + LogFactory under configuration + + + + + LoggingConfiguration being built + + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for logevent serialization + + + + + LogFactory under configuration + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Encapsulates and the logic to match the actual logger name + All subclasses defines immutable objects. + Concrete subclasses defines various matching rules through + + + + + Creates a concrete based on . + + + Rules used to select the concrete implementation returned: + + if is null => returns (never matches) + if doesn't contains any '*' nor '?' => returns (matches only on case sensitive equals) + if == '*' => returns (always matches) + if doesn't contain '?' + + if contains exactly 2 '*' one at the beginning and one at the end (i.e. "*foobar*) => returns + if contains exactly 1 '*' at the beginning (i.e. "*foobar") => returns + if contains exactly 1 '*' at the end (i.e. "foobar*") => returns + + + returns + + + + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + A concrete + + + + Returns the argument passed to + + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Defines a that never matches. + Used when pattern is null + + + + + Defines a that always matches. + Used when pattern is '*' + + + + + Defines a that matches with a case-sensitive Equals + Used when pattern is a string without wildcards '?' '*' + + + + + Defines a that matches with a case-sensitive StartsWith + Used when pattern is a string like "*foobar" + + + + + Defines a that matches with a case-sensitive EndsWith + Used when pattern is a string like "foobar*" + + + + + Defines a that matches with a case-sensitive Contains + Used when pattern is a string like "*foobar*" + + + + + Defines a that matches with a complex wildcards combinations: + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + used when pattern is a string containing any number of '?' or '*' in any position + i.e. "*Server[*].Connection[?]" + + + + + Keeps logging configuration and provides simple API to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the variables defined in the configuration or assigned from API + + Name is case insensitive. + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Inserts NLog Config Variable without overriding NLog Config Variable assigned from API + + + + + Lookup NLog Config Variable Layout + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule object. + + rule object to add + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for all loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Lookup the logging rule with matching + + The name of the logging rule to be found. + Found logging rule or when not found. + + + + Removes the specified named logging rule with matching + + The name of the logging rule to be removed. + Found one or more logging rule to remove, or when not found. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Allow this new configuration to capture state from the old configuration + + Old config that is about to be replaced + Checks KeepVariablesOnReload and copies all NLog Config Variables assigned from API into the new config + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Validates the configuration. + + + + + Replace a simple variable with a value. The original value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the optional boolean attribute value. + + + Name of the attribute. + Default value to return if the attribute is not found or if there is a parse error + Boolean attribute value or default. + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Enables loading of NLog configuration from a file + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads NLog configuration from + + + + + Constructor + + + + + + Loads NLog configuration from provided config section + + + Directory where the NLog-config-file was loaded from + + + + Builds list with unique keys, using last value of duplicates. High priority keys placed first. + + + + + + + Parse loglevel, but don't throw if exception throwing is disabled + + Name of attribute for logging. + Value of parse. + Used if there is an exception + + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + + + + Parse boolean + + Name of the property for logging. + value to parse + Default value to return if the parse failed + Boolean attribute value or default. + + + + Config element that's validated and having extra context + + + + + Explicit cast because NET35 doesn't support covariance. + + + + + Arguments for . + + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + The exception during configuration reload. + + + + Gets a value indicating whether configuration reload has succeeded. + + A value of true if succeeded; otherwise, false. + + + + Gets the exception which occurred during configuration reload. + + The exception. + + + + Enables FileWatcher for the currently loaded NLog Configuration File, + and supports automatic reload on file modification. + + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or to enable logging. + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Target to be written to when the rule matches. + + + + Rule identifier to allow rule lookup + + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any following rules when this one matches. + + + + + Gets or sets the whether to quit processing any following rules when lower severity and this one matches. + + + Loggers matching will be restricted to specified minimum level for following rules. + + + + + Gets or sets logger name pattern. + + + Logger name pattern used by to check if a logger name matches this rule. + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + + + + Gets the collection of log levels enabled by this rule. + + + + + Default action if none of the filters match + + + + + Default action if none of the filters match + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to be disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + + + Checks whether the particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the . + + String to be matched. + A value of when the name matches, otherwise. + + + + Default filtering with static level config + + + + + Factory for locating methods. + + + + + Initializes a new instance of the class. + + + + + Scans the assembly for classes marked with expected class + and methods marked with expected and adds them + to the factory. + + The types to scan. + The assembly name for the type. + The item name prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Scans a type for relevant methods with their symbolic names + + Include types that are marked with this attribute + Include methods that are marked with this attribute + Class Type to scan + Collection of methods with their symbolic names + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a type-alias for an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The type-alias for use in NLog configuration. + + + + Gets the name of the type-alias + + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Failed to resolve the interface of service type + + + + + Typed we tried to resolve + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Special attribute we could ignore + + + + + Default implementation of + + + + + Singleton instance of the serializer. + + + + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Interface to register available configuration objects type + + + + + Registers instance of singleton object for use in NLog + + Type of service + Instance of service + + + + Gets the service object of the specified type. + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Registers singleton-object as implementation of specific interface. + + + If the same single-object implements multiple interfaces then it must be registered for each interface + + Type of interface + The repo + Singleton object to use for override + + + + Registers the string serializer to use with + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Initializes a new instance of the class. + + + + + Registered service type in the service repository + + + + + Initializes a new instance of the class. + + Type of service that have been registered + + + + Type of service-interface that has been registered + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + No Stack trace needs to be captured. + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers + + + + + Capture also filenames and linenumbers + + + + + Capture the location of the call + + + + + Capture the class name for location of the call + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers. + + + + + Stack trace should be captured including filenames and linenumbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + XML reader to read from. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + NLog configuration as XML string. + Name of the XML file. + The to which to apply any applicable configuration values. + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + NLog LogFactory + + + + Gets the default object by parsing + the application configuration file (app.exe.config). + + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Updates the current logical context with multiple items in single operation + + . + >An that can be used to remove the item from the current logical context (null if no items). + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwards-compatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + stores state in the async thread execution context. All LogEvents created + within a scope can include the scope state in the target output. The logical context scope supports + both scope-properties and scope-nested-state-stack (Similar to log4j2 ThreadContext) + + + (MDLC), (MDC), (NDLC) + and (NDC) have been deprecated and replaced by . + + .NetCore (and .Net46) uses AsyncLocal for handling the thread execution context. Older .NetFramework uses System.Runtime.Remoting.CallContext + + + + + Pushes new state on the logical context scope stack together with provided properties + + Value to added to the scope stack + Properties being added to the scope dictionary + A disposable object that pops the nested scope state on dispose (including properties). + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + Skips casting of to check for scope-properties + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Clears all the entire logical context scope, and removes any properties and nested-states + + + + + Retrieves all properties stored within the logical context scopes + + Collection of all properties + + + + Lookup single property stored within the logical context scopes + + Name of property + When this method returns, contains the value associated with the specified key + Returns true when value is found with the specified key + Scope dictionary keys are case-insensitive + + + + Retrieves all nested states inside the logical context scope stack + + Array of nested state objects. + + + + Peeks the top value from the logical context scope stack + + Value from the top of the stack. + + + + Peeks the inner state (newest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Peeks the outer state (oldest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Special bookmark that can restore original parent, after scopes has been collapsed + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language. + + Documentation on NLog Wiki + + + + Gets or sets the condition expression. + + + + + + + + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + + + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + + + + Matches the provided filter-method + + + + + Initializes a new instance of the class. + + + + + + + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A global logging class using caller info to find the logger. + + + + + Starts building a log event with the specified . + + The log level. + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Trace level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Debug level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Info level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Warn level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Error level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Fatal level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition delegate is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Extensions for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. When not + for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Exception level. + + The logger to write the log event to. + The exception information of the logging event. + The for the log event. Defaults to when not specified. + for chaining calls. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Interface for fakeable of the current AppDomain. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Abstract calls for the application environment + + + + + Gets current process name (excluding filename extension, if any). + + + + + Process exit event. + + + + + Abstract calls to FileSystem + + + + Determines whether the specified file exists. + The file to check. + + + Returns the content of the specified file + The file to load. + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Interface for the wrapper around System.Configuration.ConfigurationManager. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Format a log message + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Get the Raw, unformatted value without stringify + + + Implementors must has the [ThreadAgnostic] attribute + + + + + Get the raw value + + + The value + RawValue supported? + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports rendering as string value with limited or no allocations (preferred) + + + Implementors must not have the [AppDomainFixedOutput] attribute + + + + + Renders the value of layout renderer in the context of the specified log event + + + null if not possible or unknown + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Helpers for . + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Forward declare of system delegate type for use by other classes + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Memory optimized filtering + + Passing state too avoid delegate capture and memory-allocations. + + + + Ensures that IDictionary.GetEnumerator returns DictionaryEntry values + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Has property been captured from message-template ? + + + + + The properties of the logEvent + + + + + The properties extracted from the message-template + + + + + Wraps the list of message-template-parameters as IDictionary-interface + + Message-template-parameters + + + + Transforms the list of event-properties into IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The dictionary that initially contains no message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Special property-key for lookup without being case-sensitive + + + + + Property-Key equality-comparer that uses string-hashcode from OrdinalIgnoreCase + Enables case-insensitive lookup using + + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Internal configuration manager used to read .NET configuration files. + Just a wrapper around the BCL ConfigurationManager, but used to enable + unit testing. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + Target Object context of the exception. + Target Method context of the exception. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + FormatProvider that renders an exception-object as $"{ex.GetType()}: {ex.Message}" + + + + + Object construction helper. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appender is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this file-appender instance. + + + + + Closes this file-appender instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appender. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + If larger than 0 then it will be used instead of the default BufferSize for the FileStream. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the mutually-exclusive lock for archiving files. + + The mutex for archiving. + + + + + + + Creates a mutex that is sharable by more than one process. + + The prefix to use for the name of the mutex. + A object which is sharable by multiple processes. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class which creates objects. + + + + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialization as it is an + internal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Should manual simple detection of file deletion be enabled? + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Provides a multi process-safe atomic file appends while + keeping the files open. + + + On Unix you can get all the appends to be atomic, even when multiple + processes are trying to write to the same file, because setting the file + pointer to the end of the file and appending can be made one operation. + On Win32 we need to maintain some synchronization between processes + (global named mutex is used for this) + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Provides a multi process-safe atomic file append while + keeping the files open. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Creates or opens a file in a special mode, so that writes are automatically + as atomic writes at the file end. + See also "UnixMultiProcessFileAppender" which does a similar job on *nix platforms. + + File to create or open + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid file names char array to avoid memory allocation every time Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Watches multiple files at the same time and raises an event whenever + a single change is detected in any of those files. + + + + + The types of changes to watch for. + + + + + Occurs when a change is detected in one of the monitored files. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Stops watching all files. + + + + + Stops watching the specified file. + + + + + + Watches the specified files for changes. + + The file names. + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Supports mocking of SMTP Client code. + + + + + Specifies how outgoing email messages will be handled. + + + + + Gets or sets the name or IP address of the host used for SMTP transactions. + + + + + Gets or sets the port used for SMTP transactions. + + + + + Gets or sets a value that specifies the amount of time after which a synchronous Send call times out. + + + + + Gets or sets the credentials used to authenticate the sender. + + + + + Sends an e-mail message to an SMTP server for delivery. These methods block while the message is being transmitted. + + + System.Net.Mail.MailMessage + MailMessage + A MailMessage that contains the message to send. + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + The MessageFormatter delegate + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + The String Builder destination. + Parameters for the holes. + + + + Detects the platform the NLog is running on. + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Will creating a mutex succeed runtime? + + + + + Supports mocking of SMTP Client code. + + + Disabled Error CS0618 'SmtpClient' is obsolete: 'SmtpClient and its network of types are poorly designed, + we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead' + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + URL that determines the network sender to be created. + The maximum queue size. + The overflow action when reaching maximum queue size. + The maximum message size. + SSL protocols for TCP + KeepAliveTime for TCP + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes the on completion. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Initializes resources for the protocol specific implementation. + + + + + Closes resources for the protocol specific implementation. + + The continuation. + + + + Performs the flush and invokes the on completion. + + The continuation. + + + + Sends the payload using the protocol specific implementation. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + + + + Parses the URI into an IP address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + + + + A base class for network senders that can block or send out-of-order + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The host address. + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The IP address. + Implementation of to use. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Configuration Reflection Helper + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + + Object Path to check + + + + + Converts object into a List of property-names and -values using reflection + + + + + Try get value from , using , and set into + + + + + Scans properties for name (Skips string-compare and value-lookup until finding match) + + + + + Scans properties for name (Skips property value lookup until finding match) + + + + + Scans properties for name + + + + + Binder for retrieving value of + + + + + + + + Reflection helpers for accessing properties. + + + + + Get property info + + Configuration Reflection Helper + object which could have property + property name on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + Attempt to reuse the HashSet.Comparer from the original HashSet-object (Ex. StringComparer.OrdinalIgnoreCase) + + + + + Reflection helpers. + + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: https://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + Optimized delegate for calling a constructor + + Complete list of parameters that matches the constructor, including optional/default parameters. Could be null for no parameters. + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Creates an optimized delegate for calling the constructors using Expression-Trees + + Constructor to optimize + Optimized delegate for invoking the constructor + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Unknown operating system. + + + + + Unix/Linux operating systems. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Macintosh Mac OSX + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state for ScopeContext Mapped Context (MDLC) + + + + + Immutable state for ScopeContext Nested State (NDLC) + + + + + Immutable state for ScopeContext Single Property (MDLC) + + + + + Immutable state for ScopeContext Multiple Properties (MDLC) + + + + + Immutable state for ScopeContext handling legacy MDLC + NDLC operations + + + + + + + + + + + + + + Collection of targets that should be written to + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid assembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + format string. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + NLog string.Format interface + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - https://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Convert DateTime into UTC and format to yyyy-MM-ddTHH:mm:ss.fffffffZ - ISO 8601 Compliant Date Format (Round-Trip-Time) + + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle characters to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Append a numeric type (byte, int, double, decimal) as string + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Replace string with + + + + + + The same reference of nothing has been replaced. + + + Concatenates all the elements of a string array, using the specified separator between each element. + The string to use as a separator. is included in the returned string only if has more than one element. + An collection that contains the elements to concatenate. + A string that consists of the elements in delimited by the string. If is an empty array, the method returns . + + is . + + + + Split a string + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + Default action if none of the filters match. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Default action if none of the filters match. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Prevents the Xamarin linker from linking the target. + + + By applying this attribute all of the members of the target will be kept as if they had been referenced by the code. + + + + + Ensures that all members of this type are preserved + + + + + Flags the method as a method to preserve during linking if the container class is pulled in. + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Pretest, small text and not escape needed + + + + + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + XML elements must follow these naming rules: + - Element names are case-sensitive + - Element names must start with a letter or underscore + - Element names can contain letters, digits, hyphens, underscores, and periods + - Element names cannot contain spaces + + + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Check and remove unusual unicode characters from the result string. + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Interface for handling object transformation + + + + + Takes a dangerous (or massive) object and converts into a safe (or reduced) object + + + Null if unknown object, or object cannot be handled + + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the AppDomain.Id, the second the second the AppDomain.FriendlyName + This string is used in + + + + + + + + + + + + + + + Application setting. + + + Use this layout renderer to insert the value of an application setting + stored in the application's App.config or Web.config file. + + + ${appsetting:item=mysetting:default=mydefault} - produces "mydefault" if no appsetting + + + + + The AppSetting item-name + + + + + + The AppSetting item-name + + + + + The default value to render if the AppSetting value is null. + + + + + + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + + + + + + The default value to render if the Version is not available + + + + + + Gets or sets the custom format of the assembly version output. + + + Supported placeholders are 'major', 'minor', 'build' and 'revision'. + The default .NET template for version numbers is 'major.minor.build.revision'. See + https://docs.microsoft.com/en-gb/dotnet/api/system.version?view=netframework-4.7.2#remarks + for details. + + + + + + + + + + + + + + + Gets the assembly specified by , or entry assembly otherwise + + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets the product version, extracted from the additional version information. + + + + + Thread identity information (username). + + + + + Gets or sets a value indicating whether username should be included. + + + + + + Gets or sets a value indicating whether domain name should be included. + + + + + + Gets or sets the default value to be used when the User is not set. + + + + + + Gets or sets the default value to be used when the Domain is not set. + + + + + + + + + The information about the garbage collector. + + + + + Gets or sets the property to retrieve. + + + + + + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + The identifier of the current process. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + The information about the running process. + + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Marks class as layout-renderer and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + The call site source file name. Full callsite + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site (class name, method name and source information). + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + Gets or sets whether to render StackFrames in reverse order + + + + + + + + + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Get or set if empty values should be included. + + A value is empty when null or in case of a string, null or empty string. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets the keys to exclude from the output. If omitted, none are excluded. + + + + + + Enables capture of ScopeContext-properties from active thread context + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Log event context data. See . + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Gets or sets whether to perform case-sensitive property-name lookup + + + + + + + + Render a Global Diagnostics Context item. See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + + + + Render a Mapped Diagnostic Context item, See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Mapped Diagnostic Logical Context item (based on CallContext). + See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Nested Diagnostic Context item. + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + + + + Render a Nested Diagnostic Logical Context item (Async scope) + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the indent token. + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Gets or sets how to format each nested state. Ex. like JSON = @ + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Renders specified property-item from + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + When Format has not been specified, then it will render TimeSpan.TotalMilliseconds + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + A renderer that puts into log a System.Diagnostics trace correlation id. + + + + + + + + A counter value (increases on each layout rendering). + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + + + + Globally-unique identifier (GUID). + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + + + + The sequence ID + + + + + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The Ticks value of current date and time. + + + + + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + DB null for a database + + + + + + + + The current application domain's base directory. + + + + + cached + + + + + Use base dir of current process. Alternative one can just use ${processdir} + + + + + + Fallback to the base dir of current process, when AppDomain.BaseDirectory is Temp-Path (.NET Core 3 - Single File Publish) + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the base directory. + + + + + + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + + + + The directory where NLog.dll is located. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + + + + The executable directory from the FileName, + using the current process + + + + + Gets or sets the name of the file to be Path.Combine()'d with the process directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the process directory. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • CommonApplicationData - application data for all users.
  • +
  • ApplicationData - roaming application data for current user.
  • +
  • LocalApplicationData - non roaming application data for current user
  • +
  • UserProfile - Profile folder for current user
  • +
  • DesktopDirectory - Desktop-directory for current user
  • +
  • MyDocuments - My Documents-directory for current user
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + The OS dependent directory separator + + + + + + + + Render information of + for the exception passed to the logger call + + + + + Gets or sets the key to search the exception Data for + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Gets or sets whether to collapse exception tree using + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the application source of an Exception to the specified . + + The to append the rendered data to. + The Exception whose source should be appended. + + + + Appends the HResult of an Exception to the specified . + + The to append the rendered data to. + The Exception whose HResult should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Appends all the additional properties of an Exception like Data key-value-pairs + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + This public property will be removed in NLog 5. + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Render the value for this log event + + The logging event. + The value. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Thread identity information (name and authentication information). + + + + + Gets or sets the separator to be used when concatenating + parts of identity information. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.Name. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.AuthenticationType. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.IsAuthenticated. + + + + + + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Value formatter + + + + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + + + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the value of layout renderer in the context of the specified log event into . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + Renderer with callback func + + + + Resolves the interface service-type from the service-repository + + + + + Format of the ${level} layout renderer output. + + + + + Render the LogLevel standard name. + + + + + Render the first character of the level. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + Render the LogLevel full name, expanding Warn / Info abbreviations + + + + + Render the LogLevel as 3 letter abbreviations (Trc, Dbg, Inf, Wrn, Err, Ftl) + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + + + + A string literal with a fixed raw value + + + + + Initializes a new instance of the class. + + The literal text value. + + Fixed raw value + This is used by the layout compiler. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + + + + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + + + + The host name that the process is running on. + + + + + + + + Gets the host name and falls back to computer name if not available + + + + + Tries the lookup value. + + The lookup function. + Type of the lookup. + + + + + + + + The IP address from the network interface card (NIC) on the local machine + + + Skips loopback-adapters and tunnel-interfaces. Skips devices without any MAC-address + + + + + Get or set whether to prioritize IPv6 or IPv4 (default) + + + + + + + + + + + + + + + The machine name that the process is running on. + + + + + + + + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + + + + A newline literal. + + + + + + + + The identifier of the current thread. + + + + + + + + The name of the current thread. + + + + + + + + Render a NLog Configuration variable assigned from API or loaded from config-file + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Gets the configuration variable layout matching the configured Name + + Mostly relevant for the scanning of active NLog Layouts (Ex. CallSite capture) + + + + + + + Try lookup the configuration variable layout matching the configured Name + + + + + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Gets or sets a value indicating how many seconds the value should stay cached until it expires + + + + + + + + + + + + + + + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Gets or sets whether output should be encoded with Json-string escaping. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + Left part of a text + + + + + Gets or sets the length in characters. + + + + + + Same as -property, so it can be used as ambient property. + + + ${message:truncate=80} + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:tolower} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Render the non-raw value of an object. + + For performance and/or full (formatted) control of the output. + + + + Gets or sets a value indicating whether to disable the IRawValue-interface + + A value of true if IRawValue-interface should be ignored; otherwise, false. + + + + + + + + + + + Render a single property of a object + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + Shortcut for + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Lookup property-value from source object based on + + Could resolve property-value? + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + If is not found, print this layout. + + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + ${onhasproperties:, Properties\: ${all-event-properties}} + + + + + If is not found, print this layout. + + + + + + + + + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + + + + + + + + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + + + + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Right part of a text + + + + + Gets or sets the length in characters. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See https://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Substring the result + + + ${substring:${level}:start=2:length=2} + ${substring:${level}:start=-2:length=2} + ${substring:Inner=${level}:start=2:length=2} + + + + + Gets or sets the start index. + + Index + + + + + Gets or sets the length in characters. If null, then the whole string + + Index + + + + + + + + + + + Calculate start position + + 0 or positive number + + + + Calculate needed length + + 0 or positive number + + + + Trims the whitespace from the result of another layout renderer. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:toupper} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + + + + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Gets or sets whether output should be encoded with Xml-string escaping. + + Ensures always valid XML, but gives a performance hit + + + + + Gets or sets a value indicating whether to transform newlines (\r\n) into ( ) + + + + + + + + + + + + A layout containing one or more nested layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + + + + + + + + + + + + + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Gets or sets the override of Quoting mode + + + and are faster than the default + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + + + If is set, then the header generation with column names will be disabled. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + + + + + + + + + + Get the headers with the column names. + + + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + + + + + + + + + + + + + Specifies CSV quoting modes. + + + + + Quote all column (Fast) + + + + + Quote nothing (Very fast) + + + + + Quote only whose values contain the quote symbol or the separator (Slow) + + + + + A specialized layout that renders LogEvent as JSON-Array + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets the array of items to include in JSON-Array + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + + + + + + + + + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded as Json-String-Property, or be treated as valid json. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Auto indent and create new lines + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to exclude null/empty properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + + + + + + + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of .' + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + Whether should be thrown on parse errors (false = replace unrecognized tokens with a space). + Instance of . + + + + Create a from a lambda method. + + Method that renders the layout. + Tell if method is safe for concurrent threading. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doesn't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders formatted output using the log event as context. + + Inside a , is preferred for performance reasons. + The logging event. + The formatted output as string. + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the formatted output to target + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + The rendered layout. + + + + Renders formatted output using the log event as context. + + The logging event. + Appends the formatted output to target + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders formatted output using the log event as context. + + The logging event. + The formatted output. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Try get value + + + rawValue if return result is true + false if we could not determine the rawValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur + + + + Marks class as Layout and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The Layout type-alias for use in NLog configuration. + + + + Parses layout strings. + + + + + Add to + + + + + + + Options available for + + + + + Default options + + + + + Layout renderer method can handle concurrent threads + + + + + Layout renderer method is agnostic to current thread context. This means it will render the same result independent of thread-context. + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + + + + + + + A specialized layout that renders Log4j-compatible XML events. + + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + + + + + + + Represents a string with embedded placeholders that can render contextual information. + + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + Whether should be thrown on parse errors. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Is the message a simple formatted string? (Can skip StringBuilder) + + + + + Gets a collection of objects that make up this layout. + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + + + + + + + + + + + + + + + + + + + Typed Layout for easy conversion from NLog Layout logic to a simple value (ex. integer or enum) + + + + + + Is fixed value? + + + + + Fixed value + + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + Format used for parsing string-value into result value type + Culture used for parsing string-value into result value type + + + + Initializes a new instance of the class. + + Fixed value + + + + Render Value + + Log event for rendering + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Renders the value and converts the value into string format + + + Only to implement abstract method from , and only used when calling + + + + + + + + + + + + + + + + + + + + + + + Implements Equals using + + + + + + + + Converts a given value to a . + + Text to be converted. + + + + Converts a given text to a . + + Text to be converted. + + + + Implements the operator == using + + + + + Implements the operator != using + + + + + Provides access to untyped value without knowing underlying generic type + + + + + Typed Value that is easily configured from NLog.config file + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout that will render the result value + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets the fallback value should be null (instead of default value of ) when result value is not available + + + + + + Gets or sets format used for parsing parameter string-value for type-conversion + + + + + + Gets or sets the culture used for parsing parameter string-value for type-conversion + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + XML attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with xml-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-attribute-value + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A XML Element + + + + + + + + + + + Name of the element + + + + + + Value inside the element + + + + + + Value inside the element + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-element-value + + + + + + A specialized layout that renders XML-formatted events. + + + + + Initializes a new instance of the class. + + The name of the top XML node + The value of the top XML node + + + + Name of the XML element + + Upgrade to private protected when using C# 7.2 + + + + Value inside the XML element + + Upgrade to private protected when using C# 7.2 + + + + Auto indent and create new lines + + + + + + Gets the array of xml 'elements' configurations. + + + + + + Gets the array of 'attributes' configurations for the element + + + + + + Gets or sets whether a ElementValue with empty value should be included in the output + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + List of property names to exclude when is true + + + + + + XML element name to use when rendering properties + + + Support string-format where {0} means property-key-name + + Skips closing element tag when having configured + + + + + + XML attribute name to use when rendering property-key + + When null (or empty) then key-attribute is not included + + + Will replace newlines in attribute-value with + + + + + + XML attribute name to use when rendering property-value + + When null (or empty) then value-attribute is not included and + value is formatted as XML-element-value + + + Skips closing element tag when using attribute for value + + Will replace newlines in attribute-value with + + + + + + XML element name to use for rendering IList-collections items + + + + + + How far should the XML serializer follow object references before backing off + + + + + + + + + + + + + + + write attribute, only if is not empty + + + + + rendered + + + + + + + A specialized layout that renders XML-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + + + + Name of the root XML element + + + + + + Value inside the root XML element + + + + + + Determines whether or not this attribute will be Xml encoded. + + + + + + Extensions for NLog . + + + + + Renders the logevent into a result-value by using the provided layout + + Inside a , is preferred for performance reasons. + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + A fluent builder for logging events to NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The log level. LogEvent is only created when is enabled for + + + + The logger to write the log event to + + + + + Logging event that will be written + + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + + + + Sets the information of the logging event. + + The exception information of the logging event. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + + + + Sets the log message on the logging event. + + A to be written. + + + + Sets the log message and parameters for formatting for the logging event. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + A containing format items. + The first argument to format. + The second argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing format items. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + A containing format items. + Arguments to format. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the log event to the underlying logger. + + The class of the caller to the method. This is captured by the NLog engine when necessary + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + The log level. Optional but when assigned to then it will discard the LogEvent. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + Type of custom Logger wrapper. + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + Already parsed message template parameters. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message. + List of event-properties + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace (Negative means NLog should skip stackframes from System-assemblies). + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Specialized LogFactory that can return instances of custom logger types. + + Use this only when a custom Logger type is defined. + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the full name of the current class (so namespace and class name) and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Initializes static members of the LogManager class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Initializes a new instance of the class. + + The config loader + The custom AppEnvironmnet override + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + The logger with type . + Type of the logger + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The type of the logger to create. The type must inherit from + The logger of type . + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flushes any pending log messages on all appenders. + + Config containing Targets to Flush + Flush completed notification (success / timeout) + Optional timeout that guarantees that completed notification is called. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Raises the event when the configuration is reloaded. + + Event arguments + + + + Currently this is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Dispose all targets, and shutdown logging. + + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the candidates paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Loops through all cached loggers and removes dangling loggers that have been garbage collected. + + + + + Internal for unit tests + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Collection of context properties for the Logger. The logger will append it for all log events + + + It is recommended to use for modifying context properties + when same named logger is used at multiple locations or shared by different thread contexts. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Creates new logger that automatically appends the specified property to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Property Name + Property Value + New Logger object that automatically appends specified property + + + + Creates new logger that automatically appends the specified properties to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Collection of key-value pair properties + New Logger object that automatically appends specified properties + + + + Updates the specified context property for the current logger. The logger will append it for all log events. + + With property, all properties can be enumerated (or updated). + + + It is highly recommended to ONLY use for modifying context properties. + This method will affect all locations/contexts that makes use of the same named logger object. And can cause + unexpected surprises at multiple locations and other thread contexts. + + Property Name + Property Value + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Gets the filter result. + + The filter chain. + The log event. + default result if there are no filters, or none of the filters decides. + The result of the filter. + + + + Defines available log levels. + + + Log levels ordered by severity:
+ - (Ordinal = 0) : Most verbose level. Used for development and seldom enabled in production.
+ - (Ordinal = 1) : Debugging the application behavior from internal events of interest.
+ - (Ordinal = 2) : Information that highlights progress or application lifetime events.
+ - (Ordinal = 3) : Warnings about validation issues or temporary failures that can be recovered.
+ - (Ordinal = 4) : Errors where functionality has failed or have been caught.
+ - (Ordinal = 5) : Most critical level. Application is about to abort.
+
+
+ + + Trace log level (Ordinal = 0) + + + Most verbose level. Used for development and seldom enabled in production. + + + + + Debug log level (Ordinal = 1) + + + Debugging the application behavior from internal events of interest. + + + + + Info log level (Ordinal = 2) + + + Information that highlights progress or application lifetime events. + + + + + Warn log level (Ordinal = 3) + + + Warnings about validation issues or temporary failures that can be recovered. + + + + + Error log level (Ordinal = 4) + + + Errors where functionality has failed or have been caught. + + + + + Fatal log level (Ordinal = 5) + + + Most critical level. Application is about to abort. + + + + + Off log level (Ordinal = 6) + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + + + + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + LogManager wraps a singleton instance of . + + + + + Internal for unit tests + + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The logger class. This class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The logger class. This class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Convert, Render or serialize a value, with optionally backwards-compatible with + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serializing a scalar (string, int, NULL) or simple type (IFormattable) + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + format string of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + TraceListener which routes all messages through NLog. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the log factory to use when outputting messages (null - use LogManager). + + + + + Gets or sets the default log level. + + + + + Gets or sets the log which should be always used regardless of source level. + + + + + Gets or sets a value indicating whether flush calls from trace sources should be ignored. + + + + + Gets a value indicating whether the trace listener is thread safe. + + + true if the trace listener is thread safe; otherwise, false. The default is false. + + + + Gets or sets a value indicating whether to use auto logger name detected from the stack trace. + + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message to write. + + + + When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. + + A message to write. + + + + When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output. + + + + + Emits an error message. + + A message to emit. + + + + Emits an error message and a detailed error message. + + A message to emit. + A detailed message to emit. + + + + Flushes the output (if is not true) buffer with the default timeout of 15 seconds. + + + + + Writes trace information, a data object and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace data to emit. + + + + Writes trace information, an array of data objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of objects to emit as data. + + + + Writes trace and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + + + + Writes trace information, a formatted array of objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + + + Writes trace information, a message, and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A message to write. + + + + Writes trace information, a message, a related activity identity and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + A numeric identifier for the event. + A message to write. + A object identifying a related activity. + + + + Gets the custom attributes supported by the trace listener. + + + A string array naming the custom attributes supported by the trace listener, or null if there are no custom attributes. + + + + + Translates the event type to level from . + + Type of the event. + Translated log level. + + + + Process the log event + The log level. + The name of the logger. + The log message. + The log parameters. + The event id. + The event type. + The related activity id. + + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Extension methods to setup LogFactory options + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + + + + Gets the specified named logger. + + + + + Configures general options for NLog LogFactory before loading NLog config + + + + + Configures loading of NLog extensions for Targets and LayoutRenderers + + + + + Configures the output of NLog for diagnostics / troubleshooting + + + + + Configures serialization and transformation of LogEvents + + + + + Loads NLog config created by the method + + + + + Loads NLog config provided in + + + + + Loads NLog config from filename if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Explicit configuration file to be read (Default NLog.config from candidates paths) + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from file-paths if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Candidates file paths (including filename) where to scan for NLog config files + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from XML in + + + + + Loads NLog config located in embedded resource from main application assembly. + + Fluent interface parameter. + Assembly for the main Application project with embedded resource + Name of the manifest resource for NLog config XML + + + + Reloads the current logging configuration and activates it + + Logevents produced during the configuration-reload can become lost, as targets are unavailable while closing and initializing. + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Registers NLog extensions from the assembly. + + + + + Registers NLog extensions from the assembly type name + + + + + Register a custom NLog Configuration Type. + + Type of the NLog configuration item + Fluent interface parameter. + + + + Register a custom NLog Target. + + Type of the Target. + Fluent interface parameter. + The target type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Target. + + Type of the Target. + Fluent interface parameter. + The factory method for creating instance of NLog Target + The target type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Target. + + Fluent interface parameter. + Type name of the Target + The target type-alias for use in NLog configuration + + + + Register a custom NLog Layout. + + Type of the layout renderer. + Fluent interface parameter. + The layout type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Layout. + + Type of the layout renderer. + Fluent interface parameter. + The factory method for creating instance of NLog Layout + The layout type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Layout. + + Fluent interface parameter. + Type of the layout. + The layout type-alias for use in NLog configuration + + + + Register a custom NLog LayoutRenderer. + + Type of the layout renderer. + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }'. Will extract from class-attribute when unassigned. + + + + Register a custom NLog LayoutRenderer. + + Type of the layout renderer. + Fluent interface parameter. + The factory method for creating instance of NLog LayoutRenderer + The layout-renderer type-alias for use in NLog configuration - without '${ }'. Will extract from class-attribute when unassigned. + + + + Register a custom NLog LayoutRenderer. + + Fluent interface parameter. + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function + + Fluent interface parameter. + LayoutRenderer instance with type-alias and callback-method. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + MethodInfo extracted by reflection - typeof(MyClass).GetMethod("MyFunc", BindingFlags.Static). + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register (or replaces) singleton-object for the specified service-type + + Service interface type + Fluent interface parameter. + Implementation of interface. + + + + Register (or replaces) singleton-object for the specified service-type + + Fluent interface parameter. + Service interface type. + Implementation of interface. + + + + Register (or replaces) external service-repository for resolving dependency injection + + Fluent interface parameter. + External dependency injection repository + + + + Extension methods to setup NLog options + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configure the InternalLogger properties from Environment-variables and App.config using + + + Recognizes the following environment-variables: + + - NLOG_INTERNAL_LOG_LEVEL + - NLOG_INTERNAL_LOG_FILE + - NLOG_INTERNAL_LOG_TO_CONSOLE + - NLOG_INTERNAL_LOG_TO_CONSOLE_ERROR + - NLOG_INTERNAL_LOG_TO_TRACE + - NLOG_INTERNAL_INCLUDE_TIMESTAMP + + Legacy .NetFramework platform will also recognizes the following app.config settings: + + - nlog.internalLogLevel + - nlog.internalLogFile + - nlog.internalLogToConsole + - nlog.internalLogToConsoleError + - nlog.internalLogToTrace + - nlog.internalLogIncludeTimestamp + + + + + Extension methods to setup NLog + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Logger name pattern to check which names matches this rule + Rule identifier to allow rule lookup + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Restrict minimum LogLevel for names that matches this rule + Logger name pattern to check which names matches this rule + Rule identifier to allow rule lookup + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Override the name for the target created + + + + Apply fast filtering based on . Include LogEvents with same or worse severity as . + + Fluent interface parameter. + Minimum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with same or less severity as . + + Fluent interface parameter. + Maximum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity that equals . + + Fluent interface parameter. + Single loglevel that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity between and . + + Fluent interface parameter. + Minimum level that this rule matches + Maximum level that this rule matches + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Filter for controlling whether to write + Default action if none of the filters match + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + Default action if none of the filters match + + + + Dynamic filtering of LogEvent, where it will be ignored when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will on match also be ignored by following logging-rules + + + + Dynamic filtering of LogEvent, where it will be logged when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will not be evaluated by following logging-rules + + + + Move the to the top, to match before any of the existing + + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Discard output from matching , so it will not reach any following . + + Fluent interface parameter. + Only discard output from matching Logger when below minimum LogLevel + + + + Returns first target registered + + + + + Returns first target registered with the specified type + + Type of target + + + + Write to + + Fluent interface parameter. + Method to call on logevent + Layouts to render object[]-args before calling + + + + Write to + + Fluent interface parameter. + Override the default Layout for output + Override the default Encoding for output (Ex. UTF8) + Write to stderr instead of standard output (stdout) + Skip overhead from writing to console, when not available (Ex. running as Windows Service) + Enable batch writing of logevents, instead of Console.WriteLine for each logevent (Requires ) + + + + Write to + + + Override the default Layout for output + Force use independent of + + + + Write to + + + Override the default Layout for output + + + + Write to (when DEBUG-build) + + + Override the default Layout for output + + + + Write to + + Fluent interface parameter. + + Override the default Layout for output + Override the default Encoding for output (Default = UTF8) + Override the default line ending characters (Ex. without CR) + Keep log file open instead of opening and closing it on each logging event + Activate multi-process synchronization using global mutex on the operating system + Size in bytes where log files will be automatically archived. + Maximum number of archive files that should be kept. + Maximum days of archive files that should be kept. + + + + Applies target wrapper for existing + + Fluent interface parameter. + Factory method for creating target-wrapper + + + + Applies for existing for asynchronous background writing + + Fluent interface parameter. + Action to take when queue overflows + Queue size limit for pending logevents + Batch size when writing on the background thread + + + + Applies for existing for throttled writing + + Fluent interface parameter. + Buffer size limit for pending logevents + Timeout for when the buffer will flush automatically using background thread + Restart timeout when logevent is written + Action to take when buffer overflows + + + + Applies for existing for flushing after conditional event + + Fluent interface parameter. + Method delegate that controls whether logevent should force flush. + Only flush when triggers (Ignore config-reload and config-shutdown) + + + + Applies for existing for retrying after failure + + Fluent interface parameter. + Number of retries that should be attempted on the wrapped target in case of a failure. + Time to wait between retries + + + + Applies for existing to fallback on failure. + + Fluent interface parameter. + Target to use for fallback + Whether to return to the first target after any successful write + + + + Extension methods to setup general option before loading NLog LoggingConfiguration + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Configures the global time-source used for all logevents to use + + + + + Configures the global time-source used for all logevents to use + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Sets whether to automatically call on AppDomain.Unload or AppDomain.ProcessExit + + + + + Sets the default culture info to use as . + + + + + Sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets a value indicating whether should be thrown on configuration errors + + + + + Mark Assembly as hidden, so Assembly methods are excluded when resolving ${callsite} from StackTrace + + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Overrides the active with a new custom implementation + + + + + Overrides the active with a new custom implementation + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : AsyncTaskTarget + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private async Task SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + How many milliseconds to delay the actual write operation to optimize for batching + + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + + How many attempts to retry the same Task, before it is aborted + + + + + + How many milliseconds to wait before next retry (will double with each retry) + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + + + + Override this to provide async task for writing a single logevent. + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Override this to provide async task for writing a batch of logevents. + + A batch of logevents. + The cancellation token + + + + + Handle cleanup after failed write operation + + Exception from previous failed Task + The cancellation token + Number of retries remaining + Time to sleep before retrying + Should attempt retry + + + + Block for override. Instead override + + + + + Block for override. Instead override + + + + + + + + Write to queue without locking + + + + + + Block for override. Instead override + + + + + LogEvent is written to target, but target failed to successfully initialize + + Enqueue logevent for later processing when target failed to initialize because of unresolved service dependency. + + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation between task-completion and timeout + Signals whether previousTask completed an almost full BatchSize + + + + Generates recursive task-chain to perform retry of writing logevents with increasing retry-delay + + + + + Creates new task to handle the writing of the input + + LogEvents to write + New Task created [true / false] + + + + Handles that scheduled task has completed (successfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Color formatting for using ANSI Color Codes + + + + + Not using bold to get light colors, as it has to be cleared + + + + + Not using bold to get light colors, as it has to be cleared (And because it only works for text, and not background) + + + + + Resets both foreground and background color. + + + + + ANSI have 8 color-codes (30-37) by default. The "bright" (or "intense") color-codes (90-97) are extended values not supported by all terminals + + + + + Color formatting for using + and + + + + + Writes log messages to the console with customizable coloring. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to use default row highlighting rules. + + + The default rules are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionForeground ColorBackground Color
level == LogLevel.FatalRedNoChange
level == LogLevel.ErrorYellowNoChange
level == LogLevel.WarnMagentaNoChange
level == LogLevel.InfoWhiteNoChange
level == LogLevel.DebugGrayNoChange
level == LogLevel.TraceDarkGrayNoChange
+
+ +
+ + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available. + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-check if the console has been redirected to file + - Disables coloring logic when System.Console.IsOutputRedirected = true + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Enables output using ANSI Color Codes + + + + + + Gets the row highlighting rules. + + + + + + Gets the word highlighting rules. + + + + + + + + + + + + + + + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Gets or sets whether to activate internal buffering to allow batch writing, instead of using + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + + + + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Gets or sets the condition that must be met before scanning the row for highlight of words + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + Outputs log messages through + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Outputs the rendered logging event through + + The logging event. + + + + Mock target - useful for testing. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialization options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized successfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + all options + JSON escaped string + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ASCII characters be encoded + + JSON escaped string + + + + Writes log message to the Event Log. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Max size in characters (limitation of the EventLog API). + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the machine on which Event Log service is running. + + + + + + Gets or sets the layout that renders event ID. + + + + + + Gets or sets the layout that renders event Category. + + + + + + Optional entry type. When not set, or when not convertible to then determined by + + + + + + Gets or sets the value to be used as the event Source. + + + By default this is the friendly name of the current AppDomain. + + + + + + Gets or sets the name of the Event Log to write to. This can be System, Application or any user-defined name. + + + + + + Gets or sets the message length limit to write to the Event Log. + + MaxMessageLength cannot be zero or negative + + + + + Gets or sets the maximum Event log size in kilobytes. + + + MaxKilobytes cannot be less than 64 or greater than 4194240 or not a multiple of 64. + If null, the value will not be specified while creating the Event log. + + + + + + Gets or sets the action to take if the message is larger than the option. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + + + + + + + Get the entry type for logging the message. + + The logging event - for rendering the + + + + Get the source, if and only if the source is fixed. + + null when not + Internal for unit tests + + + + (re-)create an event source, if it isn't there. Works only with fixed source names. + + The source name. If source is not fixed (see , then pass null or . + always throw an Exception when there is an error + + + + A wrapper for Windows event log. + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + Indicates whether an event log instance is associated. + + + + + A wrapper for the method . + + + + + Creates a new association with an instance of the event log. + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + The implementation of , that uses Windows . + + + + + Creates a new association with an instance of Windows . + + + + + Action that should be taken if the message is greater than + the max message size allowed by the Event Log. + + + + + Truncate the message before writing to the Event Log. + + + + + Split the message and write multiple entries to the Event Log. + + + + + Discard of the message. It will not be written to the Event Log. + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The beginning position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. + + When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Default clean up period of the initialized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + This value disables file archiving based on the size. + + + + + Holds the initialized files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialized files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The maximum days of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + KeepFileOpen = true gives the best performance, and ensure the file-lock is not lost to other applications.
+ KeepFileOpen = false gives the best compability, but slow performance and lead to file-locking issues with other applications. +
+ +
+ + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. Zero or negative means disabled. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. Zero or negative means disabled. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files. + + Defaults to true for UTF-16 and UTF-32 + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value of the file size threshold to archive old log file on startup. + + + This option won't work if is set to false + Default value is 0 which means that the file is archived as soon as archival on + startup is enabled. + + + + + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + + Notice when combined with then it will attempt to append to any existing + archive file if grown above size multiple times. New archive file will be created when using + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the maximum days of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether file creation calls should be synchronized by a system global mutex. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occurring day of the week to return a DateTime for. + The DateTime of the next occurring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Closes any active file-appenders that matches the input filenames. + File-appender is requested to invalidate/close its filehandle, but keeping its archive-mutex alive + + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Check if archive operation should check previous filename, because FileAppenderCache tells us current filename no longer exists + + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialize a file to be used by the instance. Based on the number of initialized + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Decision logic whether to archive logfile on startup. + and properties. + + File name to be written. + Decision whether to archive or not. + + + + Invokes the archiving and clean up of older archive file based on the values of + and + properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formatting and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + The name of the file inside the archive. + + + + Controls the text and color formatting for + + + + + Creates a TextWriter for the console to start building a colored text message + + Active console stream + Optional StringBuilder to optimize performance + TextWriter for the console + + + + Releases the TextWriter for the console after having built a colored text message (Restores console colors) + + Colored TextWriter + Active console stream + Original foreground color for console (If changed) + Original background color for console (If changed) + Flush TextWriter + + + + Changes foreground color for the Colored TextWriter + + Colored TextWriter + New foreground color for the console + Old previous backgroundColor color for the console + Old foreground color for the console + + + + Changes backgroundColor color for the Colored TextWriter + + Colored TextWriter + New backgroundColor color for the console + Old previous backgroundColor color for the console + Old backgroundColor color for the console + + + + Restores console colors back to their original state + + Colored TextWriter + Original foregroundColor color for the console + Original backgroundColor color for the console + + + + Writes multiple characters to console in one operation (faster) + + Colored TextWriter + Output Text + Start Index + End Index + + + + Writes single character to console + + Colored TextWriter + Output Text + + + + Writes whole string and completes with newline + + Colored TextWriter + Output Text + + + + Default row highlight rules for the console printer + + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Options for JSON serialization + + + + + Add quotes around object keys? + + + + + Format provider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Insert null terminator (ASCII 0) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + + + + + + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + + + + + + + Sends log messages by email using SMTP protocol. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ Mail target works best when used with BufferingWrapper target + which lets you send multiple log messages in single mail +

+

+ To set up the buffered mail target in the configuration file, + use the following syntax: +

+ +

+ To set up the buffered mail target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the mailSettings/smtp configuration from app.config in cases when we need those configuration. + E.g when UseSystemNetMailSettings is enabled and we need to read the From attribute from system.net/mailSettings/smtp + + Internal for mocking + + + + Gets or sets sender's email address (e.g. joe@domain.com). + + + + + + Gets or sets recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets a value indicating whether to add new lines between log entries. + + A value of true if new lines should be added; otherwise, false. + + + + + Gets or sets the mail subject. + + + + + + Gets or sets mail message body (repeated for each log message send in one mail). + + Alias for the Layout property. + + + + + Gets or sets encoding to be used for sending e-mail. + + + + + + Gets or sets a value indicating whether to send message as HTML instead of plain text. + + + + + + Gets or sets SMTP Server to be used for sending. + + + + + + Gets or sets SMTP Authentication mode. + + + + + + Gets or sets the username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets the password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets a value indicating whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + . + + + + Gets or sets the port number that SMTP Server is listening on. + + + + + + Gets or sets a value indicating whether the default Settings from System.Net.MailSettings should be used. + + + + + + Specifies how outgoing email messages will be handled. + + + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + + Gets or sets the priority used for sending mails. + + + + + + Gets or sets a value indicating whether NewLine characters in the body should be replaced with
tags. +
+ Only happens when is set to true. + +
+ + + Gets or sets a value indicating the SMTP client timeout. + + Warning: zero is not infinite waiting + + + + + Gets the array of email headers that are transmitted with this email message + + + + + + + + + + + + + + + Create mail and send with SMTP + + event printed in the body of the event + + + + Create buffer for body + + all events + first event for header + last event for footer + + + + + Set properties of + + last event for username/password + client to set properties on + Configure not at , as the properties could have layout renderers. + + + + Handle if it is a virtual directory. + + + + + + + Create key for grouping. Needed for multiple events in one mail message + + event for rendering layouts + string to group on + + + + Create the mail message with the addresses, properties and body. + + + + + Render and add the addresses to + + Addresses appended to this list + layout with addresses, ; separated + event for rendering the + added a address? + + + + Writes log messages to in memory for programmatic retrieval. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Gets or sets the max number of items to have in memory + + + + + + + + + + + + Renders the logging event message and adds to + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Arguments for events. + + + + + + + + + + + + + + + + + Creates new instance of NetworkTargetLogEventDroppedEventArgs + + + + + The reason why log was dropped + + + + + The reason why log event was dropped by + + + + + Discarded LogEvent because message is bigger than + + + + + Discarded LogEvent because message queue was bigger than + + + + + Discarded LogEvent because attempted to open more than connections + + + + + Discarded LogEvent because of network communication error + + + + + Sends log messages over the network. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6)
  • +
  • tcp4://host:port - force TCP/IPv4
  • +
  • tcp6://host:port - force TCP/IPv6
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6)
  • +
  • udp4://host:port - force UDP/IPv4
  • +
  • udp6://host:port - force UDP/IPv6
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. On limit breach then action is activated. + + + + + + Gets or sets the maximum simultaneous connections. Requires = false + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more connections than . + + + + + + Gets or sets the maximum queue size for a single connection. Requires = true + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more pending messages than . + + + + + + Occurs when LogEvent has been dropped. + + + - When internal queue is full and set to
+ - When connection-list is full and set to
+ - When message is too big and set to
+
+
+ + + Gets or sets the size of the connection cache (number of connections which are kept alive). Requires = true + + + + + + Gets or sets the action that should be taken if the message is larger than + + + For TCP sockets then means no-limit, as TCP sockets + performs splitting automatically. + + For UDP Network sender then means splitting the message + into smaller chunks. This can be useful on networks using DontFragment, which drops network packages + larger than MTU-size (1472 bytes). + + + + + + Gets or sets the encoding to be used. + + + + + + Gets or sets the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP. + + + + + + The number of seconds a connection will remain idle before the first keep-alive probe is sent + + + + + + Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes. + + + + + Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + Type of compression for protocol payload + + + + + No compression + + + + + GZip optimal compression + + + + + GZip fastest compression + + + + + The action to be taken when there are more connections then the max. + + + + + Allow new connections when reaching max connection limit + + + + + Just allow it. + + + + + Discard new messages when reaching max connection limit + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. Only relevant for UDP sockets, as TCP sockets does it automatically. + + + Udp-Network-Sender will split the message into smaller chunks that matches . + This can avoid network-package-drop when network uses DontFragment and message is larger than MTU-size (1472 bytes). + + + + + Discard the entire message. + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + Sends log messages to the remote instance of NLog Viewer. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the separator for operation-states-stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + SMTP authentication modes. + + + + + No authentication. + + + + + Basic - username and password. + + + + + NTLM Authentication. + + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + NLog Layout are by default threadsafe, so multiple threads can be rendering logevents at the same time. + This ensure high concurrency with no lock-congestion for the application-threads, especially when using + or AsyncTaskTarget. + + But if using custom or that are not + threadsafe, then this option can enabled to protect against thread-concurrency-issues. Allowing one + to update to NLog 5.0 without having to fix custom/external layout-dependencies. + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + LogEvent is written to target, but target failed to successfully initialize + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target before writing starts + + + + + Closes the target to release any initialized resources + + + + + Flush any pending log messages + + The asynchronous continuation parameter must be called on flush completed + The asynchronous continuation to be called on flush completed. + + + + Writes logging event to the target destination + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the logevent into a string-result using the provided layout + + The layout. + The logevent info. + String representing log event. + + + + Renders the logevent into a result-value by using the provided layout + + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Should the exception be rethrown? + + Upgrade to private protected when using C# 7.2 + + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Marks class as logging target and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The target type-alias for use in NLog configuration. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the type of the property. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Represents target that supports context capture of Properties + Nested-states + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : TargetWithContext + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override void Write(LogEventInfo logEvent) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private void SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + List of property names to exclude when is true + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Optional prefilled dictionary + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Creates combined dictionary of all configured properties for logEvent + + + Optional prefilled dictionary + Dictionary with all collected properties for logEvent + + + + Generates a new unique name, when duplicate names are detected + + LogEvent that triggered the duplicate name + Duplicate item name + Item Value + Dictionary of context values + New (unique) value (or null to skip value). If the same value is used then the item will be overwritten + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of dictionary for the + + + Dictionary with ScopeContext properties if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDC context if any, else null + + + + Returns the captured snapshot of nested states from for the + + + Collection of nested state objects if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Takes snapshot of dictionary for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with ScopeContext properties if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from dictionary + + Log event + ScopeContext Dictionary key + ScopeContext Dictionary value + Snapshot of ScopeContext property-value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of nested states from for the + + + Collection with stack items if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from nested states + + Log event + nested state value + Snapshot of stack item value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of properties-dictionary + + + Internal Layout that allows capture of nested-states-stack + + + + Represents target that supports string formatting using layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the layout used to format log messages. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the text to be rendered. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Force use independent of + + + + + + Forward to (Instead of ) + + + Trace.Fail can have special side-effects, and give fatal exceptions, message dialogs or Environment.FailFast + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + + See NLog Wiki + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the value of the User-agent HTTP header. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + Changing ProxyType on Net5 (or newer) will turn off Http-connection-pooling + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + + + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + Write from input to output. Fix the UTF-8 bom + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see https://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Occurs when LogEvent has been dropped, because internal queue is full and set to + + + + + Occurs when internal queue size is growing, because internal queue is full and set to + + + + + Raise event when queued element was dropped because of queue overflow + + Dropped queue item + + + + Raise event when RequestCount overflow + + current requests count + + + + Provides asynchronous, buffered execution of target writes. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queuing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. (1 or less means trigger on new activity) + + + + + + Occurs when LogEvent has been dropped, because internal queue is full and set to + + + + + Occurs when internal queue size is growing, because internal queue is full and set to + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of batches of to write before yielding into + + + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + + + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent satisfies the . + If condition isn't set, flushes on each write. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + If not explicitly set, then disabled by default for and AsyncTaskTarget + + + + + + Only flush when LogEvent matches condition. Ignore explicit-flush, config-reload-flush and shutdown-flush + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The action to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + + + + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Concurrent Asynchronous request queue based on + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + Only for debugging purposes + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides fallback-on-error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + Gets or sets whether to enable batching, but fallback will be handled individually + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Gets or sets the filter. Log events who evaluates to will be discarded + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Identifier to perform group-by + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + Group by identifier. + + + + + + + + + + Limits the number of messages written per timespan to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + LogEvent that have been dropped + + + + Instance of that was dropped by + + + + + Raises by when + queue is full + and set to + By default queue doubles it size. + + + + + Initializes a new instance of the class. + + Required queue size + Current queue size + + + + New queue size + + + + + Current requests count + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + + See NLog Wiki + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Evaluate all the rules to get the filtering condition + + + + + + + Sends log messages to a randomly selected target. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Gets or sets whether to enable batching, and only apply single delay when a whole batch fails + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + + + + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Builtin IFileCompressor implementation utilizing the .Net4.5 specific + and is used as the default value for on .Net4.5. + So log files created via can be zipped when archived + w/o 3rd party zip library when run on .Net4.5 or higher. + + + + + Implements using the .Net4.5 specific + + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + The Time type-alias for use in NLog configuration. + + + + Indicates that the value of the marked element could be null sometimes, + so checking for null is required before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element can never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + public void Foo([ItemNotNull]List<string> books) + { + foreach (var book in books) { + if (book != null) // Warning: Expression is always true + Console.WriteLine(book.ToUpper()); + } + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + public void Foo([ItemCanBeNull]List<string> books) + { + foreach (var book in books) + { + // Warning: Possible 'System.NullReferenceException' + Console.WriteLine(book.ToUpper()); + } + } + + + + + Indicates that the marked method builds string by the format pattern and (optional) arguments. + The parameter, which contains the format string, should be given in the constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as the format string + + + + + Indicates that the marked parameter is a message template where placeholders are to be replaced by the following arguments + in the order in which they appear + + + void LogInfo([StructuredMessageTemplate]string message, params object[] args) { /* do something */ } + + void Foo() { + LogInfo("User created: {username}"); // Warning: Non-existing argument in format string + } + + + + + Use this annotation to specify a type that contains static or const fields + with values for the annotated property/field/parameter. + The specified type will be used to improve completion suggestions. + + + namespace TestNamespace + { + public class Constants + { + public static int INT_CONST = 1; + public const string STRING_CONST = "1"; + } + + public class Class1 + { + [ValueProvider("TestNamespace.Constants")] public int myField; + public void Foo([ValueProvider("TestNamespace.Constants")] string str) { } + + public void Test() + { + Foo(/*try completion here*/);// + myField = /*try completion here*/ + } + } + } + + + + + Indicates that the integral value falls into the specified interval. + It's allowed to specify multiple non-intersecting intervals. + Values of interval boundaries are inclusive. + + + void Foo([ValueRange(0, 100)] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the integral value never falls below zero. + + + void Foo([NonNegativeValue] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the function argument should be a string literal and match + one of the parameters of the caller function. This annotation is used for parameters + like 'string paramName' parameter of the constructor. + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If the method has a single input parameter, its name could be omitted.
+ Using halt (or void/nothing, which is the same) for the method output + means that the method doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by the semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by the analysis engine.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("null <= param:null")] // reverse condition syntax + public string GetName(string surname) + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates whether the marked element should be localized. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will be ignored by usage-checking inspections.
+ You can use and + to configure how this attribute is applied. +
+ + [UsedImplicitly] + public class TypeConverter {} + + public class SummaryData + { + [UsedImplicitly(ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature)] + public SummaryData() {} + } + + [UsedImplicitly(ImplicitUseTargetFlags.WithInheritors | ImplicitUseTargetFlags.Default)] + public interface IService {} + +
+ + + Can be applied to attributes, type parameters, and parameters of a type assignable from . + When applied to an attribute, the decorated attribute behaves the same as . + When applied to a type parameter or to a parameter of type , + indicates that the corresponding type is used implicitly. + + + + + Specifies the details of implicitly used symbol when it is marked + with or . + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specifies what is considered to be used implicitly when marked + with or . + + + + Members of the type marked with the attribute are considered used. + + + Inherited entities are considered used. + + + Entity marked with the attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API, + which should not be removed and so is treated as used. + + + + + Tells the code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate can only be invoked during method execution + (the delegate can be invoked zero or multiple times, but not stored to some field and invoked later, + when the containing method is no longer on the execution stack). + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + If is true, the attribute will only takes effect if the method invocation is located under the 'await' expression. + + + + + Require the method invocation to be used under the 'await' expression for this attribute to take effect on code analysis engine. + Can be used for delegate/enumerable parameters of 'async' methods. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Warning: Return value of pure method is not used + } + + + + + Indicates that the return value of the method invocation must be used. + + + Methods decorated with this attribute (in contrast to pure methods) might change state, + but make no sense without using their return value.
+ Similarly to , this attribute + will help to detect usages of the method when the return value is not used. + Optionally, you can specify a message to use when showing warnings, e.g. + [MustUseReturnValue("Use the return value to...")]. +
+
+ + + This annotation allows to enforce allocation-less usage patterns of delegates for performance-critical APIs. + When this annotation is applied to the parameter of delegate type, IDE checks the input argument of this parameter: + * When lambda expression or anonymous method is passed as an argument, IDE verifies that the passed closure + has no captures of the containing local variables and the compiler is able to cache the delegate instance + to avoid heap allocations. Otherwise the warning is produced. + * IDE warns when method name or local function name is passed as an argument as this always results + in heap allocation of the delegate instance. + + + In C# 9.0 code IDE would also suggest to annotate the anonymous function with 'static' modifier + to make use of the similar analysis provided by the language/compiler. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value of that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by code completion + as a 'Source Template'. When the extension method is completed over some expression, its source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + Indicates how method, constructor invocation, or property access + over collection type affects the contents of the collection. + When applied to a return value of a method indicates if the returned collection + is created exclusively for the caller (CollectionAccessType.UpdatedContent) or + can be read/updated from outside (CollectionAccessType.Read | CollectionAccessType.UpdatedContent) + Use to specify the access type. + + + Using this attribute only makes sense if all collection methods are marked with this attribute. + + + public class MyStringCollection : List<string> + { + [CollectionAccess(CollectionAccessType.Read)] + public string GetFirstString() + { + return this.ElementAt(0); + } + } + class Test + { + public void Foo() + { + // Warning: Contents of the collection is never updated + var col = new MyStringCollection(); + string x = col.GetFirstString(); + } + } + + + + + Provides a value for the to define + how the collection method invocation affects the contents of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts the control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that the method is a pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable passed as a parameter is not enumerated. + Use this annotation to suppress the 'Possible multiple enumeration of IEnumerable' inspection. + + + static void ThrowIfNull<T>([NoEnumeration] T v, string n) where T : class + { + // custom check for null but no enumeration + } + + void Foo(IEnumerable<string> values) + { + ThrowIfNull(values, nameof(values)); + var x = values.ToList(); // No warnings about multiple enumeration + } + + + + + Indicates that the marked parameter, field, or property is a regular expression pattern. + + + + + Language of injected code fragment inside marked by string literal. + + + + + Indicates that the marked parameter, field, or property is accepting a string literal + containing code fragment in a language specified by the . + + + void Foo([LanguageInjection(InjectedLanguage.CSS, Prefix = "body{", Suffix = "}")] string cssProps) + { + // cssProps should only contains a list of CSS properties + } + + + + Specify a language of injected code fragment. + + + Specify a string that "precedes" injected string literal. + + + Specify a string that "follows" injected string literal. + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns. + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + +
+
diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Newtonsoft.Json.dll b/GenesisCordonelInterface/RuntimePackage/Package/Newtonsoft.Json.dll new file mode 100644 index 000000000..341d08fc8 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Newtonsoft.Json.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Newtonsoft.Json.xml b/GenesisCordonelInterface/RuntimePackage/Package/Newtonsoft.Json.xml new file mode 100644 index 000000000..2c981abf5 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Newtonsoft.Json.xml @@ -0,0 +1,11363 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from Unix epoch time + + + + + Gets or sets a value indicating whether the dates before Unix epoch + should converted to and from JSON. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 64. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 64. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + The default value is . + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 64. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + using values copied from the passed in . + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when cloning JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag that indicates whether to copy annotations when cloning a . + The default value is true. + + + A flag that indicates whether to copy annotations when cloning a . + + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A object to configure cloning settings. + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this converter. + + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets a value indicating whether has a value specified. + + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/NlogConfig.xml b/GenesisCordonelInterface/RuntimePackage/Package/NlogConfig.xml new file mode 100644 index 000000000..0210ced7a --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/NlogConfig.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GenesisCordonelInterface/RuntimePackage/Package/PdfSharp.dll b/GenesisCordonelInterface/RuntimePackage/Package/PdfSharp.dll new file mode 100644 index 000000000..4fcde52f1 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/PdfSharp.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/PdfSharp.xml b/GenesisCordonelInterface/RuntimePackage/Package/PdfSharp.xml new file mode 100644 index 000000000..8ac853e90 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/PdfSharp.xml @@ -0,0 +1,23546 @@ + + + + PdfSharp + + + + + Floating point formatting. + + + + + Factor to convert from degree to radian measure. + + + + + Sinus of the angle to turn a regular font to look oblique. Used for italic simulation. + + + + + Factor of the em size of a regular font to look bold. Used for bold simulation. + Value of 2% found in original XPS 1.0 documentation. + + + + + Static locking functions to make PDFsharp thread save. + + + + + A bunch of internal helper functions. + + + + + A bunch of internal helper functions. + + + + + Indirectly throws NotImplementedException. + Required because PDFsharp Release builds tread warnings as errors and + throwing NotImplementedException may lead to unreachable code which + crashes the build. + + + + + Helper class around the Debugger class. + + + + + Call Debugger.Break() if a debugger is attached. + + + + + Call Debugger.Break() if a debugger is attached or when always is set to true. + + + + + Internal stuff for development of PDFsharp. + + + + + Creates font and enforces bold/italic simulation. + + + + + Dumps the font caches to a string. + + + + + Some static helper functions for calculations. + + + + + Degree to radiant factor. + + + + + Get page size in point from specified PageSize. + + + + + Some floating point utilities. Partially reflected from WPF, later equalized with original source code. + + + + + Indicates whether the values are so close that they can be considered as equal. + + + + + Indicates whether the values are so close that they can be considered as equal. + + + + + Indicates whether the values are so close that they can be considered as equal. + + + + + Indicates whether the values are so close that they can be considered as equal. + + + + + Indicates whether the values are so close that they can be considered as equal. + + + + + Indicates whether the values are so close that they can be considered as equal. + + + + + Indicates whether value1 is greater than value2 and the values are not close to each other. + + + + + Indicates whether value1 is greater than value2 or the values are close to each other. + + + + + Indicates whether value1 is less than value2 and the values are not close to each other. + + + + + Indicates whether value1 is less than value2 or the values are close to each other. + + + + + Indicates whether the value is between 0 and 1 or close to 0 or 1. + + + + + Indicates whether the value is not a number. + + + + + Indicates whether at least one of the four rectangle values is not a number. + + + + + Indicates whether the value is 1 or close to 1. + + + + + Indicates whether the value is 0 or close to 0. + + + + + Converts a double to integer. + + + + + Required native Win32 calls. + + + + + Reflected from System.Drawing.SafeNativeMethods+LOGFONT + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Move to next token. + + + + + Move to next token. + + + + + Represents the base class of all bar codes. + + + + + Initializes a new instance of the class. + + + + + + + + Creates a bar code from the specified code type. + + + + + Creates a bar code from the specified code type. + + + + + Creates a bar code from the specified code type. + + + + + Creates a bar code from the specified code type. + + + + + When overridden in a derived class gets or sets the wide narrow ratio. + + + + + Gets or sets the location of the text next to the bar code. + + + + + Gets or sets the length of the data that defines the bar code. + + + + + Gets or sets the optional start character. + + + + + Gets or sets the optional end character. + + + + + Gets or sets a value indicating whether the turbo bit is to be drawn. + (A turbo bit is something special to Kern (computer output processing) company (as far as I know)) + + + + + When defined in a derived class renders the code. + + + + + Holds all temporary information needed during rendering. + + + + + String resources for the empira barcode renderer. + + + + + Implementation of the Code 2 of 5 bar code. + + + + + Initializes a new instance of Interleaved2of5. + + + + + Initializes a new instance of Interleaved2of5. + + + + + Initializes a new instance of Interleaved2of5. + + + + + Initializes a new instance of Interleaved2of5. + + + + + Returns an array of size 5 that represents the thick (true) and thin (false) lines or spaces + representing the specified digit. + + The digit to represent. + + + + Renders the bar code. + + + + + Calculates the thick and thin line widths, + taking into account the required rendering size. + + + + + Renders the next digit pair as bar code element. + + + + + Checks the code to be convertible into an interleaved 2 of 5 bar code. + + The code to be checked. + + + + Imlpementation of the Code 3 of 9 bar code. + + + + + Initializes a new instance of Standard3of9. + + + + + Initializes a new instance of Standard3of9. + + + + + Initializes a new instance of Standard3of9. + + + + + Initializes a new instance of Standard3of9. + + + + + Returns an array of size 9 that represents the thick (true) and thin (false) lines and spaces + representing the specified digit. + + The character to represent. + + + + Calculates the thick and thin line widths, + taking into account the required rendering size. + + + + + Checks the code to be convertible into an standard 3 of 9 bar code. + + The code to be checked. + + + + Renders the bar code. + + + + + Represents the base class of all codes. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the size. + + + + + Gets or sets the text the bar code shall represent. + + + + + Always MiddleCenter. + + + + + Gets or sets the drawing direction. + + + + + When implemented in a derived class, determines whether the specified string can be used as Text + for this bar code type. + + The code string to check. + True if the text can be used for the actual barcode. + + + + Calculates the distance between an old anchor point and a new anchor point. + + + + + + + + Defines the DataMatrix 2D barcode. THIS IS AN EMPIRA INTERNAL IMPLEMENTATION. THE CODE IN + THE OPEN SOURCE VERSION IS A FAKE. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Sets the encoding of the DataMatrix. + + + + + Gets or sets the size of the Matrix' Quiet Zone. + + + + + Renders the matrix code. + + + + + Determines whether the specified string can be used as data in the DataMatrix. + + The code to be checked. + + + + Represents an OMR code. + + + + + initializes a new OmrCode with the given data. + + + + + Renders the OMR code. + + + + + Gets or sets a value indicating whether a synchronize mark is rendered. + + + + + Gets or sets the distance of the markers. + + + + + Gets or sets the thickness of the makers. + + + + + Determines whether the specified string can be used as Text for the OMR code. + + + + + Creates the XImage object for a DataMatrix. + + + + + Possible ECC200 Matrices. + + + + + Creates the DataMatrix code. + + + + + Encodes the DataMatrix. + + + + + Encodes the barcode with the DataMatrix ECC200 Encoding. + + + + + Places the data in the right positions according to Annex M of the ECC200 specification. + + + + + Places the ECC200 bits in the right positions. + + + + + Calculate and append the Reed Solomon Code. + + + + + Initialize the Galois Field. + + + + + + Initializes the Reed-Solomon Encoder. + + + + + Encodes the Reed-Solomon encoding + + + + + Creates a DataMatrix image object. + + A hex string like "AB 08 C3...". + I.e. 26 for a 26x26 matrix + + + + Creates a DataMatrix image object. + + + + + Creates a DataMatrix image object. + + + + + Specifies whether and how the text is displayed at the code area. + + + + + The anchor is located top left. + + + + + The anchor is located top center. + + + + + The anchor is located top right. + + + + + The anchor is located middle left. + + + + + The anchor is located middle center. + + + + + The anchor is located middle right. + + + + + The anchor is located bottom left. + + + + + The anchor is located bottom center. + + + + + The anchor is located bottom right. + + + + + Specifies the drawing direction of the code. + + + + + Does not rotate the code. + + + + + Rotates the code 180° at the anchor position. + + + + + Rotates the code 180° at the anchor position. + + + + + Rotates the code 180° at the anchor position. + + + + + Specifies the type of the bar code. + + + + + The standard 2 of 5 interleaved bar code. + + + + + The standard 3 of 9 bar code. + + + + + The OMR code. + + + + + The data matrix code. + + + + + docDaSt + + + + + docDaSt + + + + + docDaSt + + + + + docDaSt + + + + + docDaSt + + + + + docDaSt + + + + + docDaSt + + + + + Specifies whether and how the text is displayed at the code. + + + + + No text is drawn. + + + + + The text is located above the code. + + + + + The text is located below the code. + + + + + The text is located above within the code. + + + + + The text is located below within the code. + + + + + Represents the base class of all 2D codes. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the encoding. docDaSt + + + + + docDaSt + + + + + docDaSt + + + + + docDaSt + + + + + When implemented in a derived class renders the 2D code. + + + + + Determines whether the specified string can be used as Text for this matrix code type. + + + + + Internal base class for several bar code types. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the ration between thick an thin lines. Must be between 2 and 3. + Optimal and also default value is 2.6. + + + + + Renders a thick or thin line for the bar code. + + + Determines whether a thick or a thin line is about to be rendered. + + + + Renders a thick or thin gap for the bar code. + + + Determines whether a thick or a thin gap is about to be rendered. + + + + Renders a thick bar before or behind the code. + + + + + Gets the width of a thick or a thin line (or gap). CalcLineWidth must have been called before. + + + Determines whether a thick line's with shall be returned. + + + + Specifies the alignment of a paragraph. + + + + + Default alignment, typically left alignment. + + + + + The paragraph is rendered left aligned. + + + + + The paragraph is rendered centered. + + + + + The paragraph is rendered right aligned. + + + + + The paragraph is rendered justified. + + + + + Represents a very simple text formatter. + If this class does not satisfy your needs on formatting paragraphs I recommend to take a look + at MigraDoc Foundation. Alternatively you should copy this class in your own source code and modify it. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the text. + + The text. + + + + Gets or sets the font. + + + + + Gets or sets the bounding box of the layout. + + + + + Gets or sets the alignment of the text. + + + + + Draws the text. + + The text to be drawn. + The font. + The text brush. + The layout rectangle. + + + + Draws the text. + + The text to be drawn. + The font. + The text brush. + The layout rectangle. + The format. Must be XStringFormat.TopLeft + + + + Align center, right, or justify. + + + + + Represents a single word. + + + + + Initializes a new instance of the class. + + The text of the block. + The type of the block. + The width of the text. + + + + Initializes a new instance of the class. + + The type. + + + + The text represented by this block. + + + + + The type of the block. + + + + + The width of the text. + + + + + The location relative to the upper left corner of the layout rectangle. + + + + + The alignment of this line. + + + + + A flag indicating that this is the last block that fits in the layout rectangle. + + + + + Indicates whether we are within a BT/ET block. + + + + + Graphic mode. This is default. + + + + + Text mode. + + + + + Represents the current PDF graphics state. + + + Completely revised for PDFsharp 1.4. + + + + + Indicates that the text transformation matrix currently skews 20° to the right. + + + + + The already realized part of the current transformation matrix. + + + + + The not yet realized part of the current transformation matrix. + + + + + Product of RealizedCtm and UnrealizedCtm. + + + + + Inverse of EffectiveCtm used for transformation. + + + + + Realizes the CTM. + + + + + Represents a drawing surface for PdfPages. + + + + + Gets the content created by this renderer. + + + + + Strokes a single connection of two points. + + + + + Strokes a series of connected points. + + + + + Clones the current graphics state and push it on a stack. + + + + + Sets the clip path empty. Only possible if graphic state level has the same value as it has when + the first time SetClip was invoked. + + + + + The nesting level of the PDF graphics state stack when the clip region was set to non empty. + Because of the way PDF is made the clip region can only be reset at this level. + + + + + Writes a comment to the PDF content stream. May be useful for debugging purposes. + + + + + Appends one or up to five Bézier curves that interpolate the arc. + + + + + Gets the quadrant (0 through 3) of the specified angle. If the angle lies on an edge + (0, 90, 180, etc.) the result depends on the details how the angle is used. + + + + + Appends a Bézier curve for an arc within a quadrant. + + + + + Appends a Bézier curve for a cardinal spline through pt1 and pt2. + + + + + Appends the content of a GraphicsPath object. + + + + + Initializes the default view transformation, i.e. the transformation from the user page + space to the PDF page space. + + + + + Ends the content stream, i.e. ends the text mode and balances the graphic state stack. + + + + + Begins the graphic mode (i.e. ends the text mode). + + + + + Begins the graphic mode (i.e. ends the text mode). + + + + + Makes the specified pen and brush to the current graphics objects. + + + + + Makes the specified pen to the current graphics object. + + + + + Makes the specified brush to the current graphics object. + + + + + Makes the specified font and brush to the current graphics objects. + + + + + PDFsharp uses the Td operator to set the text position. Td just sets the offset of the text matrix + and produces lesser code as Tm. + + The absolute text position. + The dy. + true if skewing for italic simulation is currently on. + + + + Makes the specified image to the current graphics object. + + + + + Realizes the current transformation matrix, if necessary. + + + + + Convert a point from Windows world space to PDF world space. + + + + + Gets the owning PdfDocument of this page or form. + + + + + Gets the PdfResources of this page or form. + + + + + Gets the size of this page or form. + + + + + Gets the resource name of the specified font within this page or form. + + + + + Gets the resource name of the specified image within this page or form. + + + + + Gets the resource name of the specified form within this page or form. + + + + + The q/Q nesting level is 0. + + + + + The q/Q nesting level is 1. + + + + + The q/Q nesting level is 2. + + + + + Saves the current graphical state. + + + + + Restores the previous graphical state. + + + + + The current graphical state. + + + + + The graphical state stack. + + + + + The height of the PDF page in point including the trim box. + + + + + The final transformation from the world space to the default page space. + + + + + Represents a graphics path that uses the same notation as GDI+. + + + + + Adds an arc that fills exactly one quadrant (quarter) of an ellipse. + Just a quick hack to draw rounded rectangles before AddArc is fully implemented. + + + + + Closes the current subpath. + + + + + Gets or sets the current fill mode (alternate or winding). + + + + + Gets the path points in GDI+ style. + + + + + Gets the path types in GDI+ style. + + + + + Defines the direction an elliptical arc is drawn. + + + + + Specifies that arcs are drawn in a counter clockwise (negative-angle) direction. + + + + + Specifies that arcs are drawn in a clockwise (positive-angle) direction. + + + + + Describes the simulation style of a font. + + + + + No font style simulation. + + + + + Bold style simulation. + + + + + Italic style simulation. + + + + + Bold and Italic style simulation. + + + + + Indicates how to handle the first point of a path. + + + + + Set the current position to the first point. + + + + + Draws a line to the first point. + + + + + Ignores the first point. + + + + + Currently not used. Only DeviceRGB is rendered in PDF. + + + + + Identifies the RGB color space. + + + + + Identifies the CMYK color space. + + + + + Identifies the gray scale color space. + + + + + Specifies how different clipping regions can be combined. + + + + + One clipping region is replaced by another. + + + + + Two clipping regions are combined by taking their intersection. + + + + + Not yet implemented in PDFsharp. + + + + + Not yet implemented in PDFsharp. + + + + + Not yet implemented in PDFsharp. + + + + + Not yet implemented in PDFsharp. + + + + + Specifies the style of dashed lines drawn with an XPen object. + + + + + Specifies a solid line. + + + + + Specifies a line consisting of dashes. + + + + + Specifies a line consisting of dots. + + + + + Specifies a line consisting of a repeating pattern of dash-dot. + + + + + Specifies a line consisting of a repeating pattern of dash-dot-dot. + + + + + Specifies a user-defined custom dash style. + + + + + Specifies how the interior of a closed path is filled. + + + + + Specifies the alternate fill mode. Called the 'odd-even rule' in PDF terminology. + + + + + Specifies the winding fill mode. Called the 'nonzero winding number rule' in PDF terminology. + + + + + Specifies style information applied to text. + + + + + Normal text. + + + + + Bold text. + + + + + Italic text. + + + + + Bold and italic text. + + + + + Underlined text. + + + + + Text with a line through the middle. + + + + + Backward compatibility. + + + + + Normal text. + + + + + Bold text. + + + + + Italic text. + + + + + Bold and italic text. + + + + + Underlined text. + + + + + Text with a line through the middle. + + + + + Determines whether rendering based on GDI+ or WPF. + For internal use in hybrid build only only. + + + + + Rendering does not depent on a particular technology. + + + + + Renders using GDI+. + + + + + Renders using WPF (including Silverlight). + + + + + Universal Windows Platform. + + + + + Type of the path data. + + + + + Specifies how the content of an existing PDF page and new content is combined. + + + + + The new content is inserted behind the old content and any subsequent drawing in done above the existing graphic. + + + + + The new content is inserted before the old content and any subsequent drawing in done beneath the existing graphic. + + + + + The new content entirely replaces the old content and any subsequent drawing in done on a blank page. + + + + + Specifies the unit of measure. + + + + + Specifies a printer's point (1/72 inch) as the unit of measure. + + + + + Specifies the inch (2.54 cm) as the unit of measure. + + + + + Specifies the millimeter as the unit of measure. + + + + + Specifies the centimeter as the unit of measure. + + + + + Specifies a presentation point (1/96 inch) as the unit of measure. + + + + + Specifies all pre-defined colors. Used to identify the pre-defined colors and to + localize their names. + + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + + Specifies the alignment of a text string relative to its layout rectangle + + + + + Specifies the text be aligned near the layout. + In a left-to-right layout, the near position is left. In a right-to-left layout, the near + position is right. + + + + + Specifies that text is aligned in the center of the layout rectangle. + + + + + Specifies that text is aligned far from the origin position of the layout rectangle. + In a left-to-right layout, the far position is right. In a right-to-left layout, the far + position is left. + + + + + Specifies that text is aligned relative to its base line. + With this option the layout rectangle must have a height of 0. + + + + + Specifies the direction of a linear gradient. + + + + + Specifies a gradient from left to right. + + + + + Specifies a gradient from top to bottom. + + + + + Specifies a gradient from upper left to lower right. + + + + + Specifies a gradient from upper right to lower left. + + + + + Specifies the available cap styles with which an XPen object can start and end a line. + + + + + Specifies a flat line cap. + + + + + Specifies a round line cap. + + + + + Specifies a square line cap. + + + + + Specifies how to join consecutive line or curve segments in a figure or subpath. + + + + + Specifies a mitered join. This produces a sharp corner or a clipped corner, + depending on whether the length of the miter exceeds the miter limit + + + + + Specifies a circular join. This produces a smooth, circular arc between the lines. + + + + + Specifies a beveled join. This produces a diagonal corner. + + + + + Specifies the order for matrix transform operations. + + + + + The new operation is applied before the old operation. + + + + + The new operation is applied after the old operation. + + + + + Specifies the direction of the y-axis. + + + + + Increasing Y values go downwards. This is the default. + + + + + Increasing Y values go upwards. This is only possible when drawing on a PDF page. + It is not implemented when drawing on a System.Drawing.Graphics object. + + + + + Specifies whether smoothing (or antialiasing) is applied to lines and curves + and the edges of filled areas. + + + + + Specifies an invalid mode. + + + + + Specifies the default mode. + + + + + Specifies high speed, low quality rendering. + + + + + Specifies high quality, low speed rendering. + + + + + Specifies no antialiasing. + + + + + Specifies antialiased rendering. + + + + + Specifies the alignment of a text string relative to its layout rectangle. + + + + + Specifies the text be aligned near the layout. + In a left-to-right layout, the near position is left. In a right-to-left layout, the near + position is right. + + + + + Specifies that text is aligned in the center of the layout rectangle. + + + + + Specifies that text is aligned far from the origin position of the layout rectangle. + In a left-to-right layout, the far position is right. In a right-to-left layout, the far + position is left. + + + + + Internal implementation class of XFontFamily. + + + + + Gets the family name this family was originally created with. + + + + + Gets the name that uniquely identifies this font family. + + + + + Gets the underlying GDI+ font family object. + Is null if the font was created by a font resolver. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + A bunch of functions that do not have a better place. + + + + + Measure string directly from font data. + + + + + Calculates an Adler32 checksum combined with the buffer length + in a 64 bit unsigned integer. + + + + + Helper class for Geometry paths. + + + + + Creates between 1 and 5 Béziers curves from parameters specified like in GDI+. + + + + + Calculates the quadrant (0 through 3) of the specified angle. If the angle lies on an edge + (0, 90, 180, etc.) the result depends on the details how the angle is used. + + + + + Appends a Bézier curve for an arc within a full quadrant. + + + + + Creates between 1 and 5 Béziers curves from parameters specified like in WPF. + + + + + Represents a stack of XGraphicsState and XGraphicsContainer objects. + + + + + Helper class for processing image files. + + + + + Represents the internal state of an XGraphics object. + Used when the state is saved and restored. + + + + + Gets or sets the current transformation matrix. + + + + + Called after this instanced was pushed on the internal graphics stack. + + + + + Called after this instanced was popped from the internal graphics stack. + + + + + This interface will be implemented by specialized classes, one for JPEG, one for BMP, one for PNG, one for GIF. Maybe more. + + + + + Imports the image. Returns null if the image importer does not support the format. + + + + + Prepares the image data needed for the PDF file. + + + + + Helper for dealing with Stream data. + + + + + Resets this instance. + + + + + Gets the original stream. + + + + + Gets the data as byte[]. + + + + + Gets the length of Data. + + + + + The imported image. + + + + + Initializes a new instance of the class. + + + + + Gets information about the image. + + + + + Gets a value indicating whether image data for the PDF file was already prepared. + + + + + Gets the image data needed for the PDF file. + + + + + Public information about the image, filled immediately. + Note: The stream will be read and decoded on the first call to PrepareImageData(). + ImageInformation can be filled for corrupted images that will throw an expection on PrepareImageData(). + + + + + Standard JPEG format (RGB). + + + + + Grayscale JPEG format. + + + + + JPEG file with inverted CMYK, thus RGBW. + + + + + JPEG file with CMYK. + + + + + The horizontal DPI (dots per inch). Can be 0 if not supported by the image format. + Note: JFIF (JPEG) files may contain either DPI or DPM or just the aspect ratio. Windows BMP files will contain DPM. Other formats may support any combination, including none at all. + + + + + The vertical DPI (dots per inch). Can be 0 if not supported by the image format. + + + + + The horizontal DPM (dots per meter). Can be 0 if not supported by the image format. + + + + + The vertical DPM (dots per meter). Can be 0 if not supported by the image format. + + + + + The horizontal component of the aspect ratio. Can be 0 if not supported by the image format. + Note: Aspect ratio will be set if either DPI or DPM was set, but may also be available in the absence of both DPI and DPM. + + + + + The vertical component of the aspect ratio. Can be 0 if not supported by the image format. + + + + + The colors used. Only valid for images with palettes, will be 0 otherwise. + + + + + Contains internal data. This includes a reference to the Stream if data for PDF was not yet prepared. + + + + + Gets the image. + + + + + Contains data needed for PDF. Will be prepared when needed. + + + + + Bitmap refers to the format used in PDF. Will be used for BMP, PNG, TIFF, GIF and others. + + + + + Initializes a new instance of the class. + + + + + Contains data needed for PDF. Will be prepared when needed. + Bitmap refers to the format used in PDF. Will be used for BMP, PNG, TIFF, GIF and others. + + + + + Gets the data. + + + + + Gets the length. + + + + + Gets the data. + + + + + Gets the length. + + + + + Image data needed for PDF bitmap images. + + + + + Initializes a new instance of the class. + + + + + Gets the data. + + + + + Gets the length. + + + + + True if first line is the top line, false if first line is the bottom line of the image. When needed, lines will be reversed while converting data into PDF format. + + + + + The offset of the image data in Data. + + + + + The offset of the color palette in Data. + + + + + Copies images without color palette. + + 4 (32bpp RGB), 3 (24bpp RGB, 32bpp ARGB) + 8 + true (ARGB), false (RGB) + Destination + + + + Imported JPEG image. + + + + + Initializes a new instance of the class. + + + + + Contains data needed for PDF. Will be prepared when needed. + + + + + Gets the data. + + + + + Gets the length. + + + + + Private data for JPEG images. + + + + + Initializes a new instance of the class. + + + + + Gets the data. + + + + + Gets the length. + + + + + The class that imports images of various formats. + + + + + Gets the image importer. + + + + + Imports the image. + + + + + Imports the image. + + + + + Represents an abstract drawing surface for PdfPages. + + + + + Draws a straight line. + + + + + Draws a series of straight lines. + + + + + Draws a Bézier spline. + + + + + Draws a series of Bézier splines. + + + + + Draws a cardinal spline. + + + + + Draws an arc. + + + + + Draws a rectangle. + + + + + Draws a series of rectangles. + + + + + Draws a rectangle with rounded corners. + + + + + Draws an ellipse. + + + + + Draws a polygon. + + + + + Draws a pie. + + + + + Draws a cardinal spline. + + + + + Draws a graphical path. + + + + + Draws a series of glyphs identified by the specified text and font. + + + + + Draws an image. + + + + + Saves the current graphics state without changing it. + + + + + Restores the specified graphics state. + + + + + + + + + + + + + + + Gets or sets the transformation matrix. + + + + + Writes a comment to the output stream. Comments have no effect on the rendering of the output. + + + + + Specifies details about how the font is used in PDF creation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets a value indicating the font embedding. + + + + + Gets a value indicating how the font is encoded. + + + + + Gets the default options with WinAnsi encoding and always font embedding. + + + + + Gets the default options with Unicode encoding and always font embedding. + + + + + Provides functionality to load a bitmap image encoded in a specific format. + + + + + Gets a new instance of the PNG image decoder. + + + + + Provides functionality to save a bitmap image in a specific format. + + + + + Gets a new instance of the PNG image encoder. + + + + + Gets or sets the bitmap source to be encoded. + + + + + When overridden in a derived class saves the image on the specified stream + in the respective format. + + + + + Saves the image on the specified stream in PNG format. + + + + + Defines a pixel based bitmap image. + + + + + Initializes a new instance of the class. + + + + + Creates a default 24 bit ARGB bitmap with the specified pixel size. + + + + + Classes derived from this abstract base class define objects used to fill the + interiors of paths. + + + + + Brushes for all the pre-defined colors. + + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + + Represents a RGB, CMYK, or gray scale color. + + + + + Creates an XColor structure from a 32-bit ARGB value. + + + + + Creates an XColor structure from a 32-bit ARGB value. + + + + + Creates an XColor structure from the specified 8-bit color values (red, green, and blue). + The alpha value is implicitly 255 (fully opaque). + + + + + Creates an XColor structure from the four ARGB component (alpha, red, green, and blue) values. + + + + + Creates an XColor structure from the specified alpha value and color. + + + + + Creates an XColor structure from the specified CMYK values. + + + + + Creates an XColor structure from the specified CMYK values. + + + + + Creates an XColor structure from the specified gray value. + + + + + Creates an XColor from the specified pre-defined color. + + + + + Creates an XColor from the specified name of a pre-defined color. + + + + + Gets or sets the color space to be used for PDF generation. + + + + + Indicates whether this XColor structure is uninitialized. + + + + + Determines whether the specified object is a Color structure and is equivalent to this + Color structure. + + + + + Returns the hash code for this instance. + + + + + Determines whether two colors are equal. + + + + + Determines whether two colors are not equal. + + + + + Gets a value indicating whether this color is a known color. + + + + + Gets the hue-saturation-brightness (HSB) hue value, in degrees, for this color. + + The hue, in degrees, of this color. The hue is measured in degrees, ranging from 0 through 360, in HSB color space. + + + + Gets the hue-saturation-brightness (HSB) saturation value for this color. + + The saturation of this color. The saturation ranges from 0 through 1, where 0 is grayscale and 1 is the most saturated. + + + + Gets the hue-saturation-brightness (HSB) brightness value for this color. + + The brightness of this color. The brightness ranges from 0 through 1, where 0 represents black and 1 represents white. + + + + One of the RGB values changed; recalculate other color representations. + + + + + One of the CMYK values changed; recalculate other color representations. + + + + + The gray scale value changed; recalculate other color representations. + + + + + Gets or sets the alpha value the specifies the transparency. + The value is in the range from 1 (opaque) to 0 (completely transparent). + + + + + Gets or sets the red value. + + + + + Gets or sets the green value. + + + + + Gets or sets the blue value. + + + + + Gets the RGB part value of the color. Internal helper function. + + + + + Gets the ARGB part value of the color. Internal helper function. + + + + + Gets or sets the cyan value. + + + + + Gets or sets the magenta value. + + + + + Gets or sets the yellow value. + + + + + Gets or sets the black (or key) value. + + + + + Gets or sets the gray scale value. + + + + + Represents the null color. + + + + + Special property for XmlSerializer only. + + + + + Manages the localization of the color class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The culture info. + + + + Gets a known color from an ARGB value. Throws an ArgumentException if the value is not a known color. + + + + + Gets all known colors. + + Indicates whether to include the color Transparent. + + + + Converts a known color to a localized color name. + + + + + Converts a color to a localized color name or an ARGB value. + + + + + Represents a set of 141 pre-defined RGB colors. Incidentally the values are the same + as in System.Drawing.Color. + + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + + Converts XGraphics enums to GDI+ enums. + + + + + Defines an object used to draw text. + + + + + Initializes a new instance of the class. + + Name of the font family. + The em size. + + + + Initializes a new instance of the class. + + Name of the font family. + The em size. + The font style. + + + + Initializes a new instance of the class. + + Name of the font family. + The em size. + The font style. + Additional PDF options. + + + + Initializes a new instance of the class with enforced style simulation. + Only for testing PDFsharp. + + + + + Initializes a new instance of the class from a System.Drawing.FontFamily. + + The System.Drawing.FontFamily. + The em size. + The font style. + + + + Initializes a new instance of the class from a System.Drawing.FontFamily. + + The System.Drawing.FontFamily. + The em size. + The font style. + Additional PDF options. + + + + Initializes a new instance of the class from a System.Drawing.Font. + + The System.Drawing.Font. + + + + Initializes a new instance of the class from a System.Drawing.Font. + + The System.Drawing.Font. + Additional PDF options. + + + + Initializes this instance by computing the glyph typeface, font family, font source and TrueType fontface. + (PDFsharp currently only deals with TrueType fonts.) + + + + + A GDI+ font object is used to setup the internal font objects. + + + + + Code separated from Metric getter to make code easier to debug. + (Setup properties in their getters caused side effects during debugging because Visual Studio calls a getter + to early to show its value in a debugger window.) + + + + + Gets the XFontFamily object associated with this XFont object. + + + + + WRONG: Gets the face name of this Font object. + Indeed it returns the font family name. + + + + + Gets the em-size of this font measured in the unit of this font object. + + + + + Gets style information for this Font object. + + + + + Indicates whether this XFont object is bold. + + + + + Indicates whether this XFont object is italic. + + + + + Indicates whether this XFont object is stroke out. + + + + + Indicates whether this XFont object is underlined. + + + + + Temporary HACK for XPS to PDF converter. + + + + + Gets the PDF options of the font. + + + + + Indicates whether this XFont is encoded as Unicode. + + + + + Gets the cell space for the font. The CellSpace is the line spacing, the sum of CellAscent and CellDescent and optionally some extra space. + + + + + Gets the cell ascent, the area above the base line that is used by the font. + + + + + Gets the cell descent, the area below the base line that is used by the font. + + + + + Gets the font metrics. + + The metrics. + + + + Returns the line spacing, in pixels, of this font. The line spacing is the vertical distance + between the base lines of two consecutive lines of text. Thus, the line spacing includes the + blank space between lines along with the height of the character itself. + + + + + Returns the line spacing, in the current unit of a specified Graphics object, of this font. + The line spacing is the vertical distance between the base lines of two consecutive lines of + text. Thus, the line spacing includes the blank space between lines along with the height of + + + + + Gets the line spacing of this font. + + + + + Override style simulations by using the value of StyleSimulations. + + + + + Used to enforce style simulations by renderer. For development purposes only. + + + + + Gets the GDI family. + + The GDI family. + + + + Implicit conversion form Font to XFont + + + + + Cache PdfFontTable.FontSelector to speed up finding the right PdfFont + if this font is used more than once. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Global cache of all internal font family objects. + + + + + Caches the font family or returns a previously cached one. + + + + + Gets the singleton. + + + + + Maps family name to internal font family. + + + + + Defines a group of typefaces having a similar basic design and certain variations in styles. + + + + + Initializes a new instance of the class. + + The family name of a font. + + + + Initializes a new instance of the class from FontFamilyInternal. + + + + + An XGlyphTypeface for a font source that comes from a custom font resolver + creates a solitary font family exclusively for it. + + + + + Gets the name of the font family. + + + + + Returns the cell ascent, in design units, of the XFontFamily object of the specified style. + + + + + Returns the cell descent, in design units, of the XFontFamily object of the specified style. + + + + + Gets the height, in font design units, of the em square for the specified style. + + + + + Returns the line spacing, in design units, of the FontFamily object of the specified style. + The line spacing is the vertical distance between the base lines of two consecutive lines of text. + + + + + Indicates whether the specified FontStyle enumeration is available. + + + + + Returns an array that contains all the FontFamily objects associated with the current graphics context. + + + + + Returns an array that contains all the FontFamily objects available for the specified + graphics context. + + + + + The implementation sigleton of font family; + + + + + Collects information of a font. + + + + + Gets the font name. + + + + + Gets the ascent value. + + + + + Gets the ascent value. + + + + + Gets the descent value. + + + + + Gets the average width. + + + + + Gets the height of capital letters. + + + + + Gets the leading value. + + + + + Gets the line spacing value. + + + + + Gets the maximum width of a character. + + + + + Gets an internal value. + + + + + Gets an internal value. + + + + + Gets the height of a lower-case character. + + + + + Gets the underline position. + + + + + Gets the underline thicksness. + + + + + Gets the strikethrough position. + + + + + Gets the strikethrough thicksness. + + + + + Represents a graphical object that can be used to render retained graphics on it. + In GDI+ it is represented by a Metafile, in WPF by a DrawingVisual, and in PDF by a Form XObjects. + + + + + The form is an imported PDF page. + + + + + The template is just created. + + + + + XGraphics.FromForm() was called. + + + + + The form was drawn at least once and is 'frozen' now. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class that represents a page of a PDF document. + + The PDF document. + The view box of the page. + + + + Initializes a new instance of the class that represents a page of a PDF document. + + The PDF document. + The size of the page. + + + + Initializes a new instance of the class that represents a page of a PDF document. + + The PDF document. + The width of the page. + The height of the page + + + + This function should be called when drawing the content of this form is finished. + The XGraphics object used for drawing the content is disposed by this function and + cannot be used for any further drawing operations. + PDFsharp automatically calls this function when this form was used the first time + in a DrawImage function. + + + + + Called from XGraphics constructor that creates an instance that work on this form. + + + + + Disposes this instance. + + + + + Sets the form in the state FormState.Finished. + + + + + Gets the owning document. + + + + + Gets the color model used in the underlying PDF document. + + + + + Gets a value indicating whether this instance is a template. + + + + + Get the width of the page identified by the property PageNumber. + + + + + Get the width of the page identified by the property PageNumber. + + + + + Get the width in point of this image. + + + + + Get the height in point of this image. + + + + + Get the width of the page identified by the property PageNumber. + + + + + Get the height of the page identified by the property PageNumber. + + + + + Get the size of the page identified by the property PageNumber. + + + + + Gets the view box of the form. + + + + + Gets 72, the horizontal resolution by design of a form object. + + + + + Gets 72 always, the vertical resolution by design of a form object. + + + + + Gets or sets the bounding box. + + + + + Gets or sets the transformation matrix. + + + + + Implements the interface because the primary function is internal. + + + + + Gets the resource name of the specified font within this form. + + + + + Tries to get the resource name of the specified font data within this form. + Returns null if no such font exists. + + + + + Gets the resource name of the specified font data within this form. + + + + + Gets the resource name of the specified image within this form. + + + + + Implements the interface because the primary function is internal. + + + + + Gets the resource name of the specified form within this form. + + + + + Implements the interface because the primary function is internal. + + + + + The PdfFormXObject gets invalid when PageNumber or transform changed. This is because a modification + of an XPdfForm must not change objects that are already been drawn. + + + + + The bytes of a font file. + + + + + Gets an existing font source or creates a new one. + A new font source is cached in font factory. + + + + + Gets or sets the fontface. + + + + + Gets the key that uniquely identifies this font source. + + + + + Gets the name of the font's name table. + + + + + Gets the bytes of the font. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Specifies a physical font face that corresponds to a font file on the disk or in memory. + + + + + Gets the name of the font face. This can be a file name, an uri, or a GUID. + + + + + Gets the English family name of the font, for example "Arial". + + + + + Gets the English subfamily name of the font, + for example "Bold". + + + + + Gets the English display name of the font, + for example "Arial italic". + + + + + Gets a value indicating whether the font weight is bold. + + + + + Gets a value indicating whether the font style is italic. + + + + + Gets the suffix of the face name in a PDF font and font descriptor. + The name based on the effective value of bold and italic from the OS/2 table. + + + + + Computes the bijective key for a typeface. + + + + + Computes the bijective key for a typeface. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Holds information about the current state of the XGraphics object. + + + + + Represents a drawing surface for a fixed size page. + + + + + Initializes a new instance of the XGraphics class for drawing on a PDF page. + + + + + Initializes a new instance of the XGraphics class used for drawing on a form. + + + + + Creates the measure context. This is a graphics context created only for querying measures of text. + Drawing on a measure context has no effect. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Drawing.XPdfForm object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Drawing.XForm object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Drawing.XForm object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Drawing.XImage object. + + + + + Internal setup. + + + + + Releases all resources used by this object. + + + + + Internal hack for MigraDoc. Will be removed in further releases. + Unicode support requires a global refactoring of MigraDoc and will be done in further releases. + + + + + A value indicating whether GDI+ or WPF is used as context. + + + + + Gets or sets the unit of measure used for page coordinates. + CURRENTLY ONLY POINT IS IMPLEMENTED. + + + + + Gets or sets the a value indicating in which direction y-value grow. + + + + + Gets the current page origin. Setting the origin is not yet implemented. + + + + + Gets the current size of the page. + + + + + Draws a line connecting two XPoint structures. + + + + + Draws a line connecting the two points specified by coordinate pairs. + + + + + Draws a series of line segments that connect an array of points. + + + + + Draws a series of line segments that connect an array of x and y pairs. + + + + + Draws a Bézier spline defined by four points. + + + + + Draws a Bézier spline defined by four points. + + + + + Draws a series of Bézier splines from an array of points. + + + + + Draws a cardinal spline through a specified array of points. + + + + + Draws a cardinal spline through a specified array of point using a specified tension. + The drawing begins offset from the beginning of the array. + + + + + Draws a cardinal spline through a specified array of points using a specified tension. + + + + + Draws an arc representing a portion of an ellipse. + + + + + Draws an arc representing a portion of an ellipse. + + + + + Draws a rectangle. + + + + + Draws a rectangle. + + + + + Draws a rectangle. + + + + + Draws a rectangle. + + + + + Draws a rectangle. + + + + + Draws a rectangle. + + + + + Draws a series of rectangles. + + + + + Draws a series of rectangles. + + + + + Draws a series of rectangles. + + + + + Draws a rectangles with round corners. + + + + + Draws a rectangles with round corners. + + + + + Draws a rectangles with round corners. + + + + + Draws a rectangles with round corners. + + + + + Draws a rectangles with round corners. + + + + + Draws a rectangles with round corners. + + + + + Draws an ellipse defined by a bounding rectangle. + + + + + Draws an ellipse defined by a bounding rectangle. + + + + + Draws an ellipse defined by a bounding rectangle. + + + + + Draws an ellipse defined by a bounding rectangle. + + + + + Draws an ellipse defined by a bounding rectangle. + + + + + Draws an ellipse defined by a bounding rectangle. + + + + + Draws a polygon defined by an array of points. + + + + + Draws a polygon defined by an array of points. + + + + + Draws a polygon defined by an array of points. + + + + + Draws a pie defined by an ellipse. + + + + + Draws a pie defined by an ellipse. + + + + + Draws a pie defined by an ellipse. + + + + + Draws a pie defined by an ellipse. + + + + + Draws a pie defined by an ellipse. + + + + + Draws a pie defined by an ellipse. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a graphical path. + + + + + Draws a graphical path. + + + + + Draws a graphical path. + + + + + Draws the specified text string. + + + + + Draws the specified text string. + + + + + Draws the specified text string. + + + + + Draws the specified text string. + + + + + Draws the specified text string. + + + + + Draws the specified text string. + + + + + Measures the specified string when drawn with the specified font. + + + + + Measures the specified string when drawn with the specified font. + + + + + Draws the specified image. + + + + + Draws the specified image. + + + + + Draws the specified image. + + + + + Draws the specified image. + + + + + Draws the specified image. + + + + + Checks whether drawing is allowed and disposes the XGraphics object, if necessary. + + + + + Draws the specified bar code. + + + + + Draws the specified bar code. + + + + + Draws the specified bar code. + + + + + Draws the specified data matrix code. + + + + + Draws the specified data matrix code. + + + + + Saves the current state of this XGraphics object and identifies the saved state with the + returned XGraphicsState object. + + + + + Restores the state of this XGraphics object to the state represented by the specified + XGraphicsState object. + + + + + Restores the state of this XGraphics object to the state before the most recently call of Save. + + + + + Saves a graphics container with the current state of this XGraphics and + opens and uses a new graphics container. + + + + + Saves a graphics container with the current state of this XGraphics and + opens and uses a new graphics container. + + + + + Closes the current graphics container and restores the state of this XGraphics + to the state saved by a call to the BeginContainer method. + + + + + Gets the current graphics state level. The default value is 0. Each call of Save or BeginContainer + increased and each call of Restore or EndContainer decreased the value by 1. + + + + + Gets or sets the smoothing mode. + + The smoothing mode. + + + + Applies the specified translation operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified translation operation to the transformation matrix of this object + in the specified order. + + + + + Applies the specified scaling operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified scaling operation to the transformation matrix of this object + in the specified order. + + + + + Applies the specified scaling operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified scaling operation to the transformation matrix of this object + in the specified order. + + + + + Applies the specified scaling operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified scaling operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified rotation operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified rotation operation to the transformation matrix of this object + in the specified order. The angle unit of measure is degree. + + + + + Applies the specified rotation operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified rotation operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified shearing operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + ShearTransform is a synonym for SkewAtTransform. + Parameter shearX specifies the horizontal skew which is measured in degrees counterclockwise from the y-axis. + Parameter shearY specifies the vertical skew which is measured in degrees counterclockwise from the x-axis. + + + + + Applies the specified shearing operation to the transformation matrix of this object + in the specified order. + ShearTransform is a synonym for SkewAtTransform. + Parameter shearX specifies the horizontal skew which is measured in degrees counterclockwise from the y-axis. + Parameter shearY specifies the vertical skew which is measured in degrees counterclockwise from the x-axis. + + + + + Applies the specified shearing operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + ShearTransform is a synonym for SkewAtTransform. + Parameter shearX specifies the horizontal skew which is measured in degrees counterclockwise from the y-axis. + Parameter shearY specifies the vertical skew which is measured in degrees counterclockwise from the x-axis. + + + + + Applies the specified shearing operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + ShearTransform is a synonym for SkewAtTransform. + Parameter shearX specifies the horizontal skew which is measured in degrees counterclockwise from the y-axis. + Parameter shearY specifies the vertical skew which is measured in degrees counterclockwise from the x-axis. + + + + + Multiplies the transformation matrix of this object and specified matrix. + + + + + Multiplies the transformation matrix of this object and specified matrix in the specified order. + + + + + Gets the current transformation matrix. + The transformation matrix cannot be set. Instead use Save/Restore or BeginContainer/EndContainer to + save the state before Transform is called and later restore to the previous transform. + + + + + Applies a new transformation to the current transformation matrix. + + + + + Updates the clip region of this XGraphics to the intersection of the + current clip region and the specified rectangle. + + + + + Updates the clip region of this XGraphics to the intersection of the + current clip region and the specified graphical path. + + + + + Writes a comment to the output stream. Comments have no effect on the rendering of the output. + They may be useful to mark a position in a content stream of a PDF document. + + + + + Permits access to internal data. + + + + + (Under construction. May change in future versions.) + + + + + The transformation matrix from the XGraphics page space to the Graphics world space. + (The name 'default view matrix' comes from Microsoft OS/2 Presentation Manager. I choose + this name because I have no better one.) + + + + + Indicates whether to send drawing operations to _gfx or _dc. + + + + + Interface to an (optional) renderer. Currently it is the XGraphicsPdfRenderer, if defined. + + + + + The transformation matrix from XGraphics world space to page unit space. + + + + + The graphics state stack. + + + + + Gets the PDF page that serves as drawing surface if PDF is rendered, + or null, if no such object exists. + + + + + Provides access to internal data structures of the XGraphics class. + + + + + (This class is under construction.) + Currently used in MigraDoc + + + + + Gets the smallest rectangle in default page space units that completely encloses the specified rect + in world space units. + + + + + Represents the internal state of an XGraphics object. + + + + + Represents a series of connected lines and curves. + + + + + Initializes a new instance of the class. + + + + + Clones this instance. + + + + + Adds a line segment to current figure. + + + + + Adds a line segment to current figure. + + + + + Adds a series of connected line segments to current figure. + + + + + Adds a cubic Bézier curve to the current figure. + + + + + Adds a cubic Bézier curve to the current figure. + + + + + Adds a sequence of connected cubic Bézier curves to the current figure. + + + + + Adds a spline curve to the current figure. + + + + + Adds a spline curve to the current figure. + + + + + Adds a spline curve to the current figure. + + + + + Adds an elliptical arc to the current figure. + + + + + Adds an elliptical arc to the current figure. + + + + + Adds an elliptical arc to the current figure. The arc is specified WPF like. + + + + + Adds a rectangle to this path. + + + + + Adds a rectangle to this path. + + + + + Adds a series of rectangles to this path. + + + + + Adds a rectangle with rounded corners to this path. + + + + + Adds an ellipse to the current path. + + + + + Adds an ellipse to the current path. + + + + + Adds a polygon to this path. + + + + + Adds the outline of a pie shape to this path. + + + + + Adds the outline of a pie shape to this path. + + + + + Adds a closed curve to this path. + + + + + Adds a closed curve to this path. + + + + + Adds the specified path to this path. + + + + + Adds a text string to this path. + + + + + Adds a text string to this path. + + + + + Closes the current figure and starts a new figure. + + + + + Starts a new figure without closing the current figure. + + + + + Gets or sets an XFillMode that determines how the interiors of shapes are filled. + + + + + Converts each curve in this XGraphicsPath into a sequence of connected line segments. + + + + + Converts each curve in this XGraphicsPath into a sequence of connected line segments. + + + + + Converts each curve in this XGraphicsPath into a sequence of connected line segments. + + + + + Replaces this path with curves that enclose the area that is filled when this path is drawn + by the specified pen. + + + + + Replaces this path with curves that enclose the area that is filled when this path is drawn + by the specified pen. + + + + + Replaces this path with curves that enclose the area that is filled when this path is drawn + by the specified pen. + + + + + Grants access to internal objects of this class. + + + + + Gets access to underlying Core graphics path. + + + + + Provides access to the internal data structures of XGraphicsPath. + This class prevents the public interface from pollution with internal functions. + + + + + Represents the internal state of an XGraphics object. + This class is used as a handle for restoring the context. + + + + + Defines an abstract base class for pixel based images. + + + + + Gets the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Defines an object used to draw image files (bmp, png, jpeg, gif) and PDF forms. + An abstract base class that provides functionality for the Bitmap and Metafile descended classes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from an image read by ImageImporter. + + The image. + image + + + + Creates an image from the specified file. + + The path to a BMP, PNG, GIF, JPEG, TIFF, or PDF file. + + + + Creates an image from the specified stream.
+ Silverlight supports PNG and JPEG only. +
+ The stream containing a BMP, PNG, GIF, JPEG, TIFF, or PDF file. +
+ + + Tests if a file exist. Supports PDF files with page number suffix. + + The path to a BMP, PNG, GIF, JPEG, TIFF, or PDF file. + + + + Under construction + + + + + Disposes underlying GDI+ object. + + + + + Gets the width of the image. + + + + + Gets the height of the image. + + + + + The factor for conversion from DPM to PointWidth or PointHeight. + 72 points per inch, 1000 mm per meter, 25.4 mm per inch => 72 * 1000 / 25.4. + + + + + The factor for conversion from DPM to PointWidth or PointHeight. + 1000 mm per meter, 25.4 mm per inch => 1000 / 25.4. + + + + + Gets the width of the image in point. + + + + + Gets the height of the image in point. + + + + + Gets the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Gets the size in point of the image. + + + + + Gets the horizontal resolution of the image. + + + + + Gets the vertical resolution of the image. + + + + + Gets or sets a flag indicating whether image interpolation is to be performed. + + + + + Gets the format of the image. + + + + + If path starts with '*' the image is created from a stream and the path is a GUID. + + + + + Contains a reference to the original stream if image was created from a stream. + + + + + Cache PdfImageTable.ImageSelector to speed up finding the right PdfImage + if this image is used more than once. + + + + + Specifies the format of the image. + + + + + Determines whether the specified object is equal to the current object. + + + + + Returns the hash code for this instance. + + + + + Gets the Portable Network Graphics (PNG) image format. + + + + + Gets the Graphics Interchange Format (GIF) image format. + + + + + Gets the Joint Photographic Experts Group (JPEG) image format. + + + + + Gets the Tag Image File Format (TIFF) image format. + + + + + Gets the Portable Document Format (PDF) image format + + + + + Gets the Windows icon image format. + + + + + Defines a Brush with a linear gradient. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets an XMatrix that defines a local geometric transform for this LinearGradientBrush. + + + + + Translates the brush with the specified offset. + + + + + Translates the brush with the specified offset. + + + + + Scales the brush with the specified scalars. + + + + + Scales the brush with the specified scalars. + + + + + Rotates the brush with the specified angle. + + + + + Rotates the brush with the specified angle. + + + + + Multiply the brush transformation matrix with the specified matrix. + + + + + Multiply the brush transformation matrix with the specified matrix. + + + + + Resets the brush transformation matrix with identity matrix. + + + + + Represents a 3-by-3 matrix that represents an affine 2D transformation. + + + + + Initializes a new instance of the XMatrix struct. + + + + + Gets the identity matrix. + + + + + Sets this matrix into an identity matrix. + + + + + Gets a value indicating whether this matrix instance is the identity matrix. + + + + + Gets an array of double values that represents the elements of this matrix. + + + + + Multiplies two matrices. + + + + + Multiplies two matrices. + + + + + Appends the specified matrix to this matrix. + + + + + Prepends the specified matrix to this matrix. + + + + + Appends the specified matrix to this matrix. + + + + + Prepends the specified matrix to this matrix. + + + + + Multiplies this matrix with the specified matrix. + + + + + Appends a translation of the specified offsets to this matrix. + + + + + Appends a translation of the specified offsets to this matrix. + + + + + Prepends a translation of the specified offsets to this matrix. + + + + + Translates the matrix with the specified offsets. + + + + + Appends the specified scale vector to this matrix. + + + + + Appends the specified scale vector to this matrix. + + + + + Prepends the specified scale vector to this matrix. + + + + + Scales the matrix with the specified scalars. + + + + + Scales the matrix with the specified scalar. + + + + + Appends the specified scale vector to this matrix. + + + + + Prepends the specified scale vector to this matrix. + + + + + Scales the matrix with the specified scalar. + + + + + Function is obsolete. + + + + + Apppends the specified scale about the specified point of this matrix. + + + + + Prepends the specified scale about the specified point of this matrix. + + + + + Function is obsolete. + + + + + Appends a rotation of the specified angle to this matrix. + + + + + Prepends a rotation of the specified angle to this matrix. + + + + + Rotates the matrix with the specified angle. + + + + + Function is obsolete. + + + + + Appends a rotation of the specified angle at the specified point to this matrix. + + + + + Prepends a rotation of the specified angle at the specified point to this matrix. + + + + + Rotates the matrix with the specified angle at the specified point. + + + + + Appends a rotation of the specified angle at the specified point to this matrix. + + + + + Prepends a rotation of the specified angle at the specified point to this matrix. + + + + + Rotates the matrix with the specified angle at the specified point. + + + + + Function is obsolete. + + + + + Appends a skew of the specified degrees in the x and y dimensions to this matrix. + + + + + Prepends a skew of the specified degrees in the x and y dimensions to this matrix. + + + + + Shears the matrix with the specified scalars. + + + + + Function is obsolete. + + + + + Appends a skew of the specified degrees in the x and y dimensions to this matrix. + + + + + Prepends a skew of the specified degrees in the x and y dimensions to this matrix. + + + + + Transforms the specified point by this matrix and returns the result. + + + + + Transforms the specified points by this matrix. + + + + + Multiplies all points of the specified array with the this matrix. + + + + + Transforms the specified vector by this Matrix and returns the result. + + + + + Transforms the specified vectors by this matrix. + + + + + Gets the determinant of this matrix. + + + + + Gets a value that indicates whether this matrix is invertible. + + + + + Inverts the matrix. + + + + + Gets or sets the value of the first row and first column of this matrix. + + + + + Gets or sets the value of the first row and second column of this matrix. + + + + + Gets or sets the value of the second row and first column of this matrix. + + + + + Gets or sets the value of the second row and second column of this matrix. + + + + + Gets or sets the value of the third row and first column of this matrix. + + + + + Gets or sets the value of the third row and second column of this matrix. + + + + + Determines whether the two matrices are equal. + + + + + Determines whether the two matrices are not equal. + + + + + Determines whether the two matrices are equal. + + + + + Determines whether this matrix is equal to the specified object. + + + + + Determines whether this matrix is equal to the specified matrix. + + + + + Returns the hash code for this instance. + + + + + Parses a matrix from a string. + + + + + Converts this XMatrix to a human readable string. + + + + + Converts this XMatrix to a human readable string. + + + + + Converts this XMatrix to a human readable string. + + + + + Sets the matrix. + + + + + Internal matrix helper. + + + + + Gets the DebuggerDisplayAttribute text. + + The debugger display. + + + + Represents a so called 'PDF form external object', which is typically an imported page of an external + PDF document. XPdfForm objects are used like images to draw an existing PDF page of an external + document in the current document. XPdfForm objects can only be placed in PDF documents. If you try + to draw them using a XGraphics based on an GDI+ context no action is taken if no placeholder image + is specified. Otherwise the place holder is drawn. + + + + + Initializes a new instance of the XPdfForm class from the specified path to an external PDF document. + Although PDFsharp internally caches XPdfForm objects it is recommended to reuse XPdfForm objects + in your code and change the PageNumber property if more than one page is needed form the external + document. Furthermore, because XPdfForm can occupy very much memory, it is recommended to + dispose XPdfForm objects if not needed anymore. + + + + + Initializes a new instance of the class from a stream. + + The stream. + + + + Creates an XPdfForm from a file. + + + + + Creates an XPdfForm from a stream. + + + + + Sets the form in the state FormState.Finished. + + + + + Frees the memory occupied by the underlying imported PDF document, even if other XPdfForm objects + refer to this document. A reuse of this object doesn't fail, because the underlying PDF document + is re-imported if necessary. + + + + + Gets or sets an image that is used for drawing if the current XGraphics object cannot handle + PDF forms. A place holder is useful for showing a preview of a page on the display, because + PDFsharp cannot render native PDF objects. + + + + + Gets the underlying PdfPage (if one exists). + + + + + Gets the number of pages in the PDF form. + + + + + Gets the width in point of the page identified by the property PageNumber. + + + + + Gets the height in point of the page identified by the property PageNumber. + + + + + Gets the width in point of the page identified by the property PageNumber. + + + + + Gets the height in point of the page identified by the property PageNumber. + + + + + Gets the width in point of the page identified by the property PageNumber. + + + + + Gets the height in point of the page identified by the property PageNumber. + + + + + Get the size of the page identified by the property PageNumber. + + + + + Gets or sets the transformation matrix. + + + + + Gets or sets the page number in the external PDF document this object refers to. The page number + is one-based, i.e. it is in the range from 1 to PageCount. The default value is 1. + + + + + Gets or sets the page index in the external PDF document this object refers to. The page index + is zero-based, i.e. it is in the range from 0 to PageCount - 1. The default value is 0. + + + + + Gets the underlying document from which pages are imported. + + + + + Extracts the page number if the path has the form 'MyFile.pdf#123' and returns + the actual path without the number sign and the following digits. + + + + + Defines an object used to draw lines and curves. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Clones this instance. + + + + + Gets or sets the color. + + + + + Gets or sets the width. + + + + + Gets or sets the line join. + + + + + Gets or sets the line cap. + + + + + Gets or sets the miter limit. + + + + + Gets or sets the dash style. + + + + + Gets or sets the dash offset. + + + + + Gets or sets the dash pattern. + + + + + Gets or sets a value indicating whether the pen enables overprint when used in a PDF document. + Experimental, takes effect only on CMYK color mode. + + + + + Pens for all the pre-defined colors. + + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + + Represents a pair of floating point x- and y-coordinates that defines a point + in a two-dimensional plane. + + + + + Initializes a new instance of the XPoint class with the specified coordinates. + + + + + Determines whether two points are equal. + + + + + Determines whether two points are not equal. + + + + + Indicates whether the specified points are equal. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Indicates whether this instance and a specified point are equal. + + + + + Returns the hash code for this instance. + + + + + Parses the point from a string. + + + + + Parses an array of points from a string. + + + + + Gets the x-coordinate of this XPoint. + + + + + Gets the x-coordinate of this XPoint. + + + + + Converts this XPoint to a human readable string. + + + + + Converts this XPoint to a human readable string. + + + + + Converts this XPoint to a human readable string. + + + + + Implements ToString. + + + + + Offsets the x and y value of this point. + + + + + Adds a point and a vector. + + + + + Adds a point and a size. + + + + + Adds a point and a vector. + + + + + Subtracts a vector from a point. + + + + + Subtracts a vector from a point. + + + + + Subtracts a point from a point. + + + + + Subtracts a size from a point. + + + + + Subtracts a point from a point. + + + + + Multiplies a point with a matrix. + + + + + Multiplies a point with a matrix. + + + + + Multiplies a point with a scalar value. + + + + + Multiplies a point with a scalar value. + + + + + Performs an explicit conversion from XPoint to XSize. + + + + + Performs an explicit conversion from XPoint to XVector. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Makes fonts that are not installed on the system available within the current application domain.
+ In Silverlight required for all fonts used in PDF documents. +
+
+ + + Initializes a new instance of the class. + + + + + Gets the global font collection. + + + + + Adds the specified font data to the global PrivateFontCollection. + Family name and style are automatically retrieved from the font. + + + + + Adds the specified font data to the global PrivateFontCollection. + Family name and style are automatically retrieved from the font. + + + + + Stores a set of four floating-point numbers that represent the location and size of a rectangle. + + + + + Initializes a new instance of the XRect class. + + + + + Initializes a new instance of the XRect class. + + + + + Initializes a new instance of the XRect class. + + + + + Initializes a new instance of the XRect class. + + + + + Initializes a new instance of the XRect class. + + + + + Creates a rectangle from for straight lines. + + + + + Determines whether the two rectangles are equal. + + + + + Determines whether the two rectangles are not equal. + + + + + Determines whether the two rectangles are equal. + + + + + Determines whether this instance and the specified object are equal. + + + + + Determines whether this instance and the specified rect are equal. + + + + + Returns the hash code for this instance. + + + + + Parses the rectangle from a string. + + + + + Converts this XRect to a human readable string. + + + + + Converts this XRect to a human readable string. + + + + + Converts this XRect to a human readable string. + + + + + Gets the empty rectangle. + + + + + Gets a value indicating whether this instance is empty. + + + + + Gets or sets the location of the rectangle. + + + + + Gets or sets the size of the rectangle. + + + + + Gets or sets the X value of the rectangle. + + + + + Gets or sets the Y value of the rectangle. + + + + + Gets or sets the width of the rectangle. + + + + + Gets or sets the height of the rectangle. + + + + + Gets the x-axis value of the left side of the rectangle. + + + + + Gets the y-axis value of the top side of the rectangle. + + + + + Gets the x-axis value of the right side of the rectangle. + + + + + Gets the y-axis value of the bottom side of the rectangle. + + + + + Gets the position of the top-left corner of the rectangle. + + + + + Gets the position of the top-right corner of the rectangle. + + + + + Gets the position of the bottom-left corner of the rectangle. + + + + + Gets the position of the bottom-right corner of the rectangle. + + + + + Gets the center of the rectangle. + + + + + Indicates whether the rectangle contains the specified point. + + + + + Indicates whether the rectangle contains the specified point. + + + + + Indicates whether the rectangle contains the specified rectangle. + + + + + Indicates whether the specified rectangle intersects with the current rectangle. + + + + + Sets current rectangle to the intersection of the current rectangle and the specified rectangle. + + + + + Returns the intersection of two rectangles. + + + + + Sets current rectangle to the union of the current rectangle and the specified rectangle. + + + + + Returns the union of two rectangles. + + + + + Sets current rectangle to the union of the current rectangle and the specified point. + + + + + Returns the intersection of a rectangle and a point. + + + + + Moves a rectangle by the specified amount. + + + + + Moves a rectangle by the specified amount. + + + + + Returns a rectangle that is offset from the specified rectangle by using the specified vector. + + + + + Returns a rectangle that is offset from the specified rectangle by using specified horizontal and vertical amounts. + + + + + Translates the rectangle by adding the specified point. + + + + + Translates the rectangle by subtracting the specified point. + + + + + Expands the rectangle by using the specified Size, in all directions. + + + + + Expands or shrinks the rectangle by using the specified width and height amounts, in all directions. + + + + + Returns the rectangle that results from expanding the specified rectangle by the specified Size, in all directions. + + + + + Creates a rectangle that results from expanding or shrinking the specified rectangle by the specified width and height amounts, in all directions. + + + + + Returns the rectangle that results from applying the specified matrix to the specified rectangle. + + + + + Transforms the rectangle by applying the specified matrix. + + + + + Multiplies the size of the current rectangle by the specified x and y values. + + + + + Gets the DebuggerDisplayAttribute text. + + The debugger display. + + + + Represents a pair of floating-point numbers, typically the width and height of a + graphical object. + + + + + Initializes a new instance of the XPoint class with the specified values. + + + + + Determines whether two size objects are equal. + + + + + Determines whether two size objects are not equal. + + + + + Indicates whether this two instance are equal. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Indicates whether this instance and a specified size are equal. + + + + + Returns the hash code for this instance. + + + + + Parses the size from a string. + + + + + Converts this XSize to an XPoint. + + + + + Converts this XSize to an XVector. + + + + + Converts this XSize to a human readable string. + + + + + Converts this XSize to a human readable string. + + + + + Converts this XSize to a human readable string. + + + + + Returns an empty size, i.e. a size with a width or height less than 0. + + + + + Gets a value indicating whether this instance is empty. + + + + + Gets or sets the width. + + + + + Gets or sets the height. + + + + + Performs an explicit conversion from XSize to XVector. + + + + + Performs an explicit conversion from XSize to XPoint. + + + + + Gets the DebuggerDisplayAttribute text. + + The debugger display. + + + + Defines a single color object used to fill shapes and draw text. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the color of this brush. + + + + + Gets or sets a value indicating whether the brush enables overprint when used in a PDF document. + Experimental, takes effect only on CMYK color mode. + + + + + Represents the text layout information. + + + + + Initializes a new instance of the class. + + + + + Gets or sets horizontal text alignment information. + + + + + Gets or sets the line alignment. + + + + + Gets a new XStringFormat object that aligns the text left on the base line. + + + + + Gets a new XStringFormat object that aligns the text top left of the layout rectangle. + + + + + Gets a new XStringFormat object that centers the text in the middle of the layout rectangle. + + + + + Gets a new XStringFormat object that centers the text at the top of the layout rectangle. + + + + + Gets a new XStringFormat object that centers the text at the bottom of the layout rectangle. + + + + + Represents predefined text layouts. + + + + + Gets a new XStringFormat object that aligns the text left on the base line. + This is the same as BaseLineLeft. + + + + + Gets a new XStringFormat object that aligns the text left on the base line. + This is the same as Default. + + + + + Gets a new XStringFormat object that aligns the text top left of the layout rectangle. + + + + + Gets a new XStringFormat object that aligns the text center left of the layout rectangle. + + + + + Gets a new XStringFormat object that aligns the text bottom left of the layout rectangle. + + + + + Gets a new XStringFormat object that centers the text in the middle of the base line. + + + + + Gets a new XStringFormat object that centers the text at the top of the layout rectangle. + + + + + Gets a new XStringFormat object that centers the text in the middle of the layout rectangle. + + + + + Gets a new XStringFormat object that centers the text at the bottom of the layout rectangle. + + + + + Gets a new XStringFormat object that aligns the text in right on the base line. + + + + + Gets a new XStringFormat object that aligns the text top right of the layout rectangle. + + + + + Gets a new XStringFormat object that aligns the text center right of the layout rectangle. + + + + + Gets a new XStringFormat object that aligns the text at the bottom right of the layout rectangle. + + + + + Represents a value and its unit of measure. The structure converts implicitly from and to + double with a value measured in point. + + + + + Initializes a new instance of the XUnit class with type set to point. + + + + + Initializes a new instance of the XUnit class. + + + + + Gets the raw value of the object without any conversion. + To determine the XGraphicsUnit use property Type. + To get the value in point use the implicit conversion to double. + + + + + Gets the unit of measure. + + + + + Gets or sets the value in point. + + + + + Gets or sets the value in inch. + + + + + Gets or sets the value in millimeter. + + + + + Gets or sets the value in centimeter. + + + + + Gets or sets the value in presentation units (1/96 inch). + + + + + Returns the object as string using the format information. + The unit of measure is appended to the end of the string. + + + + + Returns the object as string using the specified format and format information. + The unit of measure is appended to the end of the string. + + + + + Returns the object as string. The unit of measure is appended to the end of the string. + + + + + Returns the unit of measure of the object as a string like 'pt', 'cm', or 'in'. + + + + + Returns an XUnit object. Sets type to point. + + + + + Returns an XUnit object. Sets type to inch. + + + + + Returns an XUnit object. Sets type to millimeters. + + + + + Returns an XUnit object. Sets type to centimeters. + + + + + Returns an XUnit object. Sets type to Presentation. + + + + + Converts a string to an XUnit object. + If the string contains a suffix like 'cm' or 'in' the object will be converted + to the appropriate type, otherwise point is assumed. + + + + + Converts an int to an XUnit object with type set to point. + + + + + Converts a double to an XUnit object with type set to point. + + + + + Returns a double value as point. + + + + + Memberwise comparison. To compare by value, + use code like Math.Abs(a.Pt - b.Pt) < 1e-5. + + + + + Memberwise comparison. To compare by value, + use code like Math.Abs(a.Pt - b.Pt) < 1e-5. + + + + + Calls base class Equals. + + + + + Returns the hash code for this instance. + + + + + This member is intended to be used by XmlDomainObjectReader only. + + + + + Converts an existing object from one unit into another unit type. + + + + + Represents a unit with all values zero. + + + + + Gets the DebuggerDisplayAttribute text. + + The debugger display. + + + + Represents a two-dimensional vector specified by x- and y-coordinates. + + + + + Gets the DebuggerDisplayAttribute text. + + The debugger display. + + + + Identifies the technology of an OpenType font file. + + + + + Font is Adobe Postscript font in CFF. + + + + + Font is a TrueType font. + + + + + Font is a TrueType font collection. + + + + + TrueType font table names. + + + + + Character to glyph mapping. + + + + + Font header . + + + + + Horizontal header. + + + + + Horizontal Metrics. + + + + + Maximum profile. + + + + + Naming table. + + + + + OS/2 and Windows specific Metrics. + + + + + PostScript information. + + + + + Control Value Table. + + + + + Font program. + + + + + Glyph data. + + + + + Index to location. + + + + + CVT Program. + + + + + PostScript font program (compact font format). + + + + + Vertical Origin. + + + + + Embedded bitmap data. + + + + + Embedded bitmap location data. + + + + + Embedded bitmap scaling data. + + + + + Baseline data. + + + + + Glyph definition data. + + + + + Glyph positioning data. + + + + + Glyph substitution data. + + + + + Justification data. + + + + + Digital signature. + + + + + Grid-fitting/Scan-conversion. + + + + + Horizontal device Metrics. + + + + + Kerning. + + + + + Linear threshold data. + + + + + PCL 5 data. + + + + + Vertical device Metrics. + + + + + Vertical Header. + + + + + Vertical Metrics. + + + + + Base class for all font descriptors. + Currently only OpenTypeDescriptor is derived from this base class. + + + + + + + + + + + + + + + Gets a value indicating whether this instance belongs to a bold font. + + + + + + + + + + Gets a value indicating whether this instance belongs to an italic font. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This table contains information that describes the glyphs in the font in the TrueType outline format. + Information regarding the rasterizer (scaler) refers to the TrueType rasterizer. + http://www.microsoft.com/typography/otspec/glyf.htm + + + + + Converts the bytes in a handy representation + + + + + Gets the data of the specified glyph. + + + + + Gets the size of the byte array that defines the glyph. + + + + + Gets the offset of the specified glyph relative to the first byte of the font image. + + + + + Adds for all composite glyphs the glyphs the composite one is made of. + + + + + If the specified glyph is a composite glyph add the glyphs it is made of to the glyph table. + + + + + Prepares the font table to be compiled into its binary representation. + + + + + Converts the font into its binary representation. + + + + + Global table of all OpenType fontfaces cached by their face name and check sum. + + + + + Tries to get fontface by its key. + + + + + Tries to get fontface by its check sum. + + + + + Gets the singleton. + + + + + Maps face name to OpenType fontface. + + + + + Maps font source key to OpenType fontface. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Global table of all glyph typefaces. + + + + + Gets the singleton. + + + + + Maps typeface key to glyph typeface. + + + + + The indexToLoc table stores the offsets to the locations of the glyphs in the font, + relative to the beginning of the glyphData table. In order to compute the length of + the last glyph element, there is an extra entry after the last valid index. + + + + + Converts the bytes in a handy representation + + + + + Prepares the font table to be compiled into its binary representation. + + + + + Converts the font into its binary representation. + + + + + Represents an indirect reference to an existing font table in a font image. + Used to create binary copies of an existing font table that is not modified. + + + + + Prepares the font table to be compiled into its binary representation. + + + + + Converts the font into its binary representation. + + + + + The OpenType font descriptor. + Currently the only font type PDFsharp supports. + + + + + New... + + + + + Gets a value indicating whether this instance belongs to a bold font. + + + + + Gets a value indicating whether this instance belongs to an italic font. + + + + + Maps a unicode to the index of the corresponding glyph. + See OpenType spec "cmap - Character To Glyph Index Mapping Table / Format 4: Segment mapping to delta values" + for details about this a little bit strange looking algorithm. + + + + + Converts the width of a glyph identified by its index to PDF design units. + + + + + //Converts the width of a glyph identified by its index to PDF design units. + + + + + //Converts the width of a glyph identified by its index to PDF design units. + + + + + Represents an OpenType fontface in memory. + + + + + Shallow copy for font subset. + + + + + Initializes a new instance of the class. + + + + + Gets the full face name from the name table. + Name is also used as the key. + + + + + Gets the bytes that represents the font data. + + + + + The dictionary of all font tables. + + + + + Adds the specified table to this font image. + + + + + Reads all required tables from the font data. + + + + + Creates a new font image that is a subset of this font image containing only the specified glyphs. + + + + + Compiles the font to its binary representation. + + + + + Reads a System.Byte. + + + + + Reads a System.Int16. + + + + + Reads a System.UInt16. + + + + + Reads a System.Int32. + + + + + Reads a System.UInt32. + + + + + Reads a System.Int32. + + + + + Reads a System.Int16. + + + + + Reads a System.UInt16. + + + + + Reads a System.Int64. + + + + + Reads a System.String with the specified size. + + + + + Reads a System.Byte[] with the specified size. + + + + + Reads the specified buffer. + + + + + Reads the specified buffer. + + + + + Reads a System.Char[4] as System.String. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Represents the font offset table. + + + + + 0x00010000 for Version 1.0. + + + + + Number of tables. + + + + + (Maximum power of 2 ≤ numTables) x 16. + + + + + Log2(maximum power of 2 ≤ numTables). + + + + + NumTables x 16-searchRange. + + + + + Writes the offset table. + + + + + Base class for all OpenType tables used in PDFsharp. + + + + + Creates a deep copy of the current instance. + + + + + Gets the font image the table belongs to. + + + + + When overridden in a derived class, prepares the font table to be compiled into its binary representation. + + + + + When overridden in a derived class, converts the font into its binary representation. + + + + + Calculates the checksum of a table represented by its bytes. + + + + + Only Symbol and Unicode is used by PDFsharp. + + + + + CMap format 4: Segment mapping to delta values. + The Windows standard format. + + + + + This table defines the mapping of character codes to the glyph index values used in the font. + It may contain more than one subtable, in order to support more than one character encoding scheme. + + + + + Is true for symbol font encoding. + + + + + Initializes a new instance of the class. + + + + + This table gives global information about the font. The bounding box values should be computed using + only glyphs that have contours. Glyphs with no contours should be ignored for the purposes of these calculations. + + + + + This table contains information for horizontal layout. The values in the minRightSidebearing, + MinLeftSideBearing and xMaxExtent should be computed using only glyphs that have contours. + Glyphs with no contours should be ignored for the purposes of these calculations. + All reserved areas must be set to 0. + + + + + The type longHorMetric is defined as an array where each element has two parts: + the advance width, which is of type USHORT, and the left side bearing, which is of type SHORT. + These fields are in font design units. + + + + + The vertical Metrics table allows you to specify the vertical spacing for each glyph in a + vertical font. This table consists of either one or two arrays that contain metric + information (the advance heights and top sidebearings) for the vertical layout of each + of the glyphs in the font. + + + + + This table establishes the memory requirements for this font. + Fonts with CFF data must use Version 0.5 of this table, specifying only the numGlyphs field. + Fonts with TrueType outlines must use Version 1.0 of this table, where all data is required. + Both formats of OpenType require a 'maxp' table because a number of applications call the + Windows GetFontData() API on the 'maxp' table to determine the number of glyphs in the font. + + + + + The naming table allows multilingual strings to be associated with the OpenTypeTM font file. + These strings can represent copyright notices, font names, family names, style names, and so on. + To keep this table short, the font manufacturer may wish to make a limited set of entries in some + small set of languages; later, the font can be "localized" and the strings translated or added. + Other parts of the OpenType font file that require these strings can then refer to them simply by + their index number. Clients that need a particular string can look it up by its platform ID, character + encoding ID, language ID and name ID. Note that some platforms may require single byte character + strings, while others may require double byte strings. + + For historical reasons, some applications which install fonts perform Version control using Macintosh + platform (platform ID 1) strings from the 'name' table. Because of this, we strongly recommend that + the 'name' table of all fonts include Macintosh platform strings and that the syntax of the Version + number (name id 5) follows the guidelines given in this document. + + + + + Get the font family name. + + + + + Get the font subfamily name. + + + + + Get the full font name. + + + + + The OS/2 table consists of a set of Metrics that are required in OpenType fonts. + + + + + This table contains additional information needed to use TrueType or OpenTypeTM fonts + on PostScript printers. + + + + + This table contains a list of values that can be referenced by instructions. + They can be used, among other things, to control characteristics for different glyphs. + The length of the table must be an integral number of FWORD units. + + + + + This table is similar to the CVT Program, except that it is only run once, when the font is first used. + It is used only for FDEFs and IDEFs. Thus the CVT Program need not contain function definitions. + However, the CVT Program may redefine existing FDEFs or IDEFs. + + + + + The Control Value Program consists of a set of TrueType instructions that will be executed whenever the font or + point size or transformation matrix change and before each glyph is interpreted. Any instruction is legal in the + CVT Program but since no glyph is associated with it, instructions intended to move points within a particular + glyph outline cannot be used in the CVT Program. The name 'prep' is anachronistic. + + + + + This table contains information that describes the glyphs in the font in the TrueType outline format. + Information regarding the rasterizer (scaler) refers to the TrueType rasterizer. + + + + + Represents a writer for True Type font files. + + + + + Initializes a new instance of the class. + + + + + Writes a table name. + + + + + Represents an entry in the fonts table dictionary. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + 4 -byte identifier. + + + + + CheckSum for this table. + + + + + Offset from beginning of TrueType font file. + + + + + Actual length of this table in bytes. + + + + + Gets the length rounded up to a multiple of four bytes. + + + + + Associated font table. + + + + + Creates and reads a TableDirectoryEntry from the font image. + + + + + Helper class that determines the characters used in a particular font. + + + + + Adds the characters of the specified string to the hashtable. + + + + + Adds the glyphIndices to the hashtable. + + + + + Adds a ANSI characters. + + + + + Parameters that affect font selection. + + + + + Represents a font resolver info created by the platform font resolver. + + + + + Default platform specific font resolving. + + + + + Resolves the typeface by generating a font resolver info. + + Name of the font family. + Indicates whether a bold font is requested. + Indicates whether an italic font is requested. + + + + Internal implementation. + + + + + Create a GDI+ font and use its handle to retrieve font data using native calls. + + + + + Describes the physical font that must be used to render a particular XFont. + + + + + Initializes a new instance of the struct. + + The name that uniquely identifies the fontface. + + + + Initializes a new instance of the struct. + + The name that uniquely identifies the fontface. + Set to true to simulate bold when rendered. Not implemented and must be false. + Set to true to simulate italic when rendered. + Index of the font in a true type font collection. + Not yet implemented and must be zero. + + + + + Initializes a new instance of the struct. + + The name that uniquely identifies the fontface. + Set to true to simulate bold when rendered. Not implemented and must be false. + Set to true to simulate italic when rendered. + + + + Initializes a new instance of the struct. + + The name that uniquely identifies the fontface. + The style simulation flags. + + + + Gets the key for this object. + + + + + A name that uniquely identifies the font (not the family), e.g. the file name of the font. PDFsharp does not use this + name internally, but passes it to the GetFont function of the IFontResolver interface to retrieve the font data. + + + + + Indicates whether bold must be simulated. Bold simulation is not implemented in PDFsharp. + + + + + Indicates whether italic must be simulated. + + + + + Gets the style simulation flags. + + + + + The number of the font in a Truetype font collection file. The number of the first font is 0. + NOT YET IMPLEMENTED. Must be zero. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Provides functionality that converts a requested typeface into a physical font. + + + + + Converts specified information about a required typeface into a specific font. + + Name of the font family. + Set to true when a bold fontface is required. + Set to true when an italic fontface is required. + Information about the physical font, or null if the request cannot be satisfied. + + + + Gets the bytes of a physical font with specified face name. + + A face name previously retrieved by ResolveTypeface. + + + + Provides functionality to specify information about the handling of fonts in the current application domain. + + + + + The name of the default font. + + + + + Gets or sets the global font resolver for the current application domain. + This static function must be called only once and before any font operation was executed by PDFsharp. + If this is not easily to obtain, e.g. because your code is running on a web server, you must provide the + same instance of your font resolver in every subsequent setting of this property. + In a web application set the font resolver in Global.asax. + + + + + Gets or sets the default font encoding used for XFont objects where encoding is not explicitly specified. + If it is not set, the default value is PdfFontEncoding.Unicode. + If you are sure your document contains only Windows-1252 characters (see https://en.wikipedia.org/wiki/Windows-1252) + set default encoding to PdfFontEncodingj.Windows1252. + Must be set only once per app domain. + + + + + Global table of OpenType font descriptor objects. + + + + + Gets the FontDescriptor identified by the specified XFont. If no such object + exists, a new FontDescriptor is created and added to the cache. + + + + + Gets the FontDescriptor identified by the specified FontSelector. If no such object + exists, a new FontDescriptor is created and added to the stock. + + + + + Gets the singleton. + + + + + Maps font font descriptor key to font descriptor. + + + + + Provides functionality to map a fontface request to a physical font. + + + + + Converts specified information about a required typeface into a specific font. + + Name of the font family. + The font resolving options. + Typeface key if already known by caller, null otherwise. + + Information about the typeface, or null if no typeface can be found. + + + + + Gets the bytes of a physical font with specified face name. + + + + + Gets the bytes of a physical font with specified face name. + + + + + Gets a value indicating whether at least one font source was created. + + + + + Caches a font source under its face name and its key. + + + + + Caches a font source under its face name and its key. + + + + + Maps font typeface key to font resolver info. + + + + + Maps typeface key or font name to font source. + + + + + Maps font source key to font source. + + + + + Represents a writer for generation of font file streams. + + + + + Initializes a new instance of the class. + Data is written in Motorola format (big-endian). + + + + + Closes the writer and, if specified, the underlying stream. + + + + + Closes the writer and the underlying stream. + + + + + Gets or sets the position within the stream. + + + + + Writes the specified value to the font stream. + + + + + Writes the specified value to the font stream. + + + + + Writes the specified value to the font stream using big-endian. + + + + + Writes the specified value to the font stream using big-endian. + + + + + Writes the specified value to the font stream using big-endian. + + + + + Writes the specified value to the font stream using big-endian. + + + + + Writes the specified value to the font stream using big-endian. + + + + + Writes the specified value to the font stream using big-endian. + + + + + Gets the underlying stream. + + + + + Specifies the flags of AcroForm fields. + + + + + If set, the user may not change the value of the field. Any associated widget + annotations will not interact with the user; that is, they will not respond to + mouse clicks or change their appearance in response to mouse motions. This + flag is useful for fields whose values are computed or imported from a database. + + + + + If set, the field must have a value at the time it is exported by a submit-form action. + + + + + If set, the field must not be exported by a submit-form action. + + + + + If set, the field is a pushbutton that does not retain a permanent value. + + + + + If set, the field is a set of radio buttons; if clear, the field is a checkbox. + This flag is meaningful only if the Pushbutton flag is clear. + + + + + (Radio buttons only) If set, exactly one radio button must be selected at all times; + clicking the currently selected button has no effect. If clear, clicking + the selected button deselects it, leaving no button selected. + + + + + If set, the field may contain multiple lines of text; if clear, the field’s text + is restricted to a single line. + + + + + If set, the field is intended for entering a secure password that should + not be echoed visibly to the screen. Characters typed from the keyboard + should instead be echoed in some unreadable form, such as + asterisks or bullet characters. + To protect password confidentiality, viewer applications should never + store the value of the text field in the PDF file if this flag is set. + + + + + (PDF 1.4) If set, the text entered in the field represents the pathname of + a file whose contents are to be submitted as the value of the field. + + + + + (PDF 1.4) If set, the text entered in the field will not be spell-checked. + + + + + (PDF 1.4) If set, the field will not scroll (horizontally for single-line + fields, vertically for multiple-line fields) to accommodate more text + than will fit within its annotation rectangle. Once the field is full, no + further text will be accepted. + + + + + If set, the field is a combo box; if clear, the field is a list box. + + + + + If set, the combo box includes an editable text box as well as a drop list; + if clear, it includes only a drop list. This flag is meaningful only if the + Combo flag is set. + + + + + If set, the field’s option items should be sorted alphabetically. This flag is + intended for use by form authoring tools, not by PDF viewer applications; + viewers should simply display the options in the order in which they occur + in the Opt array. + + + + + (PDF 1.4) If set, more than one of the field’s option items may be selected + simultaneously; if clear, no more than one item at a time may be selected. + + + + + (PDF 1.4) If set, the text entered in the field will not be spell-checked. + This flag is meaningful only if the Combo and Edit flags are both set. + + + + + Represents the base class for all interactive field dictionaries. + + + + + Initializes a new instance of PdfAcroField. + + + + + Initializes a new instance of the class. Used for type transformation. + + + + + Gets the name of this field. + + + + + Gets the field flags of this instance. + + + + + Gets or sets the value of the field. + + + + + Gets or sets a value indicating whether the field is read only. + + + + + Gets the field with the specified name. + + + + + Gets a child field by name. + + + + + Indicates whether the field has child fields. + + + + + Gets the names of all descendants of this field. + + + + + Gets the names of all descendants of this field. + + + + + Gets the names of all appearance dictionaries of this AcroField. + + + + + Gets the collection of fields within this field. + + + + + Holds a collection of interactive fields. + + + + + Gets the number of elements in the array. + + + + + Gets the names of all fields in the collection. + + + + + Gets an array of all descendant names. + + + + + Gets a field from the collection. For your convenience an instance of a derived class like + PdfTextField or PdfCheckBox is returned if PDFsharp can guess the actual type of the dictionary. + If the actual type cannot be guessed by PDFsharp the function returns an instance + of PdfGenericField. + + + + + Gets the field with the specified name. + + + + + Create a derived type like PdfTextField or PdfCheckBox if possible. + If the actual cannot be guessed by PDFsharp the function returns an instance + of PdfGenericField. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + (Required for terminal fields; inheritable) The type of field that this dictionary + describes: + Btn Button + Tx Text + Ch Choice + Sig (PDF 1.3) Signature + Note: This entry may be present in a nonterminal field (one whose descendants + are themselves fields) in order to provide an inheritable FT value. However, a + nonterminal field does not logically have a type of its own; it is merely a container + for inheritable attributes that are intended for descendant terminal fields of + any type. + + + + + (Required if this field is the child of another in the field hierarchy; absent otherwise) + The field that is the immediate parent of this one (the field, if any, whose Kids array + includes this field). A field can have at most one parent; that is, it can be included + in the Kids array of at most one other field. + + + + + (Optional) An array of indirect references to the immediate children of this field. + + + + + (Optional) The partial field name. + + + + + (Optional; PDF 1.3) An alternate field name, to be used in place of the actual + field name wherever the field must be identified in the user interface (such as + in error or status messages referring to the field). This text is also useful + when extracting the document’s contents in support of accessibility to disabled + users or for other purposes. + + + + + (Optional; PDF 1.3) The mapping name to be used when exporting interactive form field + data from the document. + + + + + (Optional; inheritable) A set of flags specifying various characteristics of the field. + Default value: 0. + + + + + (Optional; inheritable) The field’s value, whose format varies depending on + the field type; see the descriptions of individual field types for further information. + + + + + (Optional; inheritable) The default value to which the field reverts when a + reset-form action is executed. The format of this value is the same as that of V. + + + + + (Optional; PDF 1.2) An additional-actions dictionary defining the field’s behavior + in response to various trigger events. This entry has exactly the same meaning as + the AA entry in an annotation dictionary. + + + + + (Required; inheritable) A resource dictionary containing default resources + (such as fonts, patterns, or color spaces) to be used by the appearance stream. + At a minimum, this dictionary must contain a Font entry specifying the resource + name and font dictionary of the default font for displaying the field’s text. + + + + + (Required; inheritable) The default appearance string, containing a sequence of + valid page-content graphics or text state operators defining such properties as + the field’s text size and color. + + + + + (Optional; inheritable) A code specifying the form of quadding (justification) + to be used in displaying the text: + 0 Left-justified + 1 Centered + 2 Right-justified + Default value: 0 (left-justified). + + + + + Represents an interactive form (or AcroForm), a collection of fields for + gathering information interactively from the user. + + + + + Initializes a new instance of AcroForm. + + + + + Gets the fields collection of this form. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + (Required) An array of references to the document’s root fields (those with + no ancestors in the field hierarchy). + + + + + (Optional) A flag specifying whether to construct appearance streams and + appearance dictionaries for all widget annotations in the document. + Default value: false. + + + + + (Optional; PDF 1.3) A set of flags specifying various document-level characteristics + related to signature fields. + Default value: 0. + + + + + (Required if any fields in the document have additional-actions dictionaries + containing a C entry; PDF 1.3) An array of indirect references to field dictionaries + with calculation actions, defining the calculation order in which their values will + be recalculated when the value of any field changes. + + + + + (Optional) A document-wide default value for the DR attribute of variable text fields. + + + + + (Optional) A document-wide default value for the DA attribute of variable text fields. + + + + + (Optional) A document-wide default value for the Q attribute of variable text fields. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the base class for all button fields. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the name which represents the opposite of /Off. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + Represents the check box field. + + + + + Initializes a new instance of PdfCheckBoxField. + + + + + Indicates whether the field is checked. + + + + + Gets or sets the name of the dictionary that represents the Checked state. + + The default value is "/Yes". + + + + Gets or sets the name of the dictionary that represents the Unchecked state. + The default value is "/Off". + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + (Optional; inheritable; PDF 1.4) A text string to be used in place of the V entry for the + value of the field. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the base class for all choice field dictionaries. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the index of the specified string in the /Opt array or -1, if no such string exists. + + + + + Gets the value from the index in the /Opt array. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + (Required; inheritable) An array of options to be presented to the user. Each element of + the array is either a text string representing one of the available options or a two-element + array consisting of a text string together with a default appearance string for constructing + the item’s appearance dynamically at viewing time. + + + + + (Optional; inheritable) For scrollable list boxes, the top index (the index in the Opt array + of the first option visible in the list). + + + + + (Sometimes required, otherwise optional; inheritable; PDF 1.4) For choice fields that allow + multiple selection (MultiSelect flag set), an array of integers, sorted in ascending order, + representing the zero-based indices in the Opt array of the currently selected option + items. This entry is required when two or more elements in the Opt array have different + names but the same export value, or when the value of the choice field is an array; in + other cases, it is permitted but not required. If the items identified by this entry differ + from those in the V entry of the field dictionary (see below), the V entry takes precedence. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the combo box field. + + + + + Initializes a new instance of PdfComboBoxField. + + + + + Gets or sets the index of the selected item. + + + + + Gets or sets the value of the field. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a generic field. Used for AcroForm dictionaries unknown to PDFsharp. + + + + + Initializes a new instance of PdfGenericField. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the list box field. + + + + + Initializes a new instance of PdfListBoxField. + + + + + Gets or sets the index of the selected item + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the push button field. + + + + + Initializes a new instance of PdfPushButtonField. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the radio button field. + + + + + Initializes a new instance of PdfRadioButtonField. + + + + + Gets or sets the index of the selected radio button in a radio button group. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + (Optional; inheritable; PDF 1.4) An array of text strings to be used in + place of the V entries for the values of the widget annotations representing + the individual radio buttons. Each element in the array represents + the export value of the corresponding widget annotation in the + Kids array of the radio button field. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the signature field. + + + + + Initializes a new instance of PdfSignatureField. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + (Optional) The type of PDF object that this dictionary describes; if present, + must be Sig for a signature dictionary. + + + + + (Required; inheritable) The name of the signature handler to be used for + authenticating the field’s contents, such as Adobe.PPKLite, Entrust.PPKEF, + CICI.SignIt, or VeriSign.PPKVS. + + + + + (Optional) The name of a specific submethod of the specified handler. + + + + + (Required) An array of pairs of integers (starting byte offset, length in bytes) + describing the exact byte range for the digest calculation. Multiple discontinuous + byte ranges may be used to describe a digest that does not include the + signature token itself. + + + + + (Required) The encrypted signature token. + + + + + (Optional) The name of the person or authority signing the document. + + + + + (Optional) The time of signing. Depending on the signature handler, this + may be a normal unverified computer time or a time generated in a verifiable + way from a secure time server. + + + + + (Optional) The CPU host name or physical location of the signing. + + + + + (Optional) The reason for the signing, such as (I agree…). + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the text field. + + + + + Initializes a new instance of PdfTextField. + + + + + Gets or sets the text value of the text field. + + + + + Gets or sets the font used to draw the text of the field. + + + + + Gets or sets the foreground color of the field. + + + + + Gets or sets the background color of the field. + + + + + Gets or sets the maximum length of the field. + + The length of the max. + + + + Gets or sets a value indicating whether the field has multiple lines. + + + + + Gets or sets a value indicating whether this field is used for passwords. + + + + + Creates the normal appearance form X object for the annotation that represents + this acro form text field. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + (Optional; inheritable) The maximum length of the field’s text, in characters. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Specifies the predefined PDF actions. + + + + + Go to next page. + + + + + Go to previous page. + + + + + Go to first page. + + + + + Go to last page. + + + + + Represents a PDF Goto actions. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document that owns this object. + + + + Predefined keys of this dictionary. + + + + + (Required) The destination to jump to (see Section 8.2.1, “Destinations”). + + + + + Represents the base class for all PDF actions. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document that owns this object. + + + + Predefined keys of this dictionary. + + + + + (Optional) The type of PDF object that this dictionary describes; + if present, must be Action for an action dictionary. + + + + + (Required) The type of action that this dictionary describes. + + + + + (Optional; PDF 1.2) The next action or sequence of actions to be performed + after the action represented by this dictionary. The value is either a + single action dictionary or an array of action dictionaries to be performed + in order; see below for further discussion. + + + + + Represents the catalog dictionary. + + + + + Initializes a new instance of the class. + + + + + Get or sets the version of the PDF specification to which the document conforms. + + + + + Gets the pages collection of this document. + + + + + Implementation of PdfDocument.PageLayout. + + + + + Implementation of PdfDocument.PageMode. + + + + + Implementation of PdfDocument.ViewerPreferences. + + + + + Implementation of PdfDocument.Outlines. + + + + + Gets the AcroForm dictionary of this document. + + + + + Gets or sets the language identifier specifying the natural language for all text in the document. + Sample values are 'en-US' for 'English United States' or 'de-DE' for 'deutsch Deutschland' (i.e. 'German Germany'). + + + + + Dispatches PrepareForSave to the objects that need it. + + + + + Predefined keys of this dictionary. + + + + + (Required) The type of PDF object that this dictionary describes; + must be Catalog for the catalog dictionary. + + + + + (Optional; PDF 1.4) The version of the PDF specification to which the document + conforms (for example, 1.4) if later than the version specified in the file’s header. + If the header specifies a later version, or if this entry is absent, the document + conforms to the version specified in the header. This entry enables a PDF producer + application to update the version using an incremental update. + + + + + (Required; must be an indirect reference) The page tree node that is the root of + the document’s page tree. + + + + + (Optional; PDF 1.3) A number tree defining the page labeling for the document. + The keys in this tree are page indices; the corresponding values are page label dictionaries. + Each page index denotes the first page in a labeling range to which the specified page + label dictionary applies. The tree must include a value for pageindex 0. + + + + + (Optional; PDF 1.2) The document’s name dictionary. + + + + + (Optional; PDF 1.1; must be an indirect reference) A dictionary of names and + corresponding destinations. + + + + + (Optional; PDF 1.2) A viewer preferences dictionary specifying the way the document + is to be displayed on the screen. If this entry is absent, applications should use + their own current user preference settings. + + + + + (Optional) A name object specifying the page layout to be used when the document is + opened: + SinglePage - Display one page at a time. + OneColumn - Display the pages in one column. + TwoColumnLeft - Display the pages in two columns, with oddnumbered pages on the left. + TwoColumnRight - Display the pages in two columns, with oddnumbered pages on the right. + TwoPageLeft - (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the left + TwoPageRight - (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the right. + + + + + (Optional) A name object specifying how the document should be displayed when opened: + UseNone - Neither document outline nor thumbnail images visible. + UseOutlines - Document outline visible. + UseThumbs - Thumbnail images visible. + FullScreen - Full-screen mode, with no menu bar, windowcontrols, or any other window visible. + UseOC - (PDF 1.5) Optional content group panel visible. + UseAttachments (PDF 1.6) Attachments panel visible. + Default value: UseNone. + + + + + (Optional; must be an indirect reference) The outline dictionary that is the root + of the document’s outline hierarchy. + + + + + (Optional; PDF 1.1; must be an indirect reference) An array of thread dictionaries + representing the document’s article threads. + + + + + (Optional; PDF 1.1) A value specifying a destination to be displayed or an action to be + performed when the document is opened. The value is either an array defining a destination + or an action dictionary representing an action. If this entry is absent, the document + should be opened to the top of the first page at the default magnification factor. + + + + + (Optional; PDF 1.4) An additional-actions dictionary defining the actions to be taken + in response to various trigger events affecting the document as a whole. + + + + + (Optional; PDF 1.1) A URI dictionary containing document-level information for URI + (uniform resource identifier) actions. + + + + + (Optional; PDF 1.2) The document’s interactive form (AcroForm) dictionary. + + + + + (Optional; PDF 1.4; must be an indirect reference) A metadata stream + containing metadata for the document. + + + + + (Optional; PDF 1.3) The document’s structure tree root dictionary. + + + + + (Optional; PDF 1.4) A mark information dictionary containing information + about the document’s usage of Tagged PDF conventions. + + + + + (Optional; PDF 1.4) A language identifier specifying the natural language for all + text in the document except where overridden by language specifications for structure + elements or marked content. If this entry is absent, the language is considered unknown. + + + + + (Optional; PDF 1.3) A Web Capture information dictionary containing state information + used by the Acrobat Web Capture (AcroSpider) plugin extension. + + + + + (Optional; PDF 1.4) An array of output intent dictionaries describing the color + characteristics of output devices on which the document might be rendered. + + + + + (Optional; PDF 1.4) A page-piece dictionary associated with the document. + + + + + (Optional; PDF 1.5; required if a document contains optional content) The document’s + optional content properties dictionary. + + + + + (Optional; PDF 1.5) A permissions dictionary that specifies user access permissions + for the document. + + + + + (Optional; PDF 1.5) A dictionary containing attestations regarding the content of a + PDF document, as it relates to the legality of digital signatures. + + + + + (Optional; PDF 1.7) An array of requirement dictionaries representing + requirements for the document. + + + + + (Optional; PDF 1.7) A collection dictionary that a PDF consumer uses to enhance + the presentation of file attachments stored in the PDF document. + + + + + (Optional; PDF 1.7) A flag used to expedite the display of PDF documents containing XFA forms. + It specifies whether the document must be regenerated when the document is first opened. + If true, the viewer application treats the document as a shell and regenerates the content + when the document is opened, regardless of any dynamic forms settings that appear in the XFA + stream itself. This setting is used to expedite the display of documents whose layout varies + depending on the content of the XFA streams. + If false, the viewer application does not regenerate the content when the document is opened. + See the XML Forms Architecture (XFA) Specification (Bibliography). + Default value: false. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a CIDFont dictionary. + + + + + Prepares the object to get saved. + + + + + Predefined keys of this dictionary. + + + + + (Required) The type of PDF object that this dictionary describes; + must be Font for a CIDFont dictionary. + + + + + (Required) The type of CIDFont; CIDFontType0 or CIDFontType2. + + + + + (Required) The PostScript name of the CIDFont. For Type 0 CIDFonts, this + is usually the value of the CIDFontName entry in the CIDFont program. For + Type 2 CIDFonts, it is derived the same way as for a simple TrueType font; + In either case, the name can have a subset prefix if appropriate. + + + + + (Required) A dictionary containing entries that define the character collection + of the CIDFont. + + + + + (Required; must be an indirect reference) A font descriptor describing the + CIDFont’s default metrics other than its glyph widths. + + + + + (Optional) The default width for glyphs in the CIDFont. + Default value: 1000. + + + + + (Optional) A description of the widths for the glyphs in the CIDFont. The + array’s elements have a variable format that can specify individual widths + for consecutive CIDs or one width for a range of CIDs. + Default value: none (the DW value is used for all glyphs). + + + + + (Optional; applies only to CIDFonts used for vertical writing) An array of two + numbers specifying the default metrics for vertical writing. + Default value: [880 −1000]. + + + + + (Optional; applies only to CIDFonts used for vertical writing) A description + of the metrics for vertical writing for the glyphs in the CIDFont. + Default value: none (the DW2 value is used for all glyphs). + + + + + (Optional; Type 2 CIDFonts only) A specification of the mapping from CIDs + to glyph indices. If the value is a stream, the bytes in the stream contain the + mapping from CIDs to glyph indices: the glyph index for a particular CID + value c is a 2-byte value stored in bytes 2 × c and 2 × c + 1, where the first + byte is the high-order byte. If the value of CIDToGIDMap is a name, it must + be Identity, indicating that the mapping between CIDs and glyph indices is + the identity mapping. + Default value: Identity. + This entry may appear only in a Type 2 CIDFont whose associated True-Type font + program is embedded in the PDF file. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the content of a page. PDFsharp supports only one content stream per page. + If an imported page has an array of content streams, the streams are concatenated to + one single stream. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The dict. + + + + Sets a value indicating whether the content is compressed with the ZIP algorithm. + + + + + Unfilters the stream. + + + + + Surround content with q/Q operations if necessary. + + + + + Predefined keys of this dictionary. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents an array of PDF content streams of a page. + + + + + Initializes a new instance of the class. + + The document. + + + + Appends a new content stream and returns it. + + + + + Prepends a new content stream and returns it. + + + + + Creates a single content stream with the bytes from the array of the content streams. + This operation does not modify any of the content streams in this array. + + + + + Replaces the current content of the page with the specified content sequence. + + + + + Replaces the current content of the page with the specified bytes. + + + + + Gets the enumerator. + + + + + Represents a PDF cross-reference stream. + + + + + Initializes a new instance of the class. + + + + + Predefined keys for cross-reference dictionaries. + + + + + (Required) The type of PDF object that this dictionary describes; + must be XRef for a cross-reference stream. + + + + + (Required) The number one greater than the highest object number + used in this section or in any section for which this is an update. + It is equivalent to the Size entry in a trailer dictionary. + + + + + (Optional) An array containing a pair of integers for each subsection in this section. + The first integer is the first object number in the subsection; the second integer + is the number of entries in the subsection. + The array is sorted in ascending order by object number. Subsections cannot overlap; + an object number may have at most one entry in a section. + Default value: [0 Size]. + + + + + (Present only if the file has more than one cross-reference stream; not meaningful in + hybrid-reference files) The byte offset from the beginning of the file to the beginning + of the previous cross-reference stream. This entry has the same function as the Prev + entry in the trailer dictionary. + + + + + (Required) An array of integers representing the size of the fields in a single + cross-reference entry. The table describes the types of entries and their fields. + For PDF 1.5, W always contains three integers; the value of each integer is the + number of bytes (in the decoded stream) of the corresponding field. For example, + [1 2 1] means that the fields are one byte, two bytes, and one byte, respectively. + + A value of zero for an element in the W array indicates that the corresponding field + is not present in the stream, and the default value is used, if there is one. If the + first element is zero, the type field is not present, and it defaults to type 1. + + The sum of the items is the total length of each entry; it can be used with the + Indexarray to determine the starting position of each subsection. + + Note: Different cross-reference streams in a PDF file may use different values for W. + + Entries in a cross-reference stream. + + TYPE FIELD DESCRIPTION + 0 1 The type of this entry, which must be 0. Type 0 entries define the linked list of free objects (corresponding to f entries in a cross-reference table). + 2 The object number of the next free object. + 3 The generation number to use if this object number is used again. + 1 1 The type of this entry, which must be 1. Type 1 entries define objects that are in use but are not compressed (corresponding to n entries in a cross-reference table). + 2 The byte offset of the object, starting from the beginning of the file. + 3 The generation number of the object. Default value: 0. + 2 1 The type of this entry, which must be 2. Type 2 entries define compressed objects. + 2 The object number of the object stream in which this object is stored. (The generation number of the object stream is implicitly 0.) + 3 The index of this object within the object stream. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the cross-reference table of a PDF document. + It contains all indirect objects of a document. + + + + + Represents the relation between PdfObjectID and PdfReference for a PdfDocument. + + + + + Adds a cross reference entry to the table. Used when parsing the trailer. + + + + + Adds a PdfObject to the table. + + + + + Gets a cross reference entry from an object identifier. + Returns null if no object with the specified ID exists in the object table. + + + + + Indicates whether the specified object identifier is in the table. + + + + + Returns the next free object number. + + + + + Writes the xref section in pdf stream. + + + + + Gets an array of all object identifiers. For debugging purposes only. + + + + + Gets an array of all cross references in ascending order by their object identifier. + + + + + Removes all objects that cannot be reached from the trailer. + Returns the number of removed objects. + + + + + Renumbers the objects starting at 1. + + + + + Checks the logical consistence for debugging purposes (useful after reconstruction work). + + + + + Calculates the transitive closure of the specified PdfObject, i.e. all indirect objects + recursively reachable from the specified object. + + + + + Calculates the transitive closure of the specified PdfObject with the specified depth, i.e. all indirect objects + recursively reachable from the specified object in up to maximally depth steps. + + + + + Gets the cross reference to an objects used for undefined indirect references. + + + + + Represents a base class for dictionaries with a content stream. + Implement IContentStream for use with a content writer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + + + + Initializes a new instance from an existing dictionary. Used for object type transformation. + + + + + Gets the resources dictionary of this dictionary. If no such dictionary exists, it is created. + + + + + Implements the interface because the primary function is internal. + + + + + Gets the resource name of the specified image within this dictionary. + + + + + Implements the interface because the primary function is internal. + + + + + Gets the resource name of the specified form within this dictionary. + + + + + Implements the interface because the primary function is internal. + + + + + Predefined keys of this dictionary. + + + + + (Optional but strongly recommended; PDF 1.2) A dictionary specifying any + resources (such as fonts and images) required by the form XObject. + + + + + Represents an extended graphics state object. + + + + + Initializes a new instance of the class. + + The document. + + + + Used in Edf.Xps. + + + + + Used in Edf.Xps. + ...for shading patterns + + + + + Sets the alpha value for stroking operations. + + + + + Sets the alpha value for nonstroking operations. + + + + + Sets the overprint value for stroking operations. + + + + + Sets the overprint value for nonstroking operations. + + + + + Sets a soft mask object. + + + + + Common keys for all streams. + + + + + (Optional) The type of PDF object that this dictionary describes; + must be ExtGState for a graphics state parameter dictionary. + + + + + (Optional; PDF 1.3) The line width (see “Line Width” on page 185). + + + + + (Optional; PDF 1.3) The line cap style. + + + + + (Optional; PDF 1.3) The line join style. + + + + + (Optional; PDF 1.3) The miter limit. + + + + + (Optional; PDF 1.3) The line dash pattern, expressed as an array of the form + [dashArray dashPhase], where dashArray is itself an array and dashPhase is an integer. + + + + + (Optional; PDF 1.3) The name of the rendering intent. + + + + + (Optional) A flag specifying whether to apply overprint. In PDF 1.2 and earlier, + there is a single overprint parameter that applies to all painting operations. + Beginning with PDF 1.3, there are two separate overprint parameters: one for stroking + and one for all other painting operations. Specifying an OP entry sets both parameters + unless there is also an op entry in the same graphics state parameter dictionary, in + which case the OP entry sets only the overprint parameter for stroking. + + + + + (Optional; PDF 1.3) A flag specifying whether to apply overprint for painting operations + other than stroking. If this entry is absent, the OP entry, if any, sets this parameter. + + + + + (Optional; PDF 1.3) The overprint mode. + + + + + (Optional; PDF 1.3) An array of the form [font size], where font is an indirect + reference to a font dictionary and size is a number expressed in text space units. + These two objects correspond to the operands of the Tf operator; however, + the first operand is an indirect object reference instead of a resource name. + + + + + (Optional) The black-generation function, which maps the interval [0.0 1.0] + to the interval [0.0 1.0]. + + + + + (Optional; PDF 1.3) Same as BG except that the value may also be the name Default, + denoting the black-generation function that was in effect at the start of the page. + If both BG and BG2 are present in the same graphics state parameter dictionary, + BG2 takes precedence. + + + + + (Optional) The undercolor-removal function, which maps the interval + [0.0 1.0] to the interval [-1.0 1.0]. + + + + + (Optional; PDF 1.3) Same as UCR except that the value may also be the name Default, + denoting the undercolor-removal function that was in effect at the start of the page. + If both UCR and UCR2 are present in the same graphics state parameter dictionary, + UCR2 takes precedence. + + + + + (Optional) A flag specifying whether to apply automatic stroke adjustment. + + + + + (Optional; PDF 1.4) The current blend mode to be used in the transparent imaging model. + + + + + (Optional; PDF 1.4) The current soft mask, specifying the mask shape or + mask opacity values to be used in the transparent imaging model. + + + + + (Optional; PDF 1.4) The current stroking alpha constant, specifying the constant + shape or constant opacity value to be used for stroking operations in the transparent + imaging model. + + + + + (Optional; PDF 1.4) Same as CA, but for nonstroking operations. + + + + + (Optional; PDF 1.4) The alpha source flag (“alpha is shape”), specifying whether + the current soft mask and alpha constant are to be interpreted as shape values (true) + or opacity values (false). + + + + + (Optional; PDF 1.4) The text knockout flag, which determines the behavior of + overlapping glyphs within a text object in the transparent imaging model. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Contains all used ExtGState objects of a document. + + + + + Initializes a new instance of this class, which is a singleton for each document. + + + + + Gets a PdfExtGState with the key 'CA' set to the specified alpha value. + + + + + Gets a PdfExtGState with the key 'ca' set to the specified alpha value. + + + + + Represents a PDF font. + + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this instance is symbol font. + + + + + Gets or sets the CMapInfo. + + + + + Gets or sets ToUnicodeMap. + + + + + Adds a tag of exactly six uppercase letters to the font name + according to PDF Reference Section 5.5.3 'Font Subsets' + + + + + Predefined keys common to all font dictionaries. + + + + + (Required) The type of PDF object that this dictionary describes; + must be Font for a font dictionary. + + + + + (Required) The type of font. + + + + + (Required) The PostScript name of the font. + + + + + (Required except for the standard 14 fonts; must be an indirect reference) + A font descriptor describing the font’s metrics other than its glyph widths. + Note: For the standard 14 fonts, the entries FirstChar, LastChar, Widths, and + FontDescriptor must either all be present or all be absent. Ordinarily, they are + absent; specifying them enables a standard font to be overridden. + + + + + The PDF font descriptor flags. + + + + + All glyphs have the same width (as opposed to proportional or variable-pitch + fonts, which have different widths). + + + + + Glyphs have serifs, which are short strokes drawn at an angle on the top and + bottom of glyph stems. (Sans serif fonts do not have serifs.) + + + + + Font contains glyphs outside the Adobe standard Latin character set. This + flag and the Nonsymbolic flag cannot both be set or both be clear. + + + + + Glyphs resemble cursive handwriting. + + + + + Font uses the Adobe standard Latin character set or a subset of it. + + + + + Glyphs have dominant vertical strokes that are slanted. + + + + + Font contains no lowercase letters; typically used for display purposes, + such as for titles or headlines. + + + + + Font contains both uppercase and lowercase letters. The uppercase letters are + similar to those in the regular version of the same typeface family. The glyphs + for the lowercase letters have the same shapes as the corresponding uppercase + letters, but they are sized and their proportions adjusted so that they have the + same size and stroke weight as lowercase glyphs in the same typeface family. + + + + + Determines whether bold glyphs are painted with extra pixels even at very small + text sizes. + + + + + A PDF font descriptor specifies metrics and other attributes of a simple font, + as distinct from the metrics of individual glyphs. + + + + + Gets or sets the name of the font. + + + + + Gets a value indicating whether this instance is symbol font. + + + + + Predefined keys of this dictionary. + + + + + (Required) The type of PDF object that this dictionary describes; must be + FontDescriptor for a font descriptor. + + + + + (Required) The PostScript name of the font. This name should be the same as the + value of BaseFont in the font or CIDFont dictionary that refers to this font descriptor. + + + + + (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) + A string specifying the preferred font family name. For example, for the font + Times Bold Italic, the FontFamily is Times. + + + + + (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) + The font stretch value. It must be one of the following names (ordered from + narrowest to widest): UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, + Normal, SemiExpanded, Expanded, ExtraExpanded or UltraExpanded. + Note: The specific interpretation of these values varies from font to font. + For example, Condensed in one font may appear most similar to Normal in another. + + + + + (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) + The weight (thickness) component of the fully-qualified font name or font specifier. + The possible values are 100, 200, 300, 400, 500, 600, 700, 800, or 900, where each + number indicates a weight that is at least as dark as its predecessor. A value of + 400 indicates a normal weight; 700 indicates bold. + Note: The specific interpretation of these values varies from font to font. + For example, 300 in one font may appear most similar to 500 in another. + + + + + (Required) A collection of flags defining various characteristics of the font. + + + + + (Required, except for Type 3 fonts) A rectangle (see Section 3.8.4, “Rectangles”), + expressed in the glyph coordinate system, specifying the font bounding box. This + is the smallest rectangle enclosing the shape that would result if all of the + glyphs of the font were placed with their origins coincident and then filled. + + + + + (Required) The angle, expressed in degrees counterclockwise from the vertical, of + the dominant vertical strokes of the font. (For example, the 9-o’clock position is 90 + degrees, and the 3-o’clock position is –90 degrees.) The value is negative for fonts + that slope to the right, as almost all italic fonts do. + + + + + (Required, except for Type 3 fonts) The maximum height above the baseline reached + by glyphs in this font, excluding the height of glyphs for accented characters. + + + + + (Required, except for Type 3 fonts) The maximum depth below the baseline reached + by glyphs in this font. The value is a negative number. + + + + + (Optional) The spacing between baselines of consecutive lines of text. + Default value: 0. + + + + + (Required for fonts that have Latin characters, except for Type 3 fonts) The vertical + coordinate of the top of flat capital letters, measured from the baseline. + + + + + (Optional) The font’s x height: the vertical coordinate of the top of flat nonascending + lowercase letters (like the letter x), measured from the baseline, in fonts that have + Latin characters. Default value: 0. + + + + + (Required, except for Type 3 fonts) The thickness, measured horizontally, of the dominant + vertical stems of glyphs in the font. + + + + + (Optional) The thickness, measured vertically, of the dominant horizontal stems + of glyphs in the font. Default value: 0. + + + + + (Optional) The average width of glyphs in the font. Default value: 0. + + + + + (Optional) The maximum width of glyphs in the font. Default value: 0. + + + + + (Optional) The width to use for character codes whose widths are not specified in a + font dictionary’s Widths array. This has a predictable effect only if all such codes + map to glyphs whose actual widths are the same as the value of the MissingWidth entry. + Default value: 0. + + + + + (Optional) A stream containing a Type 1 font program. + + + + + (Optional; PDF 1.1) A stream containing a TrueType font program. + + + + + (Optional; PDF 1.2) A stream containing a font program whose format is specified + by the Subtype entry in the stream dictionary. + + + + + (Optional; meaningful only in Type 1 fonts; PDF 1.1) A string listing the character + names defined in a font subset. The names in this string must be in PDF syntax—that is, + each name preceded by a slash (/). The names can appear in any order. The name .notdef + should be omitted; it is assumed to exist in the font subset. If this entry is absent, + the only indication of a font subset is the subset tag in the FontName entry. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + TrueType with WinAnsi encoding. + + + + + TrueType with Identity-H or Identity-V encoding (unicode). + + + + + Contains all used fonts of a document. + + + + + Initializes a new instance of this class, which is a singleton for each document. + + + + + Gets a PdfFont from an XFont. If no PdfFont already exists, a new one is created. + + + + + Gets a PdfFont from a font program. If no PdfFont already exists, a new one is created. + + + + + Tries to gets a PdfFont from the font dictionary. + Returns null if no such PdfFont exists. + + + + + Map from PdfFontSelector to PdfFont. + + + + + Represents an external form object (e.g. an imported page). + + + + + Gets the PdfResources object of this form. + + + + + Gets the resource name of the specified font data within this form XObject. + + + + + Predefined keys of this dictionary. + + + + + (Optional) The type of PDF object that this dictionary describes; if present, + must be XObject for a form XObject. + + + + + (Required) The type of XObject that this dictionary describes; must be Form + for a form XObject. + + + + + (Optional) A code identifying the type of form XObject that this dictionary + describes. The only valid value defined at the time of publication is 1. + Default value: 1. + + + + + (Required) An array of four numbers in the form coordinate system, giving the + coordinates of the left, bottom, right, and top edges, respectively, of the + form XObject’s bounding box. These boundaries are used to clip the form XObject + and to determine its size for caching. + + + + + (Optional) An array of six numbers specifying the form matrix, which maps + form space into user space. + Default value: the identity matrix [1 0 0 1 0 0]. + + + + + (Optional but strongly recommended; PDF 1.2) A dictionary specifying any + resources (such as fonts and images) required by the form XObject. + + + + + (Optional; PDF 1.4) A group attributes dictionary indicating that the contents + of the form XObject are to be treated as a group and specifying the attributes + of that group (see Section 4.9.2, “Group XObjects”). + Note: If a Ref entry (see below) is present, the group attributes also apply to the + external page imported by that entry, which allows such an imported page to be + treated as a group without further modification. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Contains all external PDF files from which PdfFormXObjects are imported into the current document. + + + + + Initializes a new instance of this class, which is a singleton for each document. + + + + + Gets a PdfFormXObject from an XPdfForm. Because the returned objects must be unique, always + a new instance of PdfFormXObject is created if none exists for the specified form. + + + + + Gets the imported object table. + + + + + Gets the imported object table. + + + + + Map from Selector to PdfImportedObjectTable. + + + + + A collection of information that uniquely identifies a particular ImportedObjectTable. + + + + + Initializes a new instance of FormSelector from an XPdfForm. + + + + + Initializes a new instance of FormSelector from a PdfPage. + + + + + Represents a PDF group XObject. + + + + + Predefined keys of this dictionary. + + + + + (Optional) The type of PDF object that this dictionary describes; + if present, must be Group for a group attributes dictionary. + + + + + (Required) The group subtype, which identifies the type of group whose + attributes this dictionary describes and determines the format and meaning + of the dictionary’s remaining entries. The only group subtype defined in + PDF 1.4 is Transparency. Other group subtypes may be added in the future. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents an image. + + + + + Initializes a new instance of PdfImage from an XImage. + + + + + Gets the underlying XImage object. + + + + + Returns 'Image'. + + + + + Creates the keys for a JPEG image. + + + + + Creates the keys for a FLATE image. + + + + + Reads images that are returned from GDI+ without color palette. + + 4 (32bpp RGB), 3 (24bpp RGB, 32bpp ARGB) + 8 + true (ARGB), false (RGB) + + + + Common keys for all streams. + + + + + (Optional) The type of PDF object that this dictionary describes; + if present, must be XObject for an image XObject. + + + + + (Required) The type of XObject that this dictionary describes; + must be Image for an image XObject. + + + + + (Required) The width of the image, in samples. + + + + + (Required) The height of the image, in samples. + + + + + (Required for images, except those that use the JPXDecode filter; not allowed for image masks) + The color space in which image samples are specified; it can be any type of color space except + Pattern. If the image uses the JPXDecode filter, this entry is optional: + • If ColorSpace is present, any color space specifications in the JPEG2000 data are ignored. + • If ColorSpace is absent, the color space specifications in the JPEG2000 data are used. + The Decode array is also ignored unless ImageMask is true. + + + + + (Required except for image masks and images that use the JPXDecode filter) + The number of bits used to represent each color component. Only a single value may be specified; + the number of bits is the same for all color components. Valid values are 1, 2, 4, 8, and + (in PDF 1.5) 16. If ImageMask is true, this entry is optional, and if specified, its value + must be 1. + If the image stream uses a filter, the value of BitsPerComponent must be consistent with the + size of the data samples that the filter delivers. In particular, a CCITTFaxDecode or JBIG2Decode + filter always delivers 1-bit samples, a RunLengthDecode or DCTDecode filter delivers 8-bit samples, + and an LZWDecode or FlateDecode filter delivers samples of a specified size if a predictor function + is used. + If the image stream uses the JPXDecode filter, this entry is optional and ignored if present. + The bit depth is determined in the process of decoding the JPEG2000 image. + + + + + (Optional; PDF 1.1) The name of a color rendering intent to be used in rendering the image. + Default value: the current rendering intent in the graphics state. + + + + + (Optional) A flag indicating whether the image is to be treated as an image mask. + If this flag is true, the value of BitsPerComponent must be 1 and Mask and ColorSpace should + not be specified; unmasked areas are painted using the current nonstroking color. + Default value: false. + + + + + (Optional except for image masks; not allowed for image masks; PDF 1.3) + An image XObject defining an image mask to be applied to this image, or an array specifying + a range of colors to be applied to it as a color key mask. If ImageMask is true, this entry + must not be present. + + + + + (Optional) An array of numbers describing how to map image samples into the range of values + appropriate for the image’s color space. If ImageMask is true, the array must be either + [0 1] or [1 0]; otherwise, its length must be twice the number of color components required + by ColorSpace. If the image uses the JPXDecode filter and ImageMask is false, Decode is ignored. + Default value: see “Decode Arrays”. + + + + + (Optional) A flag indicating whether image interpolation is to be performed. + Default value: false. + + + + + (Optional; PDF 1.3) An array of alternate image dictionaries for this image. The order of + elements within the array has no significance. This entry may not be present in an image + XObject that is itself an alternate image. + + + + + (Optional; PDF 1.4) A subsidiary image XObject defining a soft-mask image to be used as a + source of mask shape or mask opacity values in the transparent imaging model. The alpha + source parameter in the graphics state determines whether the mask values are interpreted as + shape or opacity. If present, this entry overrides the current soft mask in the graphics state, + as well as the image’s Mask entry, if any. (However, the other transparency related graphics + state parameters — blend mode and alpha constant — remain in effect.) If SMask is absent, the + image has no associated soft mask (although the current soft mask in the graphics state may + still apply). + + + + + (Optional for images that use the JPXDecode filter, meaningless otherwise; PDF 1.5) + A code specifying how soft-mask information encoded with image samples should be used: + 0 If present, encoded soft-mask image information should be ignored. + 1 The image’s data stream includes encoded soft-mask values. An application can create + a soft-mask image from the information to be used as a source of mask shape or mask + opacity in the transparency imaging model. + 2 The image’s data stream includes color channels that have been preblended with a + background; the image data also includes an opacity channel. An application can create + a soft-mask image with a Matte entry from the opacity channel information to be used as + a source of mask shape or mask opacity in the transparency model. If this entry has a + nonzero value, SMask should not be specified. + Default value: 0. + + + + + (Required in PDF 1.0; optional otherwise) The name by which this image XObject is + referenced in the XObject subdictionary of the current resource dictionary. + + + + + (Required if the image is a structural content item; PDF 1.3) The integer key of the + image’s entry in the structural parent tree. + + + + + (Optional; PDF 1.3; indirect reference preferred) The digital identifier of the image’s + parent Web Capture content set. + + + + + (Optional; PDF 1.2) An OPI version dictionary for the image. If ImageMask is true, + this entry is ignored. + + + + + (Optional; PDF 1.4) A metadata stream containing metadata for the image. + + + + + (Optional; PDF 1.5) An optional content group or optional content membership dictionary, + specifying the optional content properties for this image XObject. Before the image is + processed, its visibility is determined based on this entry. If it is determined to be + invisible, the entire image is skipped, as if there were no Do operator to invoke it. + + + + + Counts the consecutive one bits in an image line. + + The reader. + The bits left. + + + + Counts the consecutive zero bits in an image line. + + The reader. + The bits left. + + + + Returns the offset of the next bit in the range + [bitStart..bitEnd] that is different from the + specified color. The end, bitEnd, is returned + if no such bit exists. + + The reader. + The offset of the start bit. + The offset of the end bit. + If set to true searches "one" (i. e. white), otherwise searches black. + The offset of the first non-matching bit. + + + + Returns the offset of the next bit in the range + [bitStart..bitEnd] that is different from the + specified color. The end, bitEnd, is returned + if no such bit exists. + Like FindDifference, but also check the + starting bit against the end in case start > end. + + The reader. + The offset of the start bit. + The offset of the end bit. + If set to true searches "one" (i. e. white), otherwise searches black. + The offset of the first non-matching bit. + + + + 2d-encode a row of pixels. Consult the CCITT documentation for the algorithm. + + The writer. + Offset of image data in bitmap file. + The bitmap file. + Index of the current row. + Index of the reference row (0xffffffff if there is none). + The width of the image. + The height of the image. + The bytes per line in the bitmap file. + + + + Encodes a bitonal bitmap using 1D CCITT fax encoding. + + Space reserved for the fax encoded bitmap. An exception will be thrown if this buffer is too small. + The bitmap to be encoded. + Offset of image data in bitmap file. + The width of the image. + The height of the image. + The size of the fax encoded image (0 on failure). + + + + Encodes a bitonal bitmap using 2D group 4 CCITT fax encoding. + + Space reserved for the fax encoded bitmap. An exception will be thrown if this buffer is too small. + The bitmap to be encoded. + Offset of image data in bitmap file. + The width of the image. + The height of the image. + The size of the fax encoded image (0 on failure). + + + + Writes the image data. + + The writer. + The count of bits (pels) to encode. + The color of the pels. + + + + Helper class for creating bitmap masks (8 pels per byte). + + + + + Returns the bitmap mask that will be written to PDF. + + + + + Creates a bitmap mask. + + + + + Starts a new line. + + + + + Adds a pel to the current line. + + + + + + Adds a pel from an alpha mask value. + + + + + The BitReader class is a helper to read bits from an in-memory bitmap file. + + + + + Initializes a new instance of the class. + + The in-memory bitmap file. + The offset of the line to read. + The count of bits that may be read (i. e. the width of the image for normal usage). + + + + Sets the position within the line (needed for 2D encoding). + + The new position. + + + + Gets a single bit at the specified position. + + The position. + True if bit is set. + + + + Returns the bits that are in the buffer (without changing the position). + Data is MSB aligned. + + The count of bits that were returned (1 through 8). + The MSB aligned bits from the buffer. + + + + Moves the buffer to the next byte. + + + + + "Removes" (eats) bits from the buffer. + + The count of bits that were processed. + + + + A helper class for writing groups of bits into an array of bytes. + + + + + Initializes a new instance of the class. + + The byte array to be written to. + + + + Writes the buffered bits into the byte array. + + + + + Masks for n bits in a byte (with n = 0 through 8). + + + + + Writes bits to the byte array. + + The bits to be written (LSB aligned). + The count of bits. + + + + Writes a line from a look-up table. + A "line" in the table are two integers, one containing the values, one containing the bit count. + + + + + Flushes the buffer and returns the count of bytes written to the array. + + + + + Contains all used images of a document. + + + + + Initializes a new instance of this class, which is a singleton for each document. + + + + + Gets a PdfImage from an XImage. If no PdfImage already exists, a new one is created. + + + + + Map from ImageSelector to PdfImage. + + + + + A collection of information that uniquely identifies a particular PdfImage. + + + + + Initializes a new instance of ImageSelector from an XImage. + + + + + Represents the imported objects of an external document. Used to cache objects that are + already imported when a PdfFormXObject is added to a page. + + + + + Initializes a new instance of this class with the document the objects are imported from. + + + + + Gets the document this table belongs to. + + + + + Gets the external document, or null, if the external document is garbage collected. + + + + + Indicates whether the specified object is already imported. + + + + + Adds a cloned object to this table. + + The object identifier in the foreign object. + The cross reference to the clone of the foreign object, which belongs to + this document. In general the clone has a different object identifier. + + + + Gets the cloned object that corresponds to the specified external identifier. + + + + + Maps external object identifiers to cross reference entries of the importing document + {PdfObjectID -> PdfReference}. + + + + + Provides access to the internal document data structures. This class prevents the public + interfaces from pollution with to much internal functions. + + + + + Gets or sets the first document identifier. + + + + + Gets the first document identifier as GUID. + + + + + Gets or sets the second document identifier. + + + + + Gets the first document identifier as GUID. + + + + + Gets the catalog dictionary. + + + + + Gets the ExtGStateTable object. + + + + + Returns the object with the specified Identifier, or null, if no such object exists. + + + + + Maps the specified external object to the substitute object in this document. + Returns null if no such object exists. + + + + + Returns the PdfReference of the specified object, or null, if the object is not in the + document's object table. + + + + + Gets the object identifier of the specified object. + + + + + Gets the object number of the specified object. + + + + + Gets the generation number of the specified object. + + + + + Gets all indirect objects ordered by their object identifier. + + + + + Gets all indirect objects ordered by their object identifier. + + + + + Creates the indirect object of the specified type, adds it to the document, + and returns the object. + + + + + Adds an object to the PDF document. This operation and only this operation makes the object + an indirect object owned by this document. + + + + + Removes an object from the PDF document. + + + + + Returns an array containing the specified object as first element follows by its transitive + closure. The closure of an object are all objects that can be reached by indirect references. + The transitive closure is the result of applying the calculation of the closure to a closure + as long as no new objects came along. This is e.g. useful for getting all objects belonging + to the resources of a page. + + + + + Returns an array containing the specified object as first element follows by its transitive + closure limited by the specified number of iterations. + + + + + Writes a PdfItem into the specified stream. + + + + + The name of the custom value key. + + + + + Provides access to the internal PDF object data structures. This class prevents the public + interfaces from pollution with to much internal functions. + + + + + Gets the object identifier. Returns PdfObjectID.Empty for direct objects. + + + + + Gets the object number. + + + + + Gets the generation number. + + + + + Gets the name of the current type. + Not a very useful property, but can be used for data binding. + + + + + Represents an object stream that contains compressed objects. + PDF 1.5. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance from an existing dictionary. Used for object type transformation. + + + + + Reads the compressed object with the specified index. + + + + + Reads the compressed object with the specified index. + + + + + N pairs of integers. + The first integer represents the object number of the compressed object. + The second integer represents the absolute offset of that object in the decoded stream, + i.e. the byte offset plus First entry. + + + + + Predefined keys common to all font dictionaries. + + + + + (Required) The type of PDF object that this dictionary describes; + must be ObjStmfor an object stream. + + + + + (Required) The number of compressed objects in the stream. + + + + + (Required) The byte offset (in the decoded stream) of the first + compressed object. + + + + + (Optional) A reference to an object stream, of which the current object + stream is considered an extension. Both streams are considered part of + a collection of object streams (see below). A given collection consists + of a set of streams whose Extendslinks form a directed acyclic graph. + + + + + Represents a PDF page object. + + + + + + + + + + Represents an indirect reference to a PdfObject. + + + + + Initializes a new PdfReference instance for the specified indirect object. + + + + + Initializes a new PdfReference instance from the specified object identifier and file position. + + + + + Writes the object in PDF iref table format. + + + + + Writes an indirect reference. + + + + + Gets or sets the object identifier. + + + + + Gets the object number of the object identifier. + + + + + Gets the generation number of the object identifier. + + + + + Gets or sets the file position of the related PdfObject. + + + + + Gets or sets the referenced PdfObject. + + + + + Hack for dead objects. + + + + + Gets or sets the document this object belongs to. + + + + + Gets a string representing the object identifier. + + + + + Implements a comparer that compares PdfReference objects by their PdfObjectID. + + + + + Base class for all dictionaries that map resource names to objects. + + + + + Adds all imported resource names to the specified hashtable. + + + + + Represents a PDF resource object. + + + + + Initializes a new instance of the class. + + The document. + + + + Adds the specified font to this resource dictionary and returns its local resource name. + + + + + Adds the specified image to this resource dictionary + and returns its local resource name. + + + + + Adds the specified form object to this resource dictionary + and returns its local resource name. + + + + + Adds the specified graphics state to this resource dictionary + and returns its local resource name. + + + + + Adds the specified pattern to this resource dictionary + and returns its local resource name. + + + + + Adds the specified pattern to this resource dictionary + and returns its local resource name. + + + + + Adds the specified shading to this resource dictionary + and returns its local resource name. + + + + + Gets the fonts map. + + + + + Gets the external objects map. + + + + + Gets a new local name for this resource. + + + + + Gets a new local name for this resource. + + + + + Gets a new local name for this resource. + + + + + Gets a new local name for this resource. + + + + + Gets a new local name for this resource. + + + + + Gets a new local name for this resource. + + + + + Check whether a resource name is already used in the context of this resource dictionary. + PDF4NET uses GUIDs as resource names, but I think this weapon is to heavy. + + + + + All the names of imported resources. + + + + + Maps all PDFsharp resources to their local resource names. + + + + + Predefined keys of this dictionary. + + + + + (Optional) A dictionary that maps resource names to graphics state + parameter dictionaries. + + + + + (Optional) A dictionary that maps each resource name to either the name of a + device-dependent color space or an array describing a color space. + + + + + (Optional) A dictionary that maps each resource name to either the name of a + device-dependent color space or an array describing a color space. + + + + + (Optional; PDF 1.3) A dictionary that maps resource names to shading dictionaries. + + + + + (Optional) A dictionary that maps resource names to external objects. + + + + + (Optional) A dictionary that maps resource names to font dictionaries. + + + + + (Optional) An array of predefined procedure set names. + + + + + (Optional; PDF 1.2) A dictionary that maps resource names to property list + dictionaries for marked content. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Base class for FontTable, ImageTable, FormXObjectTable etc. + + + + + Base class for document wide resource tables. + + + + + Gets the owning document of this resource table. + + + + + Represents a shading dictionary. + + + + + Initializes a new instance of the class. + + + + + Setups the shading from the specified brush. + + + + + Common keys for all streams. + + + + + (Required) The shading type: + 1 Function-based shading + 2 Axial shading + 3 Radial shading + 4 Free-form Gouraud-shaded triangle mesh + 5 Lattice-form Gouraud-shaded triangle mesh + 6 Coons patch mesh + 7 Tensor-product patch mesh + + + + + (Required) The color space in which color values are expressed. This may be any device, + CIE-based, or special color space except a Pattern space. + + + + + (Optional) An array of color components appropriate to the color space, specifying + a single background color value. If present, this color is used, before any painting + operation involving the shading, to fill those portions of the area to be painted + that lie outside the bounds of the shading object. In the opaque imaging model, + the effect is as if the painting operation were performed twice: first with the + background color and then with the shading. + + + + + (Optional) An array of four numbers giving the left, bottom, right, and top coordinates, + respectively, of the shading’s bounding box. The coordinates are interpreted in the + shading’s target coordinate space. If present, this bounding box is applied as a temporary + clipping boundary when the shading is painted, in addition to the current clipping path + and any other clipping boundaries in effect at that time. + + + + + (Optional) A flag indicating whether to filter the shading function to prevent aliasing + artifacts. The shading operators sample shading functions at a rate determined by the + resolution of the output device. Aliasing can occur if the function is not smooth—that + is, if it has a high spatial frequency relative to the sampling rate. Anti-aliasing can + be computationally expensive and is usually unnecessary, since most shading functions + are smooth enough or are sampled at a high enough frequency to avoid aliasing effects. + Anti-aliasing may not be implemented on some output devices, in which case this flag + is ignored. + Default value: false. + + + + + (Required) An array of four numbers [x0 y0 x1 y1] specifying the starting and + ending coordinates of the axis, expressed in the shading’s target coordinate space. + + + + + (Optional) An array of two numbers [t0 t1] specifying the limiting values of a + parametric variable t. The variable is considered to vary linearly between these + two values as the color gradient varies between the starting and ending points of + the axis. The variable t becomes the input argument to the color function(s). + Default value: [0.0 1.0]. + + + + + (Required) A 1-in, n-out function or an array of n 1-in, 1-out functions (where n + is the number of color components in the shading dictionary’s color space). The + function(s) are called with values of the parametric variable t in the domain defined + by the Domain entry. Each function’s domain must be a superset of that of the shading + dictionary. If the value returned by the function for a given color component is out + of range, it is adjusted to the nearest valid value. + + + + + (Optional) An array of two boolean values specifying whether to extend the shading + beyond the starting and ending points of the axis, respectively. + Default value: [false false]. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a shading pattern dictionary. + + + + + Initializes a new instance of the class. + + + + + Setups the shading pattern from the specified brush. + + + + + Common keys for all streams. + + + + + (Optional) The type of PDF object that this dictionary describes; if present, + must be Pattern for a pattern dictionary. + + + + + (Required) A code identifying the type of pattern that this dictionary describes; + must be 2 for a shading pattern. + + + + + (Required) A shading object (see below) defining the shading pattern’s gradient fill. + + + + + (Optional) An array of six numbers specifying the pattern matrix. + Default value: the identity matrix [1 0 0 1 0 0]. + + + + + (Optional) A graphics state parameter dictionary containing graphics state parameters + to be put into effect temporarily while the shading pattern is painted. Any parameters + that are not so specified are inherited from the graphics state that was in effect + at the beginning of the content stream in which the pattern is defined as a resource. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a PDF soft mask. + + + + + Initializes a new instance of the class. + + The document that owns the object. + + + + Predefined keys of this dictionary. + + + + + (Optional) The type of PDF object that this dictionary describes; + if present, must be Mask for a soft-mask dictionary. + + + + + (Required) A subtype specifying the method to be used in deriving the mask values + from the transparency group specified by the G entry: + Alpha: Use the group’s computed alpha, disregarding its color. + Luminosity: Convert the group’s computed color to a single-component luminosity value. + + + + + (Required) A transparency group XObject to be used as the source of alpha + or color values for deriving the mask. If the subtype S is Luminosity, the + group attributes dictionary must contain a CS entry defining the color space + in which the compositing computation is to be performed. + + + + + (Optional) An array of component values specifying the color to be used + as the backdrop against which to composite the transparency group XObject G. + This entry is consulted only if the subtype S is Luminosity. The array consists of + n numbers, where n is the number of components in the color space specified + by the CS entry in the group attributes dictionary. + Default value: the color space’s initial value, representing black. + + + + + (Optional) A function object specifying the transfer function to be used in + deriving the mask values. The function accepts one input, the computed + group alpha or luminosity (depending on the value of the subtype S), and + returns one output, the resulting mask value. Both the input and output + must be in the range 0.0 to 1.0; if the computed output falls outside this + range, it is forced to the nearest valid value. The name Identity may be + specified in place of a function object to designate the identity function. + Default value: Identity. + + + + + Represents a tiling pattern dictionary. + + + + + Initializes a new instance of the class. + + + + + Common keys for all streams. + + + + + (Optional) The type of PDF object that this dictionary describes; if present, + must be Pattern for a pattern dictionary. + + + + + (Required) A code identifying the type of pattern that this dictionary describes; + must be 1 for a tiling pattern. + + + + + (Required) A code that determines how the color of the pattern cell is to be specified: + 1: Colored tiling pattern. The pattern’s content stream specifies the colors used to + paint the pattern cell. When the content stream begins execution, the current color + is the one that was initially in effect in the pattern’s parent content stream. + 2: Uncolored tiling pattern. The pattern’s content stream does not specify any color + information. Instead, the entire pattern cell is painted with a separately specified color + each time the pattern is used. Essentially, the content stream describes a stencil + through which the current color is to be poured. The content stream must not invoke + operators that specify colors or other color-related parameters in the graphics state; + otherwise, an error occurs. The content stream may paint an image mask, however, + since it does not specify any color information. + + + + + (Required) A code that controls adjustments to the spacing of tiles relative to the device + pixel grid: + 1: Constant spacing. Pattern cells are spaced consistently—that is, by a multiple of a + device pixel. To achieve this, the application may need to distort the pattern cell slightly + by making small adjustments to XStep, YStep, and the transformation matrix. The amount + of distortion does not exceed 1 device pixel. + 2: No distortion. The pattern cell is not distorted, but the spacing between pattern cells + may vary by as much as 1 device pixel, both horizontally and vertically, when the pattern + is painted. This achieves the spacing requested by XStep and YStep on average but not + necessarily for each individual pattern cell. + 3: Constant spacing and faster tiling. Pattern cells are spaced consistently as in tiling + type 1 but with additional distortion permitted to enable a more efficient implementation. + + + + + (Required) An array of four numbers in the pattern coordinate system giving the + coordinates of the left, bottom, right, and top edges, respectively, of the pattern + cell’s bounding box. These boundaries are used to clip the pattern cell. + + + + + (Required) The desired horizontal spacing between pattern cells, measured in the + pattern coordinate system. + + + + + (Required) The desired vertical spacing between pattern cells, measured in the pattern + coordinate system. Note that XStep and YStep may differ from the dimensions of the + pattern cell implied by the BBox entry. This allows tiling with irregularly shaped figures. + XStep and YStep may be either positive or negative but not zero. + + + + + (Required) A resource dictionary containing all of the named resources required by + the pattern’s content stream (see Section 3.7.2, “Resource Dictionaries”). + + + + + (Optional) An array of six numbers specifying the pattern matrix. + Default value: the identity matrix [1 0 0 1 0 0]. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a ToUnicode map for composite font. + + + + + Gets or sets the CMap info. + + + + + Creates the ToUnicode map from the CMapInfo. + + + + + Represents a PDF trailer dictionary. Even though trailers are dictionaries they never have a cross + reference entry in PdfReferenceTable. + + + + + Initializes a new instance of PdfTrailer. + + + + + Initializes a new instance of the class from a . + + + + + (Required; must be an indirect reference) + The catalog dictionary for the PDF document contained in the file. + + + + + Gets the first or second document identifier. + + + + + Sets the first or second document identifier. + + + + + Creates and sets two identical new document IDs. + + + + + Gets the standard security handler. + + + + + Replace temporary irefs by their correct counterparts from the iref table. + + + + + Predefined keys of this dictionary. + + + + + (Required; must not be an indirect reference) The total number of entries in the file’s + cross-reference table, as defined by the combination of the original section and all + update sections. Equivalently, this value is 1 greater than the highest object number + used in the file. + Note: Any object in a cross-reference section whose number is greater than this value is + ignored and considered missing. + + + + + (Present only if the file has more than one cross-reference section; must not be an indirect + reference) The byte offset from the beginning of the file to the beginning of the previous + cross-reference section. + + + + + (Required; must be an indirect reference) The catalog dictionary for the PDF document + contained in the file. + + + + + (Required if document is encrypted; PDF 1.1) The document’s encryption dictionary. + + + + + (Optional; must be an indirect reference) The document’s information dictionary. + + + + + (Optional, but strongly recommended; PDF 1.1) An array of two strings constituting + a file identifier for the file. Although this entry is optional, + its absence might prevent the file from functioning in some workflows + that depend on files being uniquely identified. + + + + + (Optional) The byte offset from the beginning of the file of a cross-reference stream. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a PDF transparency group XObject. + + + + + Predefined keys of this dictionary. + + + + + (Sometimes required, as discussed below) + The group color space, which is used for the following purposes: + • As the color space into which colors are converted when painted into the group + • As the blending color space in which objects are composited within the group + • As the color space of the group as a whole when it in turn is painted as an object onto its backdrop + The group color space may be any device or CIE-based color space that + treats its components as independent additive or subtractive values in the + range 0.0 to 1.0, subject to the restrictions described in Section 7.2.3, “Blending Color Space.” + These restrictions exclude Lab and lightness-chromaticity ICCBased color spaces, + as well as the special color spaces Pattern, Indexed, Separation, and DeviceN. + Device color spaces are subject to remapping according to the DefaultGray, + DefaultRGB, and DefaultCMYK entries in the ColorSpace subdictionary of the + current resource dictionary. + Ordinarily, the CS entry is allowed only for isolated transparency groups + (those for which I, below, is true), and even then it is optional. However, + this entry is required in the group attributes dictionary for any transparency + group XObject that has no parent group or page from which to inherit — in + particular, one that is the value of the G entry in a soft-mask dictionary of + subtype Luminosity. + In addition, it is always permissible to specify CS in the group attributes + dictionary associated with a page object, even if I is false or absent. In the + normal case in which the page is imposed directly on the output medium, + the page group is effectively isolated regardless of the I value, and the + specified CS value is therefore honored. But if the page is in turn used as an + element of some other page and if the group is non-isolated, CS is ignored + and the color space is inherited from the actual backdrop with which the + page is composited. + Default value: the color space of the parent group or page into which this + transparency group is painted. (The parent’s color space in turn can be + either explicitly specified or inherited.) + + + + + (Optional) A flag specifying whether the transparency group is isolated. + If this flag is true, objects within the group are composited against a fully + transparent initial backdrop; if false, they are composited against the + group’s backdrop. + Default value: false. + In the group attributes dictionary for a page, the interpretation of this + entry is slightly altered. In the normal case in which the page is imposed + directly on the output medium, the page group is effectively isolated and + the specified I value is ignored. But if the page is in turn used as an + element of some other page, it is treated as if it were a transparency + group XObject; the I value is interpreted in the normal way to determine + whether the page group is isolated. + + + + + (Optional) A flag specifying whether the transparency group is a knockout + group. If this flag is false, later objects within the group are composited + with earlier ones with which they overlap; if true, they are composited with + the group’s initial backdrop and overwrite (“knock out”) any earlier + overlapping objects. + Default value: false. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a TrueType font. + + + + + Initializes a new instance of PdfTrueTypeFont from an XFont. + + + + + Prepares the object to get saved. + + + + + Predefined keys of this dictionary. + + + + + (Required) The type of PDF object that this dictionary describes; + must be Font for a font dictionary. + + + + + (Required) The type of font; must be TrueType for a TrueType font. + + + + + (Required in PDF 1.0; optional otherwise) The name by which this font is + referenced in the Font subdictionary of the current resource dictionary. + + + + + (Required) The PostScript name of the font. For Type 1 fonts, this is usually + the value of the FontName entry in the font program; for more information. + The Post-Script name of the font can be used to find the font’s definition in + the consumer application or its environment. It is also the name that is used when + printing to a PostScript output device. + + + + + (Required except for the standard 14 fonts) The first character code defined + in the font’s Widths array. + + + + + (Required except for the standard 14 fonts) The last character code defined + in the font’s Widths array. + + + + + (Required except for the standard 14 fonts; indirect reference preferred) + An array of (LastChar - FirstChar + 1) widths, each element being the glyph width + for the character code that equals FirstChar plus the array index. For character + codes outside the range FirstChar to LastChar, the value of MissingWidth from the + FontDescriptor entry for this font is used. The glyph widths are measured in units + in which 1000 units corresponds to 1 unit in text space. These widths must be + consistent with the actual widths given in the font program. + + + + + (Required except for the standard 14 fonts; must be an indirect reference) + A font descriptor describing the font’s metrics other than its glyph widths. + Note: For the standard 14 fonts, the entries FirstChar, LastChar, Widths, and + FontDescriptor must either all be present or all be absent. Ordinarily, they are + absent; specifying them enables a standard font to be overridden. + + + + + (Optional) A specification of the font’s character encoding if different from its + built-in encoding. The value of Encoding is either the name of a predefined + encoding (MacRomanEncoding, MacExpertEncoding, or WinAnsiEncoding, as described in + Appendix D) or an encoding dictionary that specifies differences from the font’s + built-in encoding or from a specified predefined encoding. + + + + + (Optional; PDF 1.2) A stream containing a CMap file that maps character + codes to Unicode values. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a composite font. Used for Unicode encoding. + + + + + Predefined keys of this dictionary. + + + + + (Required) The type of PDF object that this dictionary describes; + must be Font for a font dictionary. + + + + + (Required) The type of font; must be Type0 for a Type 0 font. + + + + + (Required) The PostScript name of the font. In principle, this is an arbitrary + name, since there is no font program associated directly with a Type 0 font + dictionary. The conventions described here ensure maximum compatibility + with existing Acrobat products. + If the descendant is a Type 0 CIDFont, this name should be the concatenation + of the CIDFont’s BaseFont name, a hyphen, and the CMap name given in the + Encoding entry (or the CMapName entry in the CMap). If the descendant is a + Type 2 CIDFont, this name should be the same as the CIDFont’s BaseFont name. + + + + + (Required) The name of a predefined CMap, or a stream containing a CMap + that maps character codes to font numbers and CIDs. If the descendant is a + Type 2 CIDFont whose associated TrueType font program is not embedded + in the PDF file, the Encoding entry must be a predefined CMap name. + + + + + (Required) A one-element array specifying the CIDFont dictionary that is the + descendant of this Type 0 font. + + + + + ((Optional) A stream containing a CMap file that maps character codes to + Unicode values. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Base class for all PDF external objects. + + + + + Initializes a new instance of the class. + + The document that owns the object. + + + + Predefined keys of this dictionary. + + + + + Specifies the annotation flags. + + + + + If set, do not display the annotation if it does not belong to one of the standard + annotation types and no annotation handler is available. If clear, display such an + unknown annotation using an appearance stream specified by its appearancedictionary, + if any. + + + + + (PDF 1.2) If set, do not display or print the annotation or allow it to interact + with the user, regardless of its annotation type or whether an annotation + handler is available. In cases where screen space is limited, the ability to hide + and show annotations selectively can be used in combination with appearance + streams to display auxiliary pop-up information similar in function to online + help systems. + + + + + (PDF 1.2) If set, print the annotation when the page is printed. If clear, never + print the annotation, regardless of whether it is displayed on the screen. This + can be useful, for example, for annotations representing interactive pushbuttons, + which would serve no meaningful purpose on the printed page. + + + + + (PDF 1.3) If set, do not scale the annotation’s appearance to match the magnification + of the page. The location of the annotation on the page (defined by the + upper-left corner of its annotation rectangle) remains fixed, regardless of the + page magnification. See below for further discussion. + + + + + (PDF 1.3) If set, do not rotate the annotation’s appearance to match the rotation + of the page. The upper-left corner of the annotation rectangle remains in a fixed + location on the page, regardless of the page rotation. See below for further discussion. + + + + + (PDF 1.3) If set, do not display the annotation on the screen or allow it to + interact with the user. The annotation may be printed (depending on the setting + of the Print flag) but should be considered hidden for purposes of on-screen + display and user interaction. + + + + + (PDF 1.3) If set, do not allow the annotation to interact with the user. The + annotation may be displayed or printed (depending on the settings of the + NoView and Print flags) but should not respond to mouse clicks or change its + appearance in response to mouse motions. + Note: This flag is ignored for widget annotations; its function is subsumed by + the ReadOnly flag of the associated form field. + + + + + (PDF 1.4) If set, do not allow the annotation to be deleted or its properties + (including position and size) to be modified by the user. However, this flag does + not restrict changes to the annotation’s contents, such as the value of a form + field. + + + + + (PDF 1.5) If set, invert the interpretation of the NoView flag for certain events. + A typical use is to have an annotation that appears only when a mouse cursor is + held over it. + + + + + Specifies the predefined icon names of rubber stamp annotations. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + Specifies the pre-defined icon names of text annotations. + + + + + A pre-defined annotation icon. + + + + + A pre-defined annotation icon. + + + + + A pre-defined annotation icon. + + + + + A pre-defined annotation icon. + + + + + A pre-defined annotation icon. + + + + + A pre-defined annotation icon. + + + + + A pre-defined annotation icon. + + + + + A pre-defined annotation icon. + + + + + Represents the base class of all annotations. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Removes an annotation from the document + + + + + + Gets or sets the annotation flags of this instance. + + + + + Gets or sets the PdfAnnotations object that this annotation belongs to. + + + + + Gets or sets the annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Gets or sets the text label to be displayed in the title bar of the annotation’s + pop-up window when open and active. By convention, this entry identifies + the user who added the annotation. + + + + + Gets or sets text representing a short description of the subject being + addressed by the annotation. + + + + + Gets or sets the text to be displayed for the annotation or, if this type of + annotation does not display text, an alternate description of the annotation’s + contents in human-readable form. + + + + + Gets or sets the color representing the components of the annotation. If the color + has an alpha value other than 1, it is ignored. Use property Opacity to get or set the + opacity of an annotation. + + + + + Gets or sets the constant opacity value to be used in painting the annotation. + This value applies to all visible elements of the annotation in its closed state + (including its background and border) but not to the popup window that appears when + the annotation is opened. + + + + + Predefined keys of this dictionary. + + + + + (Optional) The type of PDF object that this dictionary describes; if present, + must be Annot for an annotation dictionary. + + + + + (Required) The type of annotation that this dictionary describes. + + + + + (Required) The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + (Optional) Text to be displayed for the annotation or, if this type of annotation + does not display text, an alternate description of the annotation’s contents + in human-readable form. In either case, this text is useful when + extracting the document’s contents in support of accessibility to users with + disabilities or for other purposes. + + + + + (Optional; PDF 1.4) The annotation name, a text string uniquely identifying it + among all the annotations on its page. + + + + + (Optional; PDF 1.1) The date and time when the annotation was most recently + modified. The preferred format is a date string, but viewer applications should be + prepared to accept and display a string in any format. + + + + + (Optional; PDF 1.1) A set of flags specifying various characteristics of the annotation. + Default value: 0. + + + + + (Optional; PDF 1.2) A border style dictionary specifying the characteristics of + the annotation’s border. + + + + + (Optional; PDF 1.2) An appearance dictionary specifying how the annotation + is presented visually on the page. Individual annotation handlers may ignore + this entry and provide their own appearances. + + + + + (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) + The annotation’s appearance state, which selects the applicable appearance stream from + an appearance subdictionary. + + + + + (Optional) An array specifying the characteristics of the annotation’s border. + The border is specified as a rounded rectangle. + In PDF 1.0, the array consists of three numbers defining the horizontal corner + radius, vertical corner radius, and border width, all in default user space units. + If the corner radii are 0, the border has square (not rounded) corners; if the border + width is 0, no border is drawn. + In PDF 1.1, the array may have a fourth element, an optional dash array defining a + pattern of dashes and gaps to be used in drawing the border. The dash array is + specified in the same format as in the line dash pattern parameter of the graphics state. + For example, a Border value of [0 0 1 [3 2]] specifies a border 1 unit wide, with + square corners, drawn with 3-unit dashes alternating with 2-unit gaps. Note that no + dash phase is specified; the phase is assumed to be 0. + Note: In PDF 1.2 or later, this entry may be ignored in favor of the BS entry. + + + + + (Optional; PDF 1.1) An array of three numbers in the range 0.0 to 1.0, representing + the components of a color in the DeviceRGB color space. This color is used for the + following purposes: + • The background of the annotation’s icon when closed + • The title bar of the annotation’s pop-up window + • The border of a link annotation + + + + + (Required if the annotation is a structural content item; PDF 1.3) + The integer key of the annotation’s entry in the structural parent tree. + + + + + (Optional; PDF 1.1) An action to be performed when the annotation is activated. + Note: This entry is not permitted in link annotations if a Dest entry is present. + Also note that the A entry in movie annotations has a different meaning. + + + + + (Optional; PDF 1.1) The text label to be displayed in the title bar of the annotation’s + pop-up window when open and active. By convention, this entry identifies + the user who added the annotation. + + + + + (Optional; PDF 1.3) An indirect reference to a pop-up annotation for entering or + editing the text associated with this annotation. + + + + + (Optional; PDF 1.4) The constant opacity value to be used in painting the annotation. + This value applies to all visible elements of the annotation in its closed state + (including its background and border) but not to the popup window that appears when + the annotation is opened. + The specified value is not used if the annotation has an appearance stream; in that + case, the appearance stream must specify any transparency. (However, if the viewer + regenerates the annotation’s appearance stream, it may incorporate the CA value + into the stream’s content.) + The implicit blend mode is Normal. + Default value: 1.0. + + + + + (Optional; PDF 1.5) Text representing a short description of the subject being + addressed by the annotation. + + + + + Represents the annotations array of a page. + + + + + Adds the specified annotation. + + The annotation. + + + + Removes an annotation from the document. + + + + + Removes all the annotations from the current page. + + + + + Gets the number of annotations in this collection. + + + + + Gets the at the specified index. + + + + + Gets the page the annotations belongs to. + + + + + Fixes the /P element in imported annotation. + + + + + Returns an enumerator that iterates through a collection. + + + + + Represents a generic annotation. Used for annotation dictionaries unknown to PDFsharp. + + + + + Predefined keys of this dictionary. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a link annotation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Creates a link within the current document. + + The link area in default page coordinates. + The one-based destination page number. + + + + Creates a link to the web. + + + + + Creates a link to a file. + + + + + Predefined keys of this dictionary. + + + + + (Optional; not permitted if an A entry is present) A destination to be displayed + when the annotation is activated. + + + + + (Optional; PDF 1.2) The annotation’s highlighting mode, the visual effect to be + used when the mouse button is pressed or held down inside its active area: + N (None) No highlighting. + I (Invert) Invert the contents of the annotation rectangle. + O (Outline) Invert the annotation’s border. + P (Push) Display the annotation as if it were being pushed below the surface of the page. + Default value: I. + Note: In PDF 1.1, highlighting is always done by inverting colors inside the annotation rectangle. + + + + + (Optional; PDF 1.3) A URI action formerly associated with this annotation. When Web + Capture changes and annotation from a URI to a go-to action, it uses this entry to save + the data from the original URI action so that it can be changed back in case the target page for + the go-to action is subsequently deleted. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a rubber stamp annotation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + + + + Gets or sets an icon to be used in displaying the annotation. + + + + + Predefined keys of this dictionary. + + + + + (Optional) The name of an icon to be used in displaying the annotation. Viewer + applications should provide predefined icon appearances for at least the following + standard names: + Approved + AsIs + Confidential + Departmental + Draft + Experimental + Expired + Final + ForComment + ForPublicRelease + NotApproved + NotForPublicRelease + Sold + TopSecret + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a text annotation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag indicating whether the annotation should initially be displayed open. + + + + + Gets or sets an icon to be used in displaying the annotation. + + + + + Predefined keys of this dictionary. + + + + + (Optional) A flag specifying whether the annotation should initially be displayed open. + Default value: false (closed). + + + + + (Optional) The name of an icon to be used in displaying the annotation. Viewer + applications should provide predefined icon appearances for at least the following + standard names: + Comment + Help + Insert + Key + NewParagraph + Note + Paragraph + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a text annotation. + + + + + Predefined keys of this dictionary. + + + + + (Optional) The annotation’s highlighting mode, the visual effect to be used when + the mouse button is pressed or held down inside its active area: + N (None) No highlighting. + I (Invert) Invert the contents of the annotation rectangle. + O (Outline) Invert the annotation’s border. + P (Push) Display the annotation’s down appearance, if any. If no down appearance is defined, + offset the contents of the annotation rectangle to appear as if it were being pushed below + the surface of the page. + T (Toggle) Same as P (which is preferred). + A highlighting mode other than P overrides any down appearance defined for the annotation. + Default value: I. + + + + + (Optional) An appearance characteristics dictionary to be used in constructing a dynamic + appearance stream specifying the annotation’s visual presentation on the page. + The name MK for this entry is of historical significance only and has no direct meaning. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Base class for all PDF content stream objects. + + + + + Initializes a new instance of the class. + + + + + Creates a new object that is a copy of the current instance. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism. Must be overridden in derived classes. + + + + + + + + + + Represents a comment in a PDF content stream. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Gets or sets the comment text. + + + + + Returns a string that represents the current comment. + + + + + Represents a sequence of objects in a PDF content stream. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Adds the specified sequence. + + The sequence. + + + + Adds the specified value add the end of the sequence. + + + + + Removes all elements from the sequence. + + + + + Determines whether the specified value is in the sequence. + + + + + Returns the index of the specified value in the sequence or -1, if no such value is in the sequence. + + + + + Inserts the specified value in the sequence. + + + + + Removes the specified value from the sequence. + + + + + Removes the value at the specified index from the sequence. + + + + + Gets or sets a CObject at the specified index. + + + + + + Copies the elements of the sequence to the specified array. + + + + + Gets the number of elements contained in the sequence. + + + + + Returns an enumerator that iterates through the sequence. + + + + + Converts the sequence to a PDF content stream. + + + + + Returns a string containing all elements of the sequence. + + + + + Represents the base class for numerical objects in a PDF content stream. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Represents an integer value in a PDF content stream. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Gets or sets the value. + + + + + Returns a string that represents the current value. + + + + + Represents a real value in a PDF content stream. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Gets or sets the value. + + + + + Returns a string that represents the current value. + + + + + Type of the parsed string. + + + + + The string has the format "(...)". + + + + + The string has the format "<...>". + + + + + The string... TODO. + + + + + The string... TODO. + + + + + HACK: The string is the content of a dictionary. + Currently there is no parser for dictionaries in Content Streams. + + + + + Represents a string value in a PDF content stream. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Gets or sets the value. + + + + + Gets or sets the type of the content string. + + + + + Returns a string that represents the current value. + + + + + Represents a name in a PDF content stream. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name. + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Gets or sets the name. Names must start with a slash. + + + + + Returns a string that represents the current value. + + + + + Represents an array of objects in a PDF content stream. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Returns a string that represents the current value. + + + + + Represents an operator a PDF content stream. + + + + + Initializes a new instance of the class. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Gets or sets the name of the operator + + The name. + + + + Gets or sets the operands. + + The operands. + + + + Gets the operator description for this instance. + + + + + Returns a string that represents the current operator. + + + + + Specifies the group of operations the op-code belongs to. + + + + + + + + + + + + + + + The names of the op-codes. + + + + + Close, fill, and stroke path using nonzero winding number rule. + + + + + Fill and stroke path using nonzero winding number rule. + + + + + Close, fill, and stroke path using even-odd rule. + + + + + Fill and stroke path using even-odd rule. + + + + + (PDF 1.2) Begin marked-content sequence with property list. + + + + + Begin inline image object. + + + + + (PDF 1.2) Begin marked-content sequence. + + + + + Begin text object. + + + + + (PDF 1.1) Begin compatibility section. + + + + + (PDF 1.2) Define marked-content point with property list. + + + + + (PDF 1.2) End marked-content sequence. + + + + + (PDF 1.1) End compatibility section. + + + + + (PDF 1.2) Define marked-content point + + + + + Move to next line and show text. + + + + + Set word and character spacing, move to next line, and show text. + + + + + Represents a PDF content stream operator description. + + + + + Initializes a new instance of the class. + + The name. + The enum value of the operator. + The number of operands. + The postscript equivalent, or null, if no such operation exists. + The flags. + The description from Adobe PDF Reference. + + + + The name of the operator. + + + + + The enum value of the operator. + + + + + The number of operands. -1 indicates a variable number of operands. + + + + + The flags. + + + + + The postscript equivalent, or null, if no such operation exists. + + + + + The description from Adobe PDF Reference. + + + + + Static class with all PDF op-codes. + + + + + Operators from name. + + The name. + + + + Initializes the class. + + + + + Array of all OpCodes. + + + + + Character table by name. Same as PdfSharp.Pdf.IO.Chars. Not yet clear if necessary. + + + + + Lexical analyzer for PDF content files. Adobe specifies no grammar, but it seems that it + is a simple post-fix notation. + + + + + Initializes a new instance of the Lexer class. + + + + + Initializes a new instance of the Lexer class. + + + + + Reads the next token and returns its type. + + + + + Scans a comment line. (Not yet used, comments are skipped by lexer.) + + + + + Scans the bytes of an inline image. + NYI: Just scans over it. + + + + + Scans a name. + + + + + Scans an integer or real number. + + + + + Scans an operator. + + + + + Move current position one character further in content stream. + + + + + Resets the current token to the empty string. + + + + + Appends current character to the token and reads next one. + + + + + If the current character is not a white space, the function immediately returns it. + Otherwise the PDF cursor is moved forward to the first non-white space or EOF. + White spaces are NUL, HT, LF, FF, CR, and SP. + + + + + Gets or sets the current symbol. + + + + + Gets the current token. + + + + + Interprets current token as integer literal. + + + + + Interpret current token as real or integer literal. + + + + + Indicates whether the specified character is a content stream white-space character. + + + + + Indicates whether the specified character is an content operator character. + + + + + Indicates whether the specified character is a PDF delimiter character. + + + + + Gets the length of the content. + + + + + Represents the functionality for reading PDF content streams. + + + + + Reads the content stream(s) of the specified page. + + The page. + + + + Reads the specified content. + + The content. + + + + Reads the specified content. + + The content. + + + + Exception thrown by ContentReader. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Represents a writer for generation of PDF streams. + + + + + Writes the specified value to the PDF stream. + + + + + Gets or sets the indentation for a new indentation level. + + + + + Increases indent level. + + + + + Decreases indent level. + + + + + Gets an indent string of current indent. + + + + + Gets the underlying stream. + + + + + Provides the functionality to parse PDF content streams. + + + + + Parses whatever comes until the specified stop symbol is reached. + + + + + Reads the next symbol that must be the specified one. + + + + + Terminal symbols recognized by PDF content stream lexer. + + + + + Implements the ASCII85Decode filter. + + + + + Encodes the specified data. + + + + + Decodes the specified data. + + + + + Implements the ASCIIHexDecode filter. + + + + + Encodes the specified data. + + + + + Decodes the specified data. + + + + + Reserved for future extension. + + + + + Base class for all stream filters + + + + + When implemented in a derived class encodes the specified data. + + + + + Encodes a raw string. + + + + + When implemented in a derived class decodes the specified data. + + + + + Decodes the specified data. + + + + + Decodes to a raw string. + + + + + Decodes to a raw string. + + + + + Removes all white spaces from the data. The function assumes that the bytes are characters. + + + + + Applies standard filters to streams. + + + + + Gets the filter specified by the case sensitive name. + + + + + Gets the filter singleton. + + + + + Gets the filter singleton. + + + + + Gets the filter singleton. + + + + + Gets the filter singleton. + + + + + Encodes the data with the specified filter. + + + + + Encodes a raw string with the specified filter. + + + + + Decodes the data with the specified filter. + + + + + Decodes the data with the specified filter. + + + + + Decodes the data with the specified filter. + + + + + Decodes to a raw string with the specified filter. + + + + + Decodes to a raw string with the specified filter. + + + + + Implements the FlateDecode filter by wrapping SharpZipLib. + + + + + Encodes the specified data. + + + + + Encodes the specified data. + + + + + Decodes the specified data. + + + + + Implements the LzwDecode filter. + + + + + Throws a NotImplementedException because the obsolete LZW encoding is not supported by PDFsharp. + + + + + Decodes the specified data. + + + + + Initialize the dictionary. + + + + + Add a new entry to the Dictionary. + + + + + Returns the next set of bits. + + + + + An encoder for PDF AnsiEncoding. + + + + + Gets the byte count. + + + + + Gets the bytes. + + + + + Gets the character count. + + + + + Gets the chars. + + + + + When overridden in a derived class, calculates the maximum number of bytes produced by encoding the specified number of characters. + + The number of characters to encode. + + The maximum number of bytes produced by encoding the specified number of characters. + + + + + When overridden in a derived class, calculates the maximum number of characters produced by decoding the specified number of bytes. + + The number of bytes to decode. + + The maximum number of characters produced by decoding the specified number of bytes. + + + + + Indicates whether the specified Unicode character is available in the ANSI code page 1252. + + + + + Maps Unicode to ANSI code page 1252. + + + + + Maps WinAnsi to Unicode characters. + + + + + Helper functions for RGB and CMYK colors. + + + + + Checks whether a color mode and a color match. + + + + + Checks whether the color mode of a document and a color match. + + + + + Determines whether two colors are equal referring to their CMYK color values. + + + + + An encoder for PDF DocEncoding. + + + + + Converts WinAnsi to DocEncode characters. Based upon PDF Reference 1.6. + + + + + Groups a set of static encoding helper functions. + + + + + Gets the raw encoding. + + + + + Gets the raw Unicode encoding. + + + + + Gets the Windows 1252 (ANSI) encoding. + + + + + Gets the PDF DocEncoding encoding. + + + + + Gets the UNICODE little-endian encoding. + + + + + Converts a raw string into a raw string literal, possibly encrypted. + + + + + Converts a raw string into a raw string literal, possibly encrypted. + + + + + Converts a raw string into a raw hexadecimal string literal, possibly encrypted. + + + + + Converts a raw string into a raw hexadecimal string literal, possibly encrypted. + + + + + Converts the specified byte array into a byte array representing a string literal. + + The bytes of the string. + Indicates whether one or two bytes are one character. + Indicates whether to use Unicode prefix. + Indicates whether to create a hexadecimal string literal. + Encrypts the bytes if specified. + The PDF bytes. + + + + Converts WinAnsi to DocEncode characters. Incomplete, just maps € and some other characters. + + + + + ...because I always forget CultureInfo.InvariantCulture and wonder why Acrobat + cannot understand my German decimal separator... + + + + + Converts a float into a string with up to 3 decimal digits and a decimal point. + + + + + Converts an XColor into a string with up to 3 decimal digits and a decimal point. + + + + + Converts an XMatrix into a string with up to 4 decimal digits and a decimal point. + + + + + An encoder for raw strings. The raw encoding is simply the identity relation between + characters and bytes. PDFsharp internally works with raw encoded strings instead of + byte arrays because strings are much more handy than byte arrays. + + + Raw encoded strings represent an array of bytes. Therefore a character greater than + 255 is not valid in a raw encoded string. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters from the specified character array. + + The character array containing the set of characters to encode. + The index of the first character to encode. + The number of characters to encode. + + The number of bytes produced by encoding the specified characters. + + + + + When overridden in a derived class, encodes a set of characters from the specified character array into the specified byte array. + + The character array containing the set of characters to encode. + The index of the first character to encode. + The number of characters to encode. + The byte array to contain the resulting sequence of bytes. + The index at which to start writing the resulting sequence of bytes. + + The actual number of bytes written into . + + + + + When overridden in a derived class, calculates the number of characters produced by decoding a sequence of bytes from the specified byte array. + + The byte array containing the sequence of bytes to decode. + The index of the first byte to decode. + The number of bytes to decode. + + The number of characters produced by decoding the specified sequence of bytes. + + + + + When overridden in a derived class, decodes a sequence of bytes from the specified byte array into the specified character array. + + The byte array containing the sequence of bytes to decode. + The index of the first byte to decode. + The number of bytes to decode. + The character array to contain the resulting set of characters. + The index at which to start writing the resulting set of characters. + + The actual number of characters written into . + + + + + When overridden in a derived class, calculates the maximum number of bytes produced by encoding the specified number of characters. + + The number of characters to encode. + + The maximum number of bytes produced by encoding the specified number of characters. + + + + + When overridden in a derived class, calculates the maximum number of characters produced by decoding the specified number of bytes. + + The number of bytes to decode. + + The maximum number of characters produced by decoding the specified number of bytes. + + + + + An encoder for Unicode strings. + (That means, a character represents a glyph index.) + + + + + Provides a thread-local cache for large objects. + + + + + Maps path to document handle. + + + + + Character table by name. + + + + + The EOF marker. + + + + + The null byte. + + + + + The carriage return character (ignored by lexer). + + + + + The line feed character. + + + + + The bell character. + + + + + The backspace character. + + + + + The form feed character. + + + + + The horizontal tab character. + + + + + The vertical tab character. + + + + + The non-breakable space character (aka no-break space or non-breaking space). + + + + + The space character. + + + + + The double quote character. + + + + + The single quote character. + + + + + The left parenthesis. + + + + + The right parenthesis. + + + + + The left brace. + + + + + The right brace. + + + + + The left bracket. + + + + + The right bracket. + + + + + The less-than sign. + + + + + The greater-than sign. + + + + + The equal sign. + + + + + The period. + + + + + The semicolon. + + + + + The colon. + + + + + The slash. + + + + + The bar character. + + + + + The back slash. + + + + + The percent sign. + + + + + The dollar sign. + + + + + The at sign. + + + + + The number sign. + + + + + The question mark. + + + + + The hyphen. + + + + + The soft hyphen. + + + + + The currency sign. + + + + + Determines the type of the password. + + + + + Password is neither user nor owner password. + + + + + Password is user password. + + + + + Password is owner password. + + + + + Determines how a PDF document is opened. + + + + + The PDF stream is completely read into memory and can be modified. Pages can be deleted or + inserted, but it is not possible to extract pages. This mode is useful for modifying an + existing PDF document. + + + + + The PDF stream is opened for importing pages from it. A document opened in this mode cannot + be modified. + + + + + The PDF stream is completely read into memory, but cannot be modified. This mode preserves the + original internal structure of the document and is useful for analyzing existing PDF files. + + + + + The PDF stream is partially read for information purposes only. The only valid operation is to + call the Info property at the imported document. This option is very fast and needs less memory + and is e.g. useful for browsing information about a collection of PDF documents in a user interface. + + + + + Determines how the PDF output stream is formatted. Even all formats create valid PDF files, + only Compact or Standard should be used for production purposes. + + + + + The PDF stream contains no unnecessary characters. This is default in release build. + + + + + The PDF stream contains some superfluous line feeds, but is more readable. + + + + + The PDF stream is indented to reflect the nesting levels of the objects. This is useful + for analyzing PDF files, but increases the size of the file significantly. + + + + + The PDF stream is indented to reflect the nesting levels of the objects and contains additional + information about the PDFsharp objects. Furthermore content streams are not deflated. This + is useful for debugging purposes only and increases the size of the file significantly. + + + + + INTERNAL USE ONLY. + + + + + If only this flag is specified the result is a regular valid PDF stream. + + + + + Omit writing stream data. For debugging purposes only. + With this option the result is not valid PDF. + + + + + Omit inflate filter. For debugging purposes only. + + + + + Terminal symbols recognized by lexer. + + + + + Lexical analyzer for PDF files. Technically a PDF file is a stream of bytes. Some chunks + of bytes represent strings in several encodings. The actual encoding depends on the + context where the string is used. Therefore the bytes are 'raw encoded' into characters, + i.e. a character or token read by the lexer has always character values in the range from + 0 to 255. + + + + + Initializes a new instance of the Lexer class. + + + + + Gets or sets the position within the PDF stream. + + + + + Reads the next token and returns its type. If the token starts with a digit, the parameter + testReference specifies how to treat it. If it is false, the lexer scans for a single integer. + If it is true, the lexer checks if the digit is the prefix of a reference. If it is a reference, + the token is set to the object ID followed by the generation number separated by a blank + (the 'R' is omitted from the token). + + + + + Reads the raw content of a stream. + + + + + Reads a string in raw encoding. + + + + + Scans a comment line. + + + + + Scans a name. + + + + + Scans a number. + + + + + Scans a keyword. + + + + + Scans a literal string, contained between "(" and ")". + + + + + Move current position one character further in PDF stream. + + + + + Appends current character to the token and reads next one. + + + + + If the current character is not a white space, the function immediately returns it. + Otherwise the PDF cursor is moved forward to the first non-white space or EOF. + White spaces are NUL, HT, LF, FF, CR, and SP. + + + + + Gets the current symbol. + + + + + Gets the current token. + + + + + Interprets current token as boolean literal. + + + + + Interprets current token as integer literal. + + + + + Interprets current token as unsigned integer literal. + + + + + Interprets current token as real or integer literal. + + + + + Interprets current token as object ID. + + + + + Indicates whether the specified character is a PDF white-space character. + + + + + Indicates whether the specified character is a PDF delimiter character. + + + + + Gets the length of the PDF output. + + + + + Provides the functionality to parse PDF documents. + + + + + Sets PDF input stream position to the specified object. + + + + + Reads PDF object from input stream. + + Either the instance of a derived type or null. If it is null + an appropriate object is created. + The address of the object. + If true, specifies that all indirect objects + are included recursively. + If true, the objects is parsed from an object stream. + + + + Reads the stream of a dictionary. + + + + + Parses whatever comes until the specified stop symbol is reached. + + + + + Reads the object ID and the generation and sets it into the specified object. + + + + + Reads the next symbol that must be the specified one. + + + + + Reads the next token that must be the specified one. + + + + + Reads a name from the PDF data stream. The preceding slash is part of the result string. + + + + + Reads an integer value directly from the PDF data stream. + + + + + Reads an object from the PDF input stream using the default parser. + + + + + Reads the irefs from the compressed object with the specified index in the object stream + of the object with the specified object id. + + + + + Reads the compressed object with the specified index in the object stream + of the object with the specified object id. + + + + + Reads the compressed object with the specified number at the given offset. + The parser must be initialized with the stream an object stream object. + + + + + Reads the object stream header as pairs of integers from the beginning of the + stream of an object stream. Parameter first is the value of the First entry of + the object stream object. + + + + + Reads the cross-reference table(s) and their trailer dictionary or + cross-reference streams. + + + + + Reads cross reference table(s) and trailer(s). + + + + + Checks the x reference table entry. Returns true if everything is correct. + Return false if the keyword "obj" was found, but ID or Generation are incorrect. + Throws an exception otherwise. + + The position where the object is supposed to be. + The ID from the XRef table. + The generation from the XRef table. + The identifier found in the PDF file. + The generation found in the PDF file. + + + + + Reads cross reference stream(s). + + + + + Parses a PDF date string. + + + + + Encapsulates the arguments of the PdfPasswordProvider delegate. + + + + + Sets the password to open the document with. + + + + + When set to true the PdfReader.Open function returns null indicating that no PdfDocument was created. + + + + + A delegated used by the PdfReader.Open function to retrieve a password if the document is protected. + + + + + Represents the functionality for reading PDF documents. + + + + + Determines whether the file specified by its path is a PDF file by inspecting the first eight + bytes of the data. If the file header has the form «%PDF-x.y» the function returns the version + number as integer (e.g. 14 for PDF 1.4). If the file header is invalid or inaccessible + for any reason, 0 is returned. The function never throws an exception. + + + + + Determines whether the specified stream is a PDF file by inspecting the first eight + bytes of the data. If the data begins with «%PDF-x.y» the function returns the version + number as integer (e.g. 14 for PDF 1.4). If the data is invalid or inaccessible + for any reason, 0 is returned. The function never throws an exception. + + + + + Determines whether the specified data is a PDF file by inspecting the first eight + bytes of the data. If the data begins with «%PDF-x.y» the function returns the version + number as integer (e.g. 14 for PDF 1.4). If the data is invalid or inaccessible + for any reason, 0 is returned. The function never throws an exception. + + + + + Implements scanning the PDF file version. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Exception thrown by PdfReader. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Represents a writer for generation of PDF streams. + + + + + Gets or sets the kind of layout. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Begins a direct or indirect dictionary or array. + + + + + Ends a direct or indirect dictionary or array. + + + + + Writes the stream of the specified dictionary. + + + + + Gets or sets the indentation for a new indentation level. + + + + + Increases indent level. + + + + + Decreases indent level. + + + + + Gets an indent string of current indent. + + + + + Gets the underlying stream. + + + + + Represents the stack for the shift-reduce parser. It seems that it is only needed for + reduction of indirect references. + + + + + Gets the stack pointer index. + + + + + Gets the value at the specified index. Valid index is in range 0 up to sp-1. + + + + + Gets an item relative to the current stack pointer. The index must be a negative value (-1, -2, etc.). + + + + + Gets an item relative to the current stack pointer. The index must be a negative value (-1, -2, etc.). + + + + + Pushes the specified item onto the stack. + + + + + Replaces the last 'count' items with the specified item. + + + + + Replaces the last 'count' items with the specified item. + + + + + The stack pointer index. Points to the next free item. + + + + + An array representing the stack. + + + + + Specifies the security level of the PDF document. + + + + + Document is not protected. + + + + + Document is protected with 40-bit security. This option is for compatibility with + Acrobat 3 and 4 only. Use Encrypted128Bit whenever possible. + + + + + Document is protected with 128-bit security. + + + + + Specifies which operations are permitted when the document is opened with user access. + + + + + Permits everything. This is the default value. + + + + + Represents the base of all security handlers. + + + + + Predefined keys of this dictionary. + + + + + (Required) The name of the preferred security handler for this document. Typically, + it is the name of the security handler that was used to encrypt the document. If + SubFilter is not present, only this security handler should be used when opening + the document. If it is present, consumer applications can use any security handler + that implements the format specified by SubFilter. + Standard is the name of the built-in password-based security handler. Names for other + security handlers can be registered by using the procedure described in Appendix E. + + + + + (Optional; PDF 1.3) A name that completely specifies the format and interpretation of + the contents of the encryption dictionary. It is needed to allow security handlers other + than the one specified by Filter to decrypt the document. If this entry is absent, other + security handlers should not be allowed to decrypt the document. + + + + + (Optional but strongly recommended) A code specifying the algorithm to be used in encrypting + and decrypting the document: + 0 An algorithm that is undocumented and no longer supported, and whose use is strongly discouraged. + 1 Algorithm 3.1, with an encryption key length of 40 bits. + 2 (PDF 1.4) Algorithm 3.1, but permitting encryption key lengths greater than 40 bits. + 3 (PDF 1.4) An unpublished algorithm that permits encryption key lengths ranging from 40 to 128 bits. + 4 (PDF 1.5) The security handler defines the use of encryption and decryption in the document, using + the rules specified by the CF, StmF, and StrF entries. + The default value if this entry is omitted is 0, but a value of 1 or greater is strongly recommended. + + + + + (Optional; PDF 1.4; only if V is 2 or 3) The length of the encryption key, in bits. + The value must be a multiple of 8, in the range 40 to 128. Default value: 40. + + + + + (Optional; meaningful only when the value of V is 4; PDF 1.5) + A dictionary whose keys are crypt filter names and whose values are the corresponding + crypt filter dictionaries. Every crypt filter used in the document must have an entry + in this dictionary, except for the standard crypt filter names. + + + + + (Optional; meaningful only when the value of V is 4; PDF 1.5) + The name of the crypt filter that is used by default when decrypting streams. + The name must be a key in the CF dictionary or a standard crypt filter name. All streams + in the document, except for cross-reference streams or streams that have a Crypt entry in + their Filter array, are decrypted by the security handler, using this crypt filter. + Default value: Identity. + + + + + (Optional; meaningful only when the value of V is 4; PDF 1.) + The name of the crypt filter that is used when decrypting all strings in the document. + The name must be a key in the CF dictionary or a standard crypt filter name. + Default value: Identity. + + + + + (Optional; meaningful only when the value of V is 4; PDF 1.6) + The name of the crypt filter that should be used by default when encrypting embedded + file streams; it must correspond to a key in the CF dictionary or a standard crypt + filter name. This entry is provided by the security handler. Applications should respect + this value when encrypting embedded files, except for embedded file streams that have + their own crypt filter specifier. If this entry is not present, and the embedded file + stream does not contain a crypt filter specifier, the stream should be encrypted using + the default stream crypt filter specified by StmF. + + + + + Encapsulates access to the security settings of a PDF document. + + + + + Indicates whether the granted access to the document is 'owner permission'. Returns true if the document + is unprotected or was opened with the owner password. Returns false if the document was opened with the + user password. + + + + + Gets or sets the document security level. If you set the security level to anything but PdfDocumentSecurityLevel.None + you must also set a user and/or an owner password. Otherwise saving the document will fail. + + + + + Sets the user password of the document. Setting a password automatically sets the + PdfDocumentSecurityLevel to PdfDocumentSecurityLevel.Encrypted128Bit if its current + value is PdfDocumentSecurityLevel.None. + + + + + Sets the owner password of the document. Setting a password automatically sets the + PdfDocumentSecurityLevel to PdfDocumentSecurityLevel.Encrypted128Bit if its current + value is PdfDocumentSecurityLevel.None. + + + + + Determines whether the document can be saved. + + + + + Permits printing the document. Should be used in conjunction with PermitFullQualityPrint. + + + + + Permits modifying the document. + + + + + Permits content copying or extraction. + + + + + Permits commenting the document. + + + + + Permits filling of form fields. + + + + + Permits content extraction for accessibility. + + + + + Permits to insert, rotate, or delete pages and create bookmarks or thumbnail images even if + PermitModifyDocument is not set. + + + + + Permits to print in high quality. insert, rotate, or delete pages and create bookmarks or thumbnail images + even if PermitModifyDocument is not set. + + + + + PdfStandardSecurityHandler is the only implemented handler. + + + + + Represents the standard PDF security handler. + + + + + Sets the user password of the document. Setting a password automatically sets the + PdfDocumentSecurityLevel to PdfDocumentSecurityLevel.Encrypted128Bit if its current + value is PdfDocumentSecurityLevel.None. + + + + + Sets the owner password of the document. Setting a password automatically sets the + PdfDocumentSecurityLevel to PdfDocumentSecurityLevel.Encrypted128Bit if its current + value is PdfDocumentSecurityLevel.None. + + + + + Gets or sets the user access permission represented as an integer in the P key. + + + + + Encrypts the whole document. + + + + + Encrypts an indirect object. + + + + + Encrypts a dictionary. + + + + + Encrypts an array. + + + + + Encrypts a string. + + + + + Encrypts an array. + + + + + Checks the password. + + Password or null if no password is provided. + + + + Pads a password to a 32 byte array. + + + + + Generates the user key based on the padded user password. + + + + + Generates the user key based on the padded owner password. + + + + + Computes the padded user password from the padded owner password. + + + + + Computes the encryption key. + + + + + Computes the user key. + + + + + Prepare the encryption key. + + + + + Prepare the encryption key. + + + + + Prepare the encryption key. + + + + + Encrypts the data. + + + + + Encrypts the data. + + + + + Encrypts the data. + + + + + Encrypts the data. + + + + + Checks whether the calculated key correct. + + + + + Set the hash key for the specified object. + + + + + Prepares the security handler for encrypting the document. + + + + + The global encryption key. + + + + + The message digest algorithm MD5. + + + + + Bytes used for RC4 encryption. + + + + + The encryption key for the owner. + + + + + The encryption key for the user. + + + + + The encryption key for a particular object/generation. + + + + + The encryption key length for a particular object/generation. + + + + + Predefined keys of this dictionary. + + + + + (Required) A number specifying which revision of the standard security handler + should be used to interpret this dictionary: + • 2 if the document is encrypted with a V value less than 2 and does not have any of + the access permissions set (by means of the P entry, below) that are designated + "Revision 3 or greater". + • 3 if the document is encrypted with a V value of 2 or 3, or has any "Revision 3 or + greater" access permissions set. + • 4 if the document is encrypted with a V value of 4 + + + + + (Required) A 32-byte string, based on both the owner and user passwords, that is + used in computing the encryption key and in determining whether a valid owner + password was entered. + + + + + (Required) A 32-byte string, based on the user password, that is used in determining + whether to prompt the user for a password and, if so, whether a valid user or owner + password was entered. + + + + + (Required) A set of flags specifying which operations are permitted when the document + is opened with user access. + + + + + (Optional; meaningful only when the value of V is 4; PDF 1.5) Indicates whether + the document-level metadata stream is to be encrypted. Applications should respect this value. + Default value: true. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Specifies the type of a key's value in a dictionary. + + + + + Summary description for KeyInfo. + + + + + Identifies the state of the document + + + + + The document was created from scratch. + + + + + The document was created by opening an existing PDF file. + + + + + The document is disposed. + + + + + Sets the mode for the Deflater (FlateEncoder). + + + + + The default mode. + + + + + Fast encoding, but larger PDF files. + + + + + Best compression, but takes more time. + + + + + Specifies whether to compress JPEG images with the FlateDecode filter. + + + + + PDFsharp will try FlateDecode and use it if it leads to a reduction in PDF file size. + When FlateEncodeMode is set to BestCompression, this is more likely to reduce the file size, + but it takes considerably more time to create the PDF file. + + + + + PDFsharp will never use FlateDecode - files may be a few bytes larger, but file creation is faster. + + + + + PDFsharp will always use FlateDecode, even if this leads to larger files; + this option is meant for testing purposes only and should not be used for production code. + + + + + Specifies what color model is used in a PDF document. + + + + + All color values are written as specified in the XColor objects they come from. + + + + + All colors are converted to RGB. + + + + + All colors are converted to CMYK. + + + + + This class is undocumented and may change or drop in future releases. + + + + + Use document default to determine compression. + + + + + Leave custom values uncompressed. + + + + + Compress custom values using FlateDecode. + + + + + Specifies the embedding options of an XFont when converted into PDF. + Font embedding is not optional anymore. So Always is the only option. + + + + + All fonts are embedded. + + + + + Fonts are not embedded. This is not an option anymore. + + + + + Unicode fonts are embedded, WinAnsi fonts are not embedded. + + + + + Not yet implemented. + + + + + Specifies the encoding schema used for an XFont when converted into PDF. + + + + + Cause a font to use Windows-1252 encoding to encode text rendered with this font. + Same as Windows1252 encoding. + + + + + Cause a font to use Unicode encoding to encode text rendered with this font. + + + + + Unicode encoding. + + + + + Specifies the type of a page destination in outline items, annotations, or actions.. + + + + + Display the page with the coordinates (left, top) positioned at the upper-left corner of + the window and the contents of the page magnified by the factor zoom. + + + + + Display the page with its contents magnified just enough to fit the + entire page within the window both horizontally and vertically. + + + + + Display the page with the vertical coordinate top positioned at the top edge of + the window and the contents of the page magnified just enough to fit the entire + width of the page within the window. + + + + + Display the page with the horizontal coordinate left positioned at the left edge of + the window and the contents of the page magnified just enough to fit the entire + height of the page within the window. + + + + + Display the page designated by page, with its contents magnified just enough to + fit the rectangle specified by the coordinates left, bottom, right, and topentirely + within the window both horizontally and vertically. If the required horizontal and + vertical magnification factors are different, use the smaller of the two, centering + the rectangle within the window in the other dimension. A null value for any of + the parameters may result in unpredictable behavior. + + + + + Display the page with its contents magnified just enough to fit the rectangle specified + by the coordinates left, bottom, right, and topentirely within the window both + horizontally and vertically. + + + + + Display the page with the vertical coordinate top positioned at the top edge of + the window and the contents of the page magnified just enough to fit the entire + width of its bounding box within the window. + + + + + Display the page with the horizontal coordinate left positioned at the left edge of + the window and the contents of the page magnified just enough to fit the entire + height of its bounding box within the window. + + + + + Specifies the font style for the outline (bookmark) text. + + + + + Outline text is displayed using a regular font. + + + + + Outline text is displayed using an italic font. + + + + + Outline text is displayed using a bold font. + + + + + Outline text is displayed using a bold and italic font. + + + + + Specifies the page layout to be used by a viewer when the document is opened. + + + + + Display one page at a time. + + + + + Display the pages in one column. + + + + + Display the pages in two columns, with oddnumbered pages on the left. + + + + + Display the pages in two columns, with oddnumbered pages on the right. + + + + + (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the left. + + + + + (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the right. + + + + + Specifies how the document should be displayed by a viewer when opened. + + + + + Neither document outline nor thumbnail images visible. + + + + + Document outline visible. + + + + + Thumbnail images visible. + + + + + Full-screen mode, with no menu bar, windowcontrols, or any other window visible. + + + + + (PDF 1.5) Optional content group panel visible. + + + + + (PDF 1.6) Attachments panel visible. + + + + + Specifies how the document should be displayed by a viewer when opened. + + + + + Left to right. + + + + + Right to left (including vertical writing systems, such as Chinese, Japanese, and Korean) + + + + + Specifies how text strings are encoded. A text string is any text used outside of a page content + stream, e.g. document information, outline text, annotation text etc. + + + + + Specifies that hypertext uses PDF DocEncoding. + + + + + Specifies that hypertext uses unicode encoding. + + + + + Base class for all dictionary Keys classes. + + + + + Holds information about the value of a key in a dictionary. This information is used to create + and interpret this value. + + + + + Initializes a new instance of KeyDescriptor from the specified attribute during a KeysMeta + initializes itself using reflection. + + + + + Gets or sets the PDF version starting with the availability of the described key. + + + + + Returns the type of the object to be created as value for the described key. + + + + + Contains meta information about all keys of a PDF dictionary. + + + + + Gets the KeyDescriptor of the specified key, or null if no such descriptor exits. + + + + + Represents a PDF array object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + + + + Initializes a new instance of the class. + + The document. + The items. + + + + Initializes a new instance from an existing dictionary. Used for object type transformation. + + The array. + + + + Creates a copy of this array. Direct elements are deep copied. + Indirect references are not modified. + + + + + Implements the copy mechanism. + + + + + Gets the collection containing the elements of this object. + + + + + Returns an enumerator that iterates through a collection. + + + + + Returns a string with the content of this object in a readable form. Useful for debugging purposes only. + + + + + Represents the elements of an PdfArray. + + + + + Creates a shallow copy of this object. + + + + + Moves this instance to another array during object type transformation. + + + + + Converts the specified value to boolean. + If the value does not exist, the function returns false. + If the value is not convertible, the function throws an InvalidCastException. + If the index is out of range, the function throws an ArgumentOutOfRangeException. + + + + + Converts the specified value to integer. + If the value does not exist, the function returns 0. + If the value is not convertible, the function throws an InvalidCastException. + If the index is out of range, the function throws an ArgumentOutOfRangeException. + + + + + Converts the specified value to double. + If the value does not exist, the function returns 0. + If the value is not convertible, the function throws an InvalidCastException. + If the index is out of range, the function throws an ArgumentOutOfRangeException. + + + + + Converts the specified value to double?. + If the value does not exist, the function returns null. + If the value is not convertible, the function throws an InvalidCastException. + If the index is out of range, the function throws an ArgumentOutOfRangeException. + + + + + Converts the specified value to string. + If the value does not exist, the function returns the empty string. + If the value is not convertible, the function throws an InvalidCastException. + If the index is out of range, the function throws an ArgumentOutOfRangeException. + + + + + Converts the specified value to a name. + If the value does not exist, the function returns the empty string. + If the value is not convertible, the function throws an InvalidCastException. + If the index is out of range, the function throws an ArgumentOutOfRangeException. + + + + + Returns the indirect object if the value at the specified index is a PdfReference. + + + + + Gets the PdfObject with the specified index, or null, if no such object exists. If the index refers to + a reference, the referenced PdfObject is returned. + + + + + Gets the PdfArray with the specified index, or null, if no such object exists. If the index refers to + a reference, the referenced PdfArray is returned. + + + + + Gets the PdfArray with the specified index, or null, if no such object exists. If the index refers to + a reference, the referenced PdfArray is returned. + + + + + Gets the PdfReference with the specified index, or null, if no such object exists. + + + + + Gets all items of this array. + + + + + Returns false. + + + + + Gets or sets an item at the specified index. + + + + + + Removes the item at the specified index. + + + + + Removes the first occurrence of a specific object from the array/>. + + + + + Inserts the item the specified index. + + + + + Determines whether the specified value is in the array. + + + + + Removes all items from the array. + + + + + Gets the index of the specified item. + + + + + Appends the specified object to the array. + + + + + Returns false. + + + + + Returns false. + + + + + Gets the number of elements in the array. + + + + + Copies the elements of the array to the specified array. + + + + + The current implementation return null. + + + + + Returns an enumerator that iterates through the array. + + + + + The elements of the array. + + + + + The array this objects belongs to. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Represents a direct boolean value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the value of this instance as boolean value. + + + + + A pre-defined value that represents true. + + + + + A pre-defined value that represents false. + + + + + Returns 'false' or 'true'. + + + + + Writes 'true' or 'false'. + + + + + Represents an indirect boolean value. This type is not used by PDFsharp. If it is imported from + an external PDF file, the value is converted into a direct object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the value of this instance as boolean value. + + + + + Returns "false" or "true". + + + + + Writes the keyword «false» or «true». + + + + + This class is intended for empira internal use only and may change or drop in future releases. + + + + + This function is intended for empira internal use only. + + + + + This function is intended for empira internal use only. + + + + + This property is intended for empira internal use only. + + + + + This property is intended for empira internal use only. + + + + + This class is intended for empira internal use only and may change or drop in future releases. + + + + + This function is intended for empira internal use only. + + + + + This function is intended for empira internal use only. + + + + + This function is intended for empira internal use only. + + + + + This function is intended for empira internal use only. + + + + + Represents a direct date value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the value as DateTime. + + + + + Returns the value in the PDF date format. + + + + + Writes the value in the PDF date format. + + + + + Value creation flags. Specifies whether and how a value that does not exist is created. + + + + + Don't create the value. + + + + + Create the value as direct object. + + + + + Create the value as indirect object. + + + + + Represents a PDF dictionary object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + + + + Initializes a new instance from an existing dictionary. Used for object type transformation. + + + + + Creates a copy of this dictionary. Direct values are deep copied. Indirect references are not + modified. + + + + + This function is useful for importing objects from external documents. The returned object is not + yet complete. irefs refer to external objects and directed objects are cloned but their document + property is null. A cloned dictionary or array needs a 'fix-up' to be a valid object. + + + + + Gets the dictionary containing the elements of this dictionary. + + + + + The elements of the dictionary. + + + + + Returns an enumerator that iterates through the dictionary elements. + + + + + Returns a string with the content of this object in a readable form. Useful for debugging purposes only. + + + + + Writes a key/value pair of this dictionary. This function is intended to be overridden + in derived classes. + + + + + Writes the stream of this dictionary. This function is intended to be overridden + in a derived class. + + + + + Gets or sets the PDF stream belonging to this dictionary. Returns null if the dictionary has + no stream. To create the stream, call the CreateStream function. + + + + + Creates the stream of this dictionary and initializes it with the specified byte array. + The function must not be called if the dictionary already has a stream. + + + + + When overridden in a derived class, gets the KeysMeta of this dictionary type. + + + + + Represents the interface to the elements of a PDF dictionary. + + + + + Creates a shallow copy of this object. The clone is not owned by a dictionary anymore. + + + + + Moves this instance to another dictionary during object type transformation. + + + + + Gets the dictionary to which this elements object belongs to. + + + + + Converts the specified value to boolean. + If the value does not exist, the function returns false. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Converts the specified value to boolean. + If the value does not exist, the function returns false. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Sets the entry to a direct boolean value. + + + + + Converts the specified value to integer. + If the value does not exist, the function returns 0. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Converts the specified value to integer. + If the value does not exist, the function returns 0. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Sets the entry to a direct integer value. + + + + + Converts the specified value to double. + If the value does not exist, the function returns 0. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Converts the specified value to double. + If the value does not exist, the function returns 0. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Sets the entry to a direct double value. + + + + + Converts the specified value to String. + If the value does not exist, the function returns the empty string. + + + + + Converts the specified value to String. + If the value does not exist, the function returns the empty string. + + + + + Tries to get the string. TODO: more TryGet... + + + + + Sets the entry to a direct string value. + + + + + Converts the specified value to a name. + If the value does not exist, the function returns the empty string. + + + + + Sets the specified name value. + If the value doesn't start with a slash, it is added automatically. + + + + + Converts the specified value to PdfRectangle. + If the value does not exist, the function returns an empty rectangle. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Converts the specified value to PdfRectangle. + If the value does not exist, the function returns an empty rectangle. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Sets the entry to a direct rectangle value, represented by an array with four values. + + + + Converts the specified value to XMatrix. + If the value does not exist, the function returns an identity matrix. + If the value is not convertible, the function throws an InvalidCastException. + + + Converts the specified value to XMatrix. + If the value does not exist, the function returns an identity matrix. + If the value is not convertible, the function throws an InvalidCastException. + + + + Sets the entry to a direct matrix value, represented by an array with six values. + + + + + Converts the specified value to DateTime. + If the value does not exist, the function returns the specified default value. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Sets the entry to a direct datetime value. + + + + + Gets the value for the specified key. If the value does not exist, it is optionally created. + + + + + Short cut for GetValue(key, VCF.None). + + + + + Returns the type of the object to be created as value of the specified key. + + + + + Sets the entry with the specified value. DON'T USE THIS FUNCTION - IT MAY BE REMOVED. + + + + + Gets the PdfObject with the specified key, or null, if no such object exists. If the key refers to + a reference, the referenced PdfObject is returned. + + + + + Gets the PdfDictionary with the specified key, or null, if no such object exists. If the key refers to + a reference, the referenced PdfDictionary is returned. + + + + + Gets the PdfArray with the specified key, or null, if no such object exists. If the key refers to + a reference, the referenced PdfArray is returned. + + + + + Gets the PdfReference with the specified key, or null, if no such object exists. + + + + + Sets the entry to the specified object. The object must not be an indirect object, + otherwise an exception is raised. + + + + + Sets the entry as a reference to the specified object. The object must be an indirect object, + otherwise an exception is raised. + + + + + Sets the entry as a reference to the specified iref. + + + + + Gets a value indicating whether the object is read-only. + + + + + Returns an object for the object. + + + + + Gets or sets an entry in the dictionary. The specified key must be a valid PDF name + starting with a slash '/'. This property provides full access to the elements of the + PDF dictionary. Wrong use can lead to errors or corrupt PDF files. + + + + + Gets or sets an entry in the dictionary identified by a PdfName object. + + + + + Removes the value with the specified key. + + + + + Removes the value with the specified key. + + + + + Determines whether the dictionary contains the specified name. + + + + + Determines whether the dictionary contains a specific value. + + + + + Removes all elements from the dictionary. + + + + + Adds the specified value to the dictionary. + + + + + Adds an item to the dictionary. + + + + + Gets all keys currently in use in this dictionary as an array of PdfName objects. + + + + + Get all keys currently in use in this dictionary as an array of string objects. + + + + + Gets the value associated with the specified key. + + + + + Gets all values currently in use in this dictionary as an array of PdfItem objects. + + + + + Return false. + + + + + Return false. + + + + + Gets the number of elements contained in the dictionary. + + + + + Copies the elements of the dictionary to an array, starting at a particular index. + + + + + The current implementation returns null. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + The elements of the dictionary with a string as key. + Because the string is a name it starts always with a '/'. + + + + + The dictionary this objects belongs to. + + + + + The PDF stream objects. + + + + + A .NET string can contain char(0) as a valid character. + + + + + Clones this stream by creating a deep copy. + + + + + Moves this instance to another dictionary during object type transformation. + + + + + The dictionary the stream belongs to. + + + + + Gets the length of the stream, i.e. the actual number of bytes in the stream. + + + + + Gets a value indicating whether this stream has decode parameters. + + + + + Gets the decode predictor for LZW- or FlateDecode. + Returns 0 if no such value exists. + + + + + Gets the decode Columns for LZW- or FlateDecode. + Returns 0 if no such value exists. + + + + + Get or sets the bytes of the stream as they are, i.e. if one or more filters exist the bytes are + not unfiltered. + + + + + Gets the value of the stream unfiltered. The stream content is not modified by this operation. + + + + + Tries to unfilter the bytes of the stream. If the stream is filtered and PDFsharp knows the filter + algorithm, the stream content is replaced by its unfiltered value and the function returns true. + Otherwise the content remains untouched and the function returns false. + The function is useful for analyzing existing PDF files. + + + + + Compresses the stream with the FlateDecode filter. + If a filter is already defined, the function has no effect. + + + + + Returns the stream content as a raw string. + + + + + Common keys for all streams. + + + + + (Required) The number of bytes from the beginning of the line following the keyword + stream to the last byte just before the keyword endstream. (There may be an additional + EOL marker, preceding endstream, that is not included in the count and is not logically + part of the stream data.) + + + + + (Optional) The name of a filter to be applied in processing the stream data found between + the keywords stream and endstream, or an array of such names. Multiple filters should be + specified in the order in which they are to be applied. + + + + + (Optional) A parameter dictionary or an array of such dictionaries, used by the filters + specified by Filter. If there is only one filter and that filter has parameters, DecodeParms + must be set to the filter’s parameter dictionary unless all the filter’s parameters have + their default values, in which case the DecodeParms entry may be omitted. If there are + multiple filters and any of the filters has parameters set to nondefault values, DecodeParms + must be an array with one entry for each filter: either the parameter dictionary for that + filter, or the null object if that filter has no parameters (or if all of its parameters have + their default values). If none of the filters have parameters, or if all their parameters + have default values, the DecodeParms entry may be omitted. + + + + + (Optional; PDF 1.2) The file containing the stream data. If this entry is present, the bytes + between stream and endstream are ignored, the filters are specified by FFilter rather than + Filter, and the filter parameters are specified by FDecodeParms rather than DecodeParms. + However, the Length entry should still specify the number of those bytes. (Usually, there are + no bytes and Length is 0.) + + + + + (Optional; PDF 1.2) The name of a filter to be applied in processing the data found in the + stream’s external file, or an array of such names. The same rules apply as for Filter. + + + + + (Optional; PDF 1.2) A parameter dictionary, or an array of such dictionaries, used by the + filters specified by FFilter. The same rules apply as for DecodeParms. + + + + + Optional; PDF 1.5) A non-negative integer representing the number of bytes in the decoded + (defiltered) stream. It can be used to determine, for example, whether enough disk space is + available to write a stream to a file. + This value should be considered a hint only; for some stream filters, it may not be possible + to determine this value precisely. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Represents a PDF document. + + + + + Creates a new PDF document in memory. + To open an existing PDF file, use the PdfReader class. + + + + + Creates a new PDF document with the specified file name. The file is immediately created and keeps + locked until the document is closed, at that time the document is saved automatically. + Do not call Save() for documents created with this constructor, just call Close(). + To open an existing PDF file and import it, use the PdfReader class. + + + + + Creates a new PDF document using the specified stream. + The stream won't be used until the document is closed, at that time the document is saved automatically. + Do not call Save() for documents created with this constructor, just call Close(). + To open an existing PDF file, use the PdfReader class. + + + + + Disposes all references to this document stored in other documents. This function should be called + for documents you finished importing pages from. Calling Dispose is technically not necessary but + useful for earlier reclaiming memory of documents you do not need anymore. + + + + + Gets or sets a user defined object that contains arbitrary information associated with this document. + The tag is not used by PDFsharp. + + + + + Gets or sets a value used to distinguish PdfDocument objects. + The name is not used by PDFsharp. + + + + + Get a new default name for a new document. + + + + + Closes this instance. + + + + + Saves the document to the specified path. If a file already exists, it will be overwritten. + + + + + Saves the document to the specified stream. + + + + + Saves the document to the specified stream. + The stream is not closed by this function. + (Older versions of PDFsharp closes the stream. That was not very useful.) + + + + + Implements saving a PDF file. + + + + + Dispatches PrepareForSave to the objects that need it. + + + + + Determines whether the document can be saved. + + + + + Gets the document options used for saving the document. + + + + + Gets PDF specific document settings. + + + + + NYI Indicates whether large objects are written immediately to the output stream to relieve + memory consumption. + + + + + Gets or sets the PDF version number. Return value 14 e.g. means PDF 1.4 / Acrobat 5 etc. + + + + + Gets the number of pages in the document. + + + + + Gets the file size of the document. + + + + + Gets the full qualified file name if the document was read form a file, or an empty string otherwise. + + + + + Gets a Guid that uniquely identifies this instance of PdfDocument. + + + + + Returns a value indicating whether the document was newly created or opened from an existing document. + Returns true if the document was opened with the PdfReader.Open function, false otherwise. + + + + + Returns a value indicating whether the document is read only or can be modified. + + + + + Gets information about the document. + + + + + This function is intended to be undocumented. + + + + + Get the pages dictionary. + + + + + Gets or sets a value specifying the page layout to be used when the document is opened. + + + + + Gets or sets a value specifying how the document should be displayed when opened. + + + + + Gets the viewer preferences of this document. + + + + + Gets the root of the outline (or bookmark) tree. + + + + + Get the AcroForm dictionary. + + + + + Gets or sets the default language of the document. + + + + + Gets the security settings of this document. + + + + + Gets the document font table that holds all fonts used in the current document. + + + + + Gets the document image table that holds all images used in the current document. + + + + + Gets the document form table that holds all form external objects used in the current document. + + + + + Gets the document ExtGState table that holds all form state objects used in the current document. + + + + + Gets the PdfCatalog of the current document. + + + + + Gets the PdfInternals object of this document, that grants access to some internal structures + which are not part of the public interface of PdfDocument. + + + + + Creates a new page and adds it to this document. + Depending of the IsMetric property of the current region the page size is set to + A4 or Letter respectively. If this size is not appropriate it should be changed before + any drawing operations are performed on the page. + + + + + Adds the specified page to this document. If the page is from an external document, + it is imported to this document. In this case the returned page is not the same + object as the specified one. + + + + + Creates a new page and inserts it in this document at the specified position. + + + + + Inserts the specified page in this document. If the page is from an external document, + it is imported to this document. In this case the returned page is not the same + object as the specified one. + + + + + Flattens a document (make the fields non-editable). + + + + + Gets the security handler. + + + + + Occurs when the specified document is not used anymore for importing content. + + + + + Gets the ThreadLocalStorage object. It is used for caching objects that should created + only once. + + + + + Represents the PDF document information dictionary. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the document's title. + + + + + Gets or sets the name of the person who created the document. + + + + + Gets or sets the name of the subject of the document. + + + + + Gets or sets keywords associated with the document. + + + + + Gets or sets the name of the application (for example, MigraDoc) that created the document. + + + + + Gets the producer application (for example, PDFsharp). + + + + + Gets or sets the creation date of the document. + Breaking Change: If the date is not set in a PDF file DateTime.MinValue is returned. + + + + + Gets or sets the modification date of the document. + Breaking Change: If the date is not set in a PDF file DateTime.MinValue is returned. + + + + + Predefined keys of this dictionary. + + + + + (Optional; PDF 1.1) The document’s title. + + + + + (Optional) The name of the person who created the document. + + + + + (Optional; PDF 1.1) The subject of the document. + + + + + (Optional; PDF 1.1) Keywords associated with the document. + + + + + (Optional) If the document was converted to PDF from another format, + the name of the application (for example, empira MigraDoc) that created the + original document from which it was converted. + + + + + (Optional) If the document was converted to PDF from another format, + the name of the application (for example, this library) that converted it to PDF. + + + + + (Optional) The date and time the document was created, in human-readable form. + + + + + (Required if PieceInfo is present in the document catalog; otherwise optional; PDF 1.1) + The date and time the document was most recently modified, in human-readable form. + + + + + (Optional; PDF 1.3) A name object indicating whether the document has been modified + to include trapping information. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Holds information how to handle the document when it is saved as PDF stream. + + + + + Gets or sets the color mode. + + + + + Gets or sets a value indicating whether to compress content streams of PDF pages. + + + + + Gets or sets a value indicating that all objects are not compressed. + + + + + Gets or sets the flate encode mode. Besides the balanced default mode you can set modes for best compression (slower) or best speed (larger files). + + + + + Gets or sets a value indicating whether to compress bilevel images using CCITT compression. + With true, PDFsharp will try FlateDecode CCITT and will use the smallest one or a combination of both. + With false, PDFsharp will always use FlateDecode only - files may be a few bytes larger, but file creation is faster. + + + + + Gets or sets a value indicating whether to compress JPEG images with the FlateDecode filter. + + + + + Holds PDF specific information of the document. + + + + + Gets or sets the default trim margins. + + + + + Represents a direct integer value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The value. + + + + Gets the value as integer. + + + + + Returns the integer as string. + + + + + Writes the integer as string. + + + + + Returns TypeCode for 32-bit integers. + + + + + Represents an indirect integer value. This type is not used by PDFsharp. If it is imported from + an external PDF file, the value is converted into a direct object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the value as integer. + + + + + Returns the integer as string. + + + + + Writes the integer literal. + + + + + The base class of all PDF objects and simple PDF types. + + + + + Creates a copy of this object. + + + + + Implements the copy mechanism. Must be overridden in derived classes. + + + + + When overridden in a derived class, appends a raw string representation of this object + to the specified PdfWriter. + + + + + Represents text that is written 'as it is' into the PDF stream. This class can lead to invalid PDF files. + E.g. strings in a literal are not encrypted when the document is saved with a password. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance with the specified string. + + + + + Initializes a new instance with the culture invariant formatted specified arguments. + + + + + Creates a literal from an XMatrix + + + + + Gets the value as litaral string. + + + + + Returns a string that represents the current value. + + + + + Represents a PDF name value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + Parameter value always must start with a '/'. + + + + + Determines whether the specified object is equal to this name. + + + + + Returns the hash code for this instance. + + + + + Gets the name as a string. + + + + + Returns the name. The string always begins with a slash. + + + + + Determines whether the specified name and string are equal. + + + + + Determines whether the specified name and string are not equal. + + + + + Represents the empty name. + + + + + Writes the name including the leading slash. + + + + + Gets the comparer for this type. + + + + + Implements a comparer that compares PdfName objects. + + + + + Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. + + The first object to compare. + The second object to compare. + + + + Represents an indirect name value. This type is not used by PDFsharp. If it is imported from + an external PDF file, the value is converted into a direct object. Acrobat sometime uses indirect + names to save space, because an indirect reference to a name may be shorter than a long name. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + The value. + + + + Determines whether the specified object is equal to the current object. + + + + + Serves as a hash function for this type. + + + + + Gets or sets the name value. + + + + + Returns the name. The string always begins with a slash. + + + + + Determines whether a name is equal to a string. + + + + + Determines whether a name is not equal to a string. + + + + + Writes the name including the leading slash. + + + + + Represents a indirect reference that is not in the cross reference table. + + + + + Returns a that represents the current . + + + A that represents the current . + + + + + The only instance of this class. + + + + + Represents an indirect null value. This type is not used by PDFsharp, but at least + one tool from Adobe creates PDF files with a null object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + + + + Returns the string "null". + + + + + Writes the keyword «null». + + + + + Base class for direct number values (not yet used, maybe superfluous). + + + + + Base class for indirect number values (not yet used, maybe superfluous). + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + + + + Base class of all composite PDF objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance from an existing object. Used for object type transformation. + + + + + Creates a copy of this object. The clone does not belong to a document, i.e. its owner and its iref are null. + + + + + Implements the copy mechanism. Must be overridden in derived classes. + + + + + Sets the object and generation number. + Setting the object identifier makes this object an indirect object, i.e. the object gets + a PdfReference entry in the PdfReferenceTable. + + + + + Gets the PdfDocument this object belongs to. + + + + + Sets the PdfDocument this object belongs to. + + + + + Indicates whether the object is an indirect object. + + + + + Gets the PdfInternals object of this document, that grants access to some internal structures + which are not part of the public interface of PdfDocument. + + + + + When overridden in a derived class, prepares the object to get saved. + + + + + Saves the stream position. 2nd Edition. + + + + + Gets the object identifier. Returns PdfObjectID.Empty for direct objects, + i.e. never returns null. + + + + + Gets the object number. + + + + + Gets the generation number. + + + + The document that owns the cloned objects. + The root object to be cloned. + The clone of the root object + + + The imported object table of the owner for the external document. + The document that owns the cloned objects. + The root object to be cloned. + The clone of the root object + + + + Replace all indirect references to external objects by their cloned counterparts + owned by the importer document. + + + + + Ensure for future versions of PDFsharp not to forget code for a new kind of PdfItem. + + The item. + + + + Gets the indirect reference of this object. If the value is null, this object is a direct object. + + + + + Represents a PDF object identifier, a pair of object and generation number. + + + + + Initializes a new instance of the class. + + The object number. + + + + Initializes a new instance of the class. + + The object number. + The generation number. + + + + Gets or sets the object number. + + + + + Gets or sets the generation number. + + + + + Indicates whether this object is an empty object identifier. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Returns the hash code for this instance. + + + + + Determines whether the two objects are equal. + + + + + Determines whether the tow objects not are equal. + + + + + Returns the object and generation numbers as a string. + + + + + Creates an empty object identifier. + + + + + Compares the current object id with another object. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Represents an outline item in the outlines tree. An 'outline' is also known as a 'bookmark'. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + + + + Initializes a new instance from an existing dictionary. Used for object type transformation. + + + + + Initializes a new instance of the class. + + The outline text. + The destination page. + Specifies whether the node is displayed expanded (opened) or collapsed. + The font style used to draw the outline text. + The color used to draw the outline text. + + + + Initializes a new instance of the class. + + The outline text. + The destination page. + Specifies whether the node is displayed expanded (opened) or collapsed. + The font style used to draw the outline text. + + + + Initializes a new instance of the class. + + The outline text. + The destination page. + Specifies whether the node is displayed expanded (opened) or collapsed. + + + + Initializes a new instance of the class. + + The outline text. + The destination page. + + + + The total number of open descendants at all lower levels. + + + + + Counts the open outline items. Not yet used. + + + + + Gets the parent of this outline item. The root item has no parent and returns null. + + + + + Gets or sets the title. + + + + + Gets or sets the destination page. + + + + + Gets or sets the left position of the page positioned at the left side of the window. + Applies only if PageDestinationType is Xyz, FitV, FitR, or FitBV. + + + + + Gets or sets the top position of the page positioned at the top side of the window. + Applies only if PageDestinationType is Xyz, FitH, FitR, ob FitBH. + + + + + Gets or sets the right position of the page positioned at the right side of the window. + Applies only if PageDestinationType is FitR. + + + + + Gets or sets the bottom position of the page positioned at the bottom side of the window. + Applies only if PageDestinationType is FitR. + + + + + Gets or sets the zoom faction of the page. + Applies only if PageDestinationType is Xyz. + + + + + Gets or sets whether the outline item is opened (or expanded). + + + + + Gets or sets the style of the outline text. + + + + + Gets or sets the type of the page destination. + + + + + Gets or sets the color of the text. + + The color of the text. + + + + Gets a value indicating whether this outline object has child items. + + + + + Gets the outline collection of this node. + + + + + Initializes this instance from an existing PDF document. + + + + + Creates key/values pairs according to the object structure. + + + + + Format double. + + + + + Format nullable double. + + + + + Predefined keys of this dictionary. + + + + + (Optional) The type of PDF object that this dictionary describes; if present, + must be Outlines for an outline dictionary. + + + + + (Required) The text to be displayed on the screen for this item. + + + + + (Required; must be an indirect reference) The parent of this item in the outline hierarchy. + The parent of a top-level item is the outline dictionary itself. + + + + + (Required for all but the first item at each level; must be an indirect reference) + The previous item at this outline level. + + + + + (Required for all but the last item at each level; must be an indirect reference) + The next item at this outline level. + + + + + (Required if the item has any descendants; must be an indirect reference) + The first of this item’s immediate children in the outline hierarchy. + + + + + (Required if the item has any descendants; must be an indirect reference) + The last of this item’s immediate children in the outline hierarchy. + + + + + (Required if the item has any descendants) If the item is open, the total number of its + open descendants at all lower levels of the outline hierarchy. If the item is closed, a + negative integer whose absolute value specifies how many descendants would appear if the + item were reopened. + + + + + (Optional; not permitted if an A entry is present) The destination to be displayed when this + item is activated. + + + + + (Optional; not permitted if a Dest entry is present) The action to be performed when + this item is activated. + + + + + (Optional; PDF 1.3; must be an indirect reference) The structure element to which the item + refers. + Note: The ability to associate an outline item with a structure element (such as the beginning + of a chapter) is a PDF 1.3 feature. For backward compatibility with earlier PDF versions, such + an item should also specify a destination (Dest) corresponding to an area of a page where the + contents of the designated structure element are displayed. + + + + + (Optional; PDF 1.4) An array of three numbers in the range 0.0 to 1.0, representing the + components in the DeviceRGB color space of the color to be used for the outline entry’s text. + Default value: [0.0 0.0 0.0]. + + + + + (Optional; PDF 1.4) A set of flags specifying style characteristics for displaying the outline + item’s text. Default value: 0. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a collection of outlines. + + + + + Can only be created as part of PdfOutline. + + + + + Indicates whether the outline collection has at least one entry. + + + + + Removes the first occurrence of a specific item from the collection. + + + + + Gets the number of entries in this collection. + + + + + Returns false. + + + + + Adds the specified outline. + + + + + Removes all elements form the collection. + + + + + Determines whether the specified element is in the collection. + + + + + Copies the collection to an array, starting at the specified index of the target array. + + + + + Adds the specified outline entry. + + The outline text. + The destination page. + Specifies whether the node is displayed expanded (opened) or collapsed. + The font style used to draw the outline text. + The color used to draw the outline text. + + + + Adds the specified outline entry. + + The outline text. + The destination page. + Specifies whether the node is displayed expanded (opened) or collapsed. + The font style used to draw the outline text. + + + + Adds the specified outline entry. + + The outline text. + The destination page. + Specifies whether the node is displayed expanded (opened) or collapsed. + + + + Creates a PdfOutline and adds it into the outline collection. + + + + + Gets the index of the specified item. + + + + + Inserts the item at the specified index. + + + + + Removes the outline item at the specified index. + + + + + Gets the at the specified index. + + + + + Returns an enumerator that iterates through the outline collection. + + + + + The parent outine of this collection. + + + + + Represents a page in a PDF document. + + + + + Initializes a new page. The page must be added to a document before it can be used. + Depending of the IsMetric property of the current region the page size is set to + A4 or Letter respectively. If this size is not appropriate it should be changed before + any drawing operations are performed on the page. + + + + + Initializes a new instance of the class. + + The document. + + + + Gets or sets a user defined object that contains arbitrary information associated with this PDF page. + The tag is not used by PDFsharp. + + + + + Closes the page. A closed page cannot be modified anymore and it is not possible to + get an XGraphics object for a closed page. Closing a page is not required, but may save + resources if the document has many pages. + + + + + Gets a value indicating whether the page is closed. + + + + + Gets or sets the PdfDocument this page belongs to. + + + + + Gets or sets the orientation of the page. The default value PageOrientation.Portrait. + If an imported page has a /Rotate value that matches the formula 90 + n * 180 the + orientation is set to PageOrientation.Landscape. + + + + + Gets or sets one of the predefined standard sizes like. + + + + + Gets or sets the trim margins. + + + + + Gets or sets the media box directly. XGrahics is not prepared to work with a media box + with an origin other than (0,0). + + + + + Gets or sets the crop box. + + + + + Gets or sets the bleed box. + + + + + Gets or sets the art box. + + + + + Gets or sets the trim box. + + + + + Gets or sets the height of the page. If orientation is Landscape, this function applies to + the width. + + + + + Gets or sets the width of the page. If orientation is Landscape, this function applies to + the height. + + + + + Gets or sets the /Rotate entry of the PDF page. The value is the number of degrees by which the page + should be rotated clockwise when displayed or printed. The value must be a multiple of 90. + PDFsharp does not set this value, but for imported pages this value can be set and must be taken + into account when adding graphic to such a page. + + + + + The content stream currently used by an XGraphics object for rendering. + + + + + Gets the array of content streams of the page. + + + + + Gets the annotations array of this page. + + + + + Gets the annotations array of this page. + + + + + Adds an intra document link. + + The rect. + The destination page. + + + + Adds a link to the Web. + + The rect. + The URL. + + + + Adds a link to a file. + + The rect. + Name of the file. + + + + Gets or sets the custom values. + + + + + Gets the PdfResources object of this page. + + + + + Implements the interface because the primary function is internal. + + + + + Gets the resource name of the specified font within this page. + + + + + Tries to get the resource name of the specified font data within this page. + Returns null if no such font exists. + + + + + Gets the resource name of the specified font data within this page. + + + + + Gets the resource name of the specified image within this page. + + + + + Implements the interface because the primary function is internal. + + + + + Gets the resource name of the specified form within this page. + + + + + Implements the interface because the primary function is internal. + + + + + Hack to indicate that a page-level transparency group must be created. + + + + + Inherit values from parent node. + + + + + Add all inheritable values from the specified page to the specified values structure. + + + + + Predefined keys of this dictionary. + + + + + (Required) The type of PDF object that this dictionary describes; + must be Page for a page object. + + + + + (Required; must be an indirect reference) + The page tree node that is the immediate parent of this page object. + + + + + (Required if PieceInfo is present; optional otherwise; PDF 1.3) The date and time + when the page’s contents were most recently modified. If a page-piece dictionary + (PieceInfo) is present, the modification date is used to ascertain which of the + application data dictionaries that it contains correspond to the current content + of the page. + + + + + (Optional; PDF 1.3) A rectangle, expressed in default user space units, defining the + region to which the contents of the page should be clipped when output in a production + environment. Default value: the value of CropBox. + + + + + (Optional; PDF 1.3) A rectangle, expressed in default user space units, defining the + intended dimensions of the finished page after trimming. Default value: the value of + CropBox. + + + + + (Optional; PDF 1.3) A rectangle, expressed in default user space units, defining the + extent of the page’s meaningful content (including potential white space) as intended + by the page’s creator. Default value: the value of CropBox. + + + + + (Optional; PDF 1.4) A box color information dictionary specifying the colors and other + visual characteristics to be used in displaying guidelines on the screen for the various + page boundaries. If this entry is absent, the application should use its own current + default settings. + + + + + (Optional) A content stream describing the contents of this page. If this entry is absent, + the page is empty. The value may be either a single stream or an array of streams. If the + value is an array, the effect is as if all of the streams in the array were concatenated, + in order, to form a single stream. This allows PDF producers to create image objects and + other resources as they occur, even though they interrupt the content stream. The division + between streams may occur only at the boundaries between lexical tokens but is unrelated + to the page’s logical content or organization. Applications that consume or produce PDF + files are not required to preserve the existing structure of the Contents array. + + + + + (Optional; PDF 1.4) A group attributes dictionary specifying the attributes of the page’s + page group for use in the transparent imaging model. + + + + + (Optional) A stream object defining the page’s thumbnail image. + + + + + (Optional; PDF 1.1; recommended if the page contains article beads) An array of indirect + references to article beads appearing on the page. The beads are listed in the array in + natural reading order. + + + + + (Optional; PDF 1.1) The page’s display duration (also called its advance timing): the + maximum length of time, in seconds, that the page is displayed during presentations before + the viewer application automatically advances to the next page. By default, the viewer does + not advance automatically. + + + + + (Optional; PDF 1.1) A transition dictionary describing the transition effect to be used + when displaying the page during presentations. + + + + + (Optional) An array of annotation dictionaries representing annotations associated with + the page. + + + + + (Optional; PDF 1.2) An additional-actions dictionary defining actions to be performed + when the page is opened or closed. + + + + + (Optional; PDF 1.4) A metadata stream containing metadata for the page. + + + + + (Optional; PDF 1.3) A page-piece dictionary associated with the page. + + + + + (Required if the page contains structural content items; PDF 1.3) + The integer key of the page’s entry in the structural parent tree. + + + + + (Optional; PDF 1.3; indirect reference preferred) The digital identifier of + the page’s parent Web Capture content set. + + + + + (Optional; PDF 1.3) The page’s preferred zoom (magnification) factor: the factor + by which it should be scaled to achieve the natural display magnification. + + + + + (Optional; PDF 1.3) A separation dictionary containing information needed + to generate color separations for the page. + + + + + (Optional; PDF 1.5) A name specifying the tab order to be used for annotations + on the page. The possible values are R (row order), C (column order), + and S (structure order). + + + + + (Required if this page was created from a named page object; PDF 1.5) + The name of the originating page object. + + + + + (Optional; PDF 1.5) A navigation node dictionary representing the first node + on the page. + + + + + (Optional; PDF 1.6) A positive number giving the size of default user space units, + in multiples of 1/72 inch. The range of supported values is implementation-dependent. + + + + + (Optional; PDF 1.6) An array of viewport dictionaries specifying rectangular regions + of the page. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Predefined keys common to PdfPage and PdfPages. + + + + + (Required; inheritable) A dictionary containing any resources required by the page. + If the page requires no resources, the value of this entry should be an empty dictionary. + Omitting the entry entirely indicates that the resources are to be inherited from an + ancestor node in the page tree. + + + + + (Required; inheritable) A rectangle, expressed in default user space units, defining the + boundaries of the physical medium on which the page is intended to be displayed or printed. + + + + + (Optional; inheritable) A rectangle, expressed in default user space units, defining the + visible region of default user space. When the page is displayed or printed, its contents + are to be clipped (cropped) to this rectangle and then imposed on the output medium in some + implementation defined manner. Default value: the value of MediaBox. + + + + + (Optional; inheritable) The number of degrees by which the page should be rotated clockwise + when displayed or printed. The value must be a multiple of 90. Default value: 0. + + + + + Values inherited from a parent in the parent chain of a page tree. + + + + + Represents the pages of the document. + + + + + Gets the number of pages. + + + + + Gets the page with the specified index. + + + + + Finds a page by its id. Transforms it to PdfPage if necessary. + + + + + Creates a new PdfPage, adds it to the end of this document, and returns it. + + + + + Adds the specified PdfPage to the end of this document and maybe returns a new PdfPage object. + The value returned is a new object if the added page comes from a foreign document. + + + + + Creates a new PdfPage, inserts it at the specified position into this document, and returns it. + + + + + Inserts the specified PdfPage at the specified position to this document and maybe returns a new PdfPage object. + The value returned is a new object if the inserted page comes from a foreign document. + + + + + Inserts pages of the specified document into this document. + + The index in this document where to insert the page . + The document to be inserted. + The index of the first page to be inserted. + The number of pages to be inserted. + + + + Inserts all pages of the specified document into this document. + + The index in this document where to insert the page . + The document to be inserted. + + + + Inserts all pages of the specified document into this document. + + The index in this document where to insert the page . + The document to be inserted. + The index of the first page to be inserted. + + + + Removes the specified page from the document. + + + + + Removes the specified page from the document. + + + + + Moves a page within the page sequence. + + The page index before this operation. + The page index after this operation. + + + + Imports an external page. The elements of the imported page are cloned and added to this document. + Important: In contrast to PdfFormXObject adding an external page always make a deep copy + of their transitive closure. Any reuse of already imported objects is not intended because + any modification of an imported page must not change another page. + + + + + Helper function for ImportExternalPage. + + + + + Gets a PdfArray containing all pages of this document. The array must not be modified. + + + + + Replaces the page tree by a flat array of indirect references to the pages objects. + + + + + Recursively converts the page tree into a flat array. + + + + + Prepares the document for saving. + + + + + Gets the enumerator. + + + + + Predefined keys of this dictionary. + + + + + (Required) The type of PDF object that this dictionary describes; + must be Pages for a page tree node. + + + + + (Required except in root node; must be an indirect reference) + The page tree node that is the immediate parent of this one. + + + + + (Required) An array of indirect references to the immediate children of this node. + The children may be page objects or other page tree nodes. + + + + + (Required) The number of leaf nodes (page objects) that are descendants of this node + within the page tree. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a direct real value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The value. + + + + Gets the value as double. + + + + + Returns the real number as string. + + + + + Writes the real value with up to three digits. + + + + + Represents an indirect real value. This type is not used by PDFsharp. If it is imported from + an external PDF file, the value is converted into a direct object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The value. + + + + Initializes a new instance of the class. + + The document. + The value. + + + + Gets or sets the value. + + + + + Returns the real as a culture invariant string. + + + + + Writes the real literal. + + + + + Represents a PDF rectangle value, that is internally an array with 4 real values. + + + + + Initializes a new instance of the PdfRectangle class. + + + + + Initializes a new instance of the PdfRectangle class with two points specifying + two diagonally opposite corners. Notice that in contrast to GDI+ convention the + 3rd and the 4th parameter specify a point and not a width. This is so much confusing + that this function is for internal use only. + + + + + Initializes a new instance of the PdfRectangle class with two points specifying + two diagonally opposite corners. + + + + + Initializes a new instance of the PdfRectangle class with the specified location and size. + + + + + Initializes a new instance of the PdfRectangle class with the specified XRect. + + + + + Initializes a new instance of the PdfRectangle class with the specified PdfArray. + + + + + Clones this instance. + + + + + Implements cloning this instance. + + + + + Tests whether all coordinate are zero. + + + + + Tests whether the specified object is a PdfRectangle and has equal coordinates. + + + + + Serves as a hash function for a particular type. + + + + + Tests whether two structures have equal coordinates. + + + + + Tests whether two structures differ in one or more coordinates. + + + + + Gets or sets the x-coordinate of the first corner of this PdfRectangle. + + + + + Gets or sets the y-coordinate of the first corner of this PdfRectangle. + + + + + Gets or sets the x-coordinate of the second corner of this PdfRectangle. + + + + + Gets or sets the y-coordinate of the second corner of this PdfRectangle. + + + + + Gets X2 - X1. + + + + + Gets Y2 - Y1. + + + + + Gets or sets the coordinates of the first point of this PdfRectangle. + + + + + Gets or sets the size of this PdfRectangle. + + + + + Determines if the specified point is contained within this PdfRectangle. + + + + + Determines if the specified point is contained within this PdfRectangle. + + + + + Determines if the rectangular region represented by rect is entirely contained within this PdfRectangle. + + + + + Determines if the rectangular region represented by rect is entirely contained within this PdfRectangle. + + + + + Returns the rectangle as an XRect object. + + + + + Returns the rectangle as a string in the form «[x1 y1 x2 y2]». + + + + + Writes the rectangle. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Represents an empty PdfRectangle. + + + + + Represents the cross-reference table of a PDF document. + It contains all indirect objects of a document. + + + + + Represents the relation between PdfObjectID and PdfReference for a PdfDocument. + + + + + Adds a cross reference entry to the table. Used when parsing the trailer. + + + + + Adds a PdfObject to the table. + + + + + Gets a cross reference entry from an object identifier. + Returns null if no object with the specified ID exists in the object table. + + + + + Indicates whether the specified object identifier is in the table. + + + + + Returns the next free object number. + + + + + Writes the xref section in pdf stream. + + + + + Gets an array of all object identifier. For debugging purposes only. + + + + + Gets an array of all cross references in ascending order by their object identifier. + + + + + Removes all objects that cannot be reached from the trailer. + Returns the number of removed objects. + + + + + Renumbers the objects starting at 1. + + + + + Checks the logical consistence for debugging purposes (useful after reconstruction work). + + + + + Calculates the transitive closure of the specified PdfObject, i.e. all indirect objects + recursively reachable from the specified object. + + + + + Calculates the transitive closure of the specified PdfObject with the specified depth, i.e. all indirect objects + recursively reachable from the specified object in up to maximally depth steps. + + + + + Gets the cross reference to an objects used for undefined indirect references. + + + + + Determines the encoding of a PdfString or PdfStringObject. + + + + + The characters of the string are actually bytes with an unknown or context specific meaning or encoding. + With this encoding the 8 high bits of each character is zero. + + + + + Not yet used by PDFsharp. + + + + + The characters of the string are actually bytes with PDF document encoding. + With this encoding the 8 high bits of each character is zero. + + + + + The characters of the string are actually bytes with Windows ANSI encoding. + With this encoding the 8 high bits of each character is zero. + + + + + Not yet used by PDFsharp. + + + + + Not yet used by PDFsharp. + + + + + The characters of the string are Unicode characters. + + + + + Internal wrapper for PdfStringEncoding. + + + + + Represents a direct text string value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The value. + + + + Initializes a new instance of the class. + + The value. + The encoding. + + + + Gets the number of characters in this string. + + + + + Gets the encoding. + + + + + Gets a value indicating whether the string is a hexadecimal literal. + + + + + Gets the string value. + + + + + Gets or sets the string value for encryption purposes. + + + + + Returns the string. + + + + + Hack for document encoded bookmarks. + + + + + Writes the string DocEncoded. + + + + + Represents an indirect text string value. This type is not used by PDFsharp. If it is imported from + an external PDF file, the value is converted into a direct object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + The value. + + + + Initializes a new instance of the class. + + The value. + The encoding. + + + + Gets the number of characters in this string. + + + + + Gets or sets the encoding. + + + + + Gets a value indicating whether the string is a hexadecimal literal. + + + + + Gets or sets the value as string + + + + + Gets or sets the string value for encryption purposes. + + + + + Returns the string. + + + + + Writes the string literal with encoding DOCEncoded. + + + + + Represents a direct unsigned integer value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the value as integer. + + + + + Returns the unsigned integer as string. + + + + + Writes the integer as string. + + + + + Converts the value of this instance to an equivalent 64-bit unsigned integer. + + + + + Converts the value of this instance to an equivalent 8-bit signed integer. + + + + + Converts the value of this instance to an equivalent double-precision floating-point number. + + + + + Returns an undefined DateTime structure. + + + + + Converts the value of this instance to an equivalent single-precision floating-point number. + + + + + Converts the value of this instance to an equivalent Boolean value. + + + + + Converts the value of this instance to an equivalent 32-bit signed integer. + + + + + Converts the value of this instance to an equivalent 16-bit unsigned integer. + + + + + Converts the value of this instance to an equivalent 16-bit signed integer. + + + + + Converts the value of this instance to an equivalent . + + + + + Converts the value of this instance to an equivalent 8-bit unsigned integer. + + + + + Converts the value of this instance to an equivalent Unicode character. + + + + + Converts the value of this instance to an equivalent 64-bit signed integer. + + + + + Returns type code for 32-bit integers. + + + + + Converts the value of this instance to an equivalent number. + + + + + Returns null. + + + + + Converts the value of this instance to an equivalent 32-bit unsigned integer. + + + + + Represents an indirect integer value. This type is not used by PDFsharp. If it is imported from + an external PDF file, the value is converted into a direct object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The value. + + + + Initializes a new instance of the class. + + The document. + The value. + + + + Gets the value as unsigned integer. + + + + + Returns the integer as string. + + + + + Writes the integer literal. + + + + + Represents the PDF document viewer preferences dictionary. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to hide the viewer application’s tool + bars when the document is active. + + + + + Gets or sets a value indicating whether to hide the viewer application’s + menu bar when the document is active. + + + + + Gets or sets a value indicating whether to hide user interface elements in + the document’s window (such as scroll bars and navigation controls), + leaving only the document’s contents displayed. + + + + + Gets or sets a value indicating whether to resize the document’s window to + fit the size of the first displayed page. + + + + + Gets or sets a value indicating whether to position the document’s window + in the center of the screen. + + + + + Gets or sets a value indicating whether the window’s title bar + should display the document title taken from the Title entry of the document + information dictionary. If false, the title bar should instead display the name + of the PDF file containing the document. + + + + + The predominant reading order for text: LeftToRight or RightToLeft + (including vertical writing systems, such as Chinese, Japanese, and Korean). + This entry has no direct effect on the document’s contents or page numbering + but can be used to determine the relative positioning of pages when displayed + side by side or printed n-up. Default value: LeftToRight. + + + + + Predefined keys of this dictionary. + + + + + (Optional) A flag specifying whether to hide the viewer application’s tool + bars when the document is active. Default value: false. + + + + + (Optional) A flag specifying whether to hide the viewer application’s + menu bar when the document is active. Default value: false. + + + + + (Optional) A flag specifying whether to hide user interface elements in + the document’s window (such as scroll bars and navigation controls), + leaving only the document’s contents displayed. Default value: false. + + + + + (Optional) A flag specifying whether to resize the document’s window to + fit the size of the first displayed page. Default value: false. + + + + + (Optional) A flag specifying whether to position the document’s window + in the center of the screen. Default value: false. + + + + + (Optional; PDF 1.4) A flag specifying whether the window’s title bar + should display the document title taken from the Title entry of the document + information dictionary. If false, the title bar should instead display the name + of the PDF file containing the document. Default value: false. + + + + + (Optional) The document’s page mode, specifying how to display the document on + exiting full-screen mode: + UseNone Neither document outline nor thumbnail images visible + UseOutlines Document outline visible + UseThumbs Thumbnail images visible + UseOC Optional content group panel visible + This entry is meaningful only if the value of the PageMode entry in the catalog + dictionary is FullScreen; it is ignored otherwise. Default value: UseNone. + + + + + (Optional; PDF 1.3) The predominant reading order for text: + L2R Left to right + R2L Right to left (including vertical writing systems, such as Chinese, Japanese, and Korean) + This entry has no direct effect on the document’s contents or page numbering + but can be used to determine the relative positioning of pages when displayed + side by side or printed n-up. Default value: L2R. + + + + + (Optional; PDF 1.4) The name of the page boundary representing the area of a page + to be displayed when viewing the document on the screen. The value is the key + designating the relevant page boundary in the page object. If the specified page + boundary is not defined in the page object, its default value is used. + Default value: CropBox. + Note: This entry is intended primarily for use by prepress applications that + interpret or manipulate the page boundaries as described in Section 10.10.1, “Page Boundaries.” + Most PDF consumer applications disregard it. + + + + + (Optional; PDF 1.4) The name of the page boundary to which the contents of a page + are to be clipped when viewing the document on the screen. The value is the key + designating the relevant page boundary in the page object. If the specified page + boundary is not defined in the page object, its default value is used. + Default value: CropBox. + Note: This entry is intended primarily for use by prepress applications that + interpret or manipulate the page boundaries as described in Section 10.10.1, “Page Boundaries.” + Most PDF consumer applications disregard it. + + + + + (Optional; PDF 1.4) The name of the page boundary representing the area of a page + to be rendered when printing the document. The value is the key designating the + relevant page boundary in the page object. If the specified page boundary is not + defined in the page object, its default value is used. + Default value: CropBox. + Note: This entry is intended primarily for use by prepress applications that + interpret or manipulate the page boundaries as described in Section 10.10.1, “Page Boundaries.” + Most PDF consumer applications disregard it. + + + + + (Optional; PDF 1.4) The name of the page boundary to which the contents of a page + are to be clipped when printing the document. The value is the key designating the + relevant page boundary in the page object. If the specified page boundary is not + defined in the page object, its default value is used. + Default value: CropBox. + Note: This entry is intended primarily for use by prepress applications that interpret + or manipulate the page boundaries. Most PDF consumer applications disregard it. + + + + + (Optional; PDF 1.6) The page scaling option to be selected when a print dialog is + displayed for this document. Valid values are None, which indicates that the print + dialog should reflect no page scaling, and AppDefault, which indicates that + applications should use the current print scaling. If this entry has an unrecognized + value, applications should use the current print scaling. + Default value: AppDefault. + Note: If the print dialog is suppressed and its parameters are provided directly + by the application, the value of this entry should still be used. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents trim margins added to the page. + + + + + Sets all four crop margins simultaneously. + + + + + Gets or sets the left crop margin. + + + + + Gets or sets the right crop margin. + + + + + Gets or sets the top crop margin. + + + + + Gets or sets the bottom crop margin. + + + + + Gets a value indicating whether this instance has at least one margin with a value other than zero. + + + + + Base namespace of PDFsharp. Most classes are implemented in nested namespaces like e. g. PdfSharp.Pdf. + + + + + + Specifies the orientation of a page. + + + + + The default page orientation. + + + + + The width and height of the page are reversed. + + + + + Identifies the most popular predefined page sizes. + + + + + The width or height of the page are set manually and override the PageSize property. + + + + + Identifies a paper sheet size of 841 mm times 1189 mm or 33.11 inch times 46.81 inch. + + + + + Identifies a paper sheet size of 594 mm times 841 mm or 23.39 inch times 33.1 inch. + + + + + Identifies a paper sheet size of 420 mm times 594 mm or 16.54 inch times 23.29 inch. + + + + + Identifies a paper sheet size of 297 mm times 420 mm or 11.69 inch times 16.54 inch. + + + + + Identifies a paper sheet size of 210 mm times 297 mm or 8.27 inch times 11.69 inch. + + + + + Identifies a paper sheet size of 148 mm times 210 mm or 5.83 inch times 8.27 inch. + + + + + Identifies a paper sheet size of 860 mm times 1220 mm. + + + + + Identifies a paper sheet size of 610 mm times 860 mm. + + + + + Identifies a paper sheet size of 430 mm times 610 mm. + + + + + Identifies a paper sheet size of 305 mm times 430 mm. + + + + + Identifies a paper sheet size of 215 mm times 305 mm. + + + + + Identifies a paper sheet size of 153 mm times 215 mm. + + + + + Identifies a paper sheet size of 1000 mm times 1414 mm or 39.37 inch times 55.67 inch. + + + + + Identifies a paper sheet size of 707 mm times 1000 mm or 27.83 inch times 39.37 inch. + + + + + Identifies a paper sheet size of 500 mm times 707 mm or 19.68 inch times 27.83 inch. + + + + + Identifies a paper sheet size of 353 mm times 500 mm or 13.90 inch times 19.68 inch. + + + + + Identifies a paper sheet size of 250 mm times 353 mm or 9.84 inch times 13.90 inch. + + + + + Identifies a paper sheet size of 176 mm times 250 mm or 6.93 inch times 9.84 inch. + + + + + Identifies a paper sheet size of 10 inch times 8 inch or 254 mm times 203 mm. + + + + + Identifies a paper sheet size of 13 inch times 8 inch or 330 mm times 203 mm. + + + + + Identifies a paper sheet size of 10.5 inch times 7.25 inch or 267 mm times 184 mm. + + + + + Identifies a paper sheet size of 10.5 inch times 8 inch 267 mm times 203 mm. + + + + + Identifies a paper sheet size of 11 inch times 8.5 inch 279 mm times 216 mm. + + + + + Identifies a paper sheet size of 14 inch times 8.5 inch 356 mm times 216 mm. + + + + + Identifies a paper sheet size of 17 inch times 11 inch or 432 mm times 279 mm. + + + + + Identifies a paper sheet size of 17 inch times 11 inch or 432 mm times 279 mm. + + + + + Identifies a paper sheet size of 19.25 inch times 15.5 inch 489 mm times 394 mm. + + + + + 20 ×Identifies a paper sheet size of 20 inch times 15 inch or 508 mm times 381 mm. + + + + + Identifies a paper sheet size of 21 inch times 16.5 inch 533 mm times 419 mm. + + + + + Identifies a paper sheet size of 22.5 inch times 17.5 inch 572 mm times 445 mm. + + + + + Identifies a paper sheet size of 23 inch times 18 inch or 584 mm times 457 mm. + + + + + Identifies a paper sheet size of 25 inch times 20 inch or 635 mm times 508 mm. + + + + + Identifies a paper sheet size of 28 inch times 23 inch or 711 mm times 584 mm. + + + + + Identifies a paper sheet size of 35 inch times 23.5 inch or 889 mm times 597 mm. + + + + + Identifies a paper sheet size of 45 inch times 35 inch 1143 times 889 mm. + + + + + Identifies a paper sheet size of 8.5 inch times 5.5 inch or 216 mm times 396 mm. + + + + + Identifies a paper sheet size of 8.5 inch times 13 inch or 216 mm times 330 mm. + + + + + Identifies a paper sheet size of 5.5 inch times 8.5 inch or 396 mm times 216 mm. + + + + + Identifies a paper sheet size of 10 inch times 14 inch. + + + + + Represents IDs for error and diagnostic messages generated by PDFsharp. + + + + + PSMsgID. + + + + + PSMsgID. + + + + + PSMsgID. + + + + + PSMsgID. + + + + + PSMsgID. + + + + + PSMsgID. + + + + + Converter from to . + + + + + Converts the specified page size enumeration to a pair of values in point. + + + + + Base class of all exceptions in the PDFsharp frame work. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + Initializes a new instance of the class. + + The exception message. + The inner exception. + + + + Version info base for all PDFsharp related assemblies. + + + + + The title of the product. + + + + + A characteristic description of the product. + + + + + The PDF producer information string. + TODO: Called Creator in MigraDoc??? + + + + + The PDF producer information string including VersionPatch. + + + + + The full version number. + + + + + The full version string. + + + + + The home page of this product. + + + + + Unused. + + + + + The company that created/owned the product. + + + + + The name the product. + + + + + The copyright information. + + + + + The trademark the product. + + + + + Unused. + + + + + The major version number of the product. + + + + + The minor version number of the product. + + + + + The build number of the product. + + + + + The patch number of the product. + + + + + The Version Prerelease String for NuGet. + + + + + E.g. "2005-01-01", for use in NuGet Script. + + + + + Use _ instead of blanks and special characters. Can be complemented with a suffix in the NuGet Script. + Nuspec Doc: The unique identifier for the package. This is the package name that is shown when packages + are listed using the Package Manager Console. These are also used when installing a package using the + Install-Package command within the Package Manager Console. Package IDs may not contain any spaces + or characters that are invalid in an URL. In general, they follow the same rules as .NET namespaces do. + So Foo.Bar is a valid ID, Foo! and Foo Bar are not. + + + + + Nuspec Doc: The human-friendly title of the package displayed in the Manage NuGet Packages dialog. + If none is specified, the ID is used instead. + + + + + Nuspec Doc: A comma-separated list of authors of the package code. + + + + + Nuspec Doc: A comma-separated list of the package creators. This is often the same list as in authors. + This is ignored when uploading the package to the NuGet.org Gallery. + + + + + Nuspec Doc: A long description of the package. This shows up in the right pane of the Add Package Dialog + as well as in the Package Manager Console when listing packages using the Get-Package command. + + + + + Nuspec Doc: A description of the changes made in each release of the package. This field only shows up + when the _Updates_ tab is selected and the package is an update to a previously installed package. + It is displayed where the Description would normally be displayed. + + + + + Nuspec Doc: A short description of the package. If specified, this shows up in the middle pane of the + Add Package Dialog. If not specified, a truncated version of the description is used instead. + + + + + Nuspec Doc: The locale ID for the package, such as en-us. + + + + + Nuspec Doc: A URL for the home page of the package. + + + http://www.pdfsharp.net/NuGetPackage_PDFsharp-GDI.ashx + http://www.pdfsharp.net/NuGetPackage_PDFsharp-WPF.ashx + + + + + Nuspec Doc: A URL for the image to use as the icon for the package in the Manage NuGet Packages + dialog box. This should be a 32x32-pixel .png file that has a transparent background. + + + + + Nuspec Doc: A link to the license that the package is under. + + + + + Nuspec Doc: A Boolean value that specifies whether the client needs to ensure that the package license (described by licenseUrl) is accepted before the package is installed. + + + + + Nuspec Doc: A space-delimited list of tags and keywords that describe the package. This information is used to help make sure users can find the package using + searches in the Add Package Reference dialog box or filtering in the Package Manager Console window. + + + + + The technology tag of the product: + (none) Pure .NET + -gdi : GDI+, + -wpf : WPF, + -hybrid : Both GDI+ and WPF (hybrid). + -sl : Silverlight + -wp : Windows Phone + -wrt : Windows RunTime + + + + + The Pdf-Sharp-String-Resources. + + + + + Loads the message from the resource associated with the enum type and formats it + using 'String.Format'. Because this function is intended to be used during error + handling it never raises an exception. + + The type of the parameter identifies the resource + and the name of the enum identifies the message in the resource. + Parameters passed through 'String.Format'. + The formatted message. + + + + Gets the localized message identified by the specified DomMsgID. + + + + + Gets the resource manager for this module. + + + + + Writes all messages defined by PSMsgID. + + + + + Version info of this assembly. + + + + + Computes Adler32 checksum for a stream of data. An Adler32 + checksum is not as reliable as a CRC32 checksum, but a lot faster to + compute. + + The specification for Adler32 may be found in RFC 1950. + ZLIB Compressed Data Format Specification version 3.3) + + + From that document: + + "ADLER32 (Adler-32 checksum) + This contains a checksum value of the uncompressed data + (excluding any dictionary data) computed according to Adler-32 + algorithm. This algorithm is a 32-bit extension and improvement + of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073 + standard. + + Adler-32 is composed of two sums accumulated per byte: s1 is + the sum of all bytes, s2 is the sum of all s1 values. Both sums + are done modulo 65521. s1 is initialized to 1, s2 to zero. The + Adler-32 checksum is stored as s2*65536 + s1 in most- + significant-byte first (network) order." + + "8.2. The Adler-32 algorithm + + The Adler-32 algorithm is much faster than the CRC32 algorithm yet + still provides an extremely low probability of undetected errors. + + The modulo on unsigned long accumulators can be delayed for 5552 + bytes, so the modulo operation time is negligible. If the bytes + are a, b, c, the second sum is 3a + 2b + c + 3, and so is position + and order sensitive, unlike the first sum, which is just a + checksum. That 65521 is prime is important to avoid a possible + large class of two-byte errors that leave the check unchanged. + (The Fletcher checksum uses 255, which is not prime and which also + makes the Fletcher check insensitive to single byte changes 0 - + 255.) + + The sum s1 is initialized to 1 instead of zero to make the length + of the sequence part of s2, so that the length does not have to be + checked separately. (Any sequence of zeroes has a Fletcher + checksum of zero.)" + + + + + + + largest prime smaller than 65536 + + + + + Returns the Adler32 data checksum computed so far. + + + + + Creates a new instance of the Adler32 class. + The checksum starts off with a value of 1. + + + + + Resets the Adler32 checksum to the initial value. + + + + + Updates the checksum with a byte value. + + + The data value to add. The high byte of the int is ignored. + + + + + Updates the checksum with an array of bytes. + + + The source of the data to update with. + + + + + Updates the checksum with the bytes taken from the array. + + + an array of bytes + + + the start of the data used for this update + + + the number of bytes to use for this update + + + + + Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: + x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. + + Polynomials over GF(2) are represented in binary, one bit per coefficient, + with the lowest powers in the most significant bit. Then adding polynomials + is just exclusive-or, and multiplying a polynomial by x is a right shift by + one. If we call the above polynomial p, and represent a byte as the + polynomial q, also with the lowest power in the most significant bit (so the + byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + where a mod b means the remainder after dividing a by b. + + This calculation is done using the shift-register method of multiplying and + taking the remainder. The register is initialized to zero, and for each + incoming bit, x^32 is added mod p to the register if the bit is a one (where + x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + x (which is shifting right by one and adding x^32 mod p if the bit shifted + out is a one). We start with the highest power (least significant bit) of + q and repeat for all eight bits of q. + + The table is simply the CRC of all possible eight bit values. This is all + the information needed to generate CRC's on data a byte at a time for all + combinations of CRC register values and incoming bytes. + + + + + The crc data checksum so far. + + + + + Returns the CRC32 data checksum computed so far. + + + + + Resets the CRC32 data checksum as if no update was ever called. + + + + + Updates the checksum with the int bval. + + + the byte is taken as the lower 8 bits of value + + + + + Updates the checksum with the bytes taken from the array. + + + buffer an array of bytes + + + + + Adds the byte array to the data checksum. + + + The buffer which contains the data + + + The offset in the buffer where the data starts + + + The number of data bytes to update the CRC with. + + + + + Interface to compute a data checksum used by checked input/output streams. + A data checksum can be updated by one byte or with a byte array. After each + update the value of the current checksum can be returned by calling + getValue. The complete checksum object can also be reset + so it can be used again with new data. + + + + + Returns the data checksum computed so far. + + + + + Resets the data checksum as if no update was ever called. + + + + + Adds one byte to the data checksum. + + + the data value to add. The high byte of the int is ignored. + + + + + Updates the data checksum with the bytes taken from the array. + + + buffer an array of bytes + + + + + Adds the byte array to the data checksum. + + + The buffer which contains the data + + + The offset in the buffer where the data starts + + + the number of data bytes to add. + + + + + SharpZipBaseException is the base exception class for the SharpZipLibrary. + All library exceptions are derived from this. + + NOTE: Not all exceptions thrown will be derived from this class. + A variety of other exceptions are possible for example + + + + Initializes a new instance of the SharpZipBaseException class. + + + + + Initializes a new instance of the SharpZipBaseException class with a specified error message. + + A message describing the exception. + + + + Initializes a new instance of the SharpZipBaseException class with a specified + error message and a reference to the inner exception that is the cause of this exception. + + A message describing the exception. + The inner exception + + + + This is the Deflater class. The deflater class compresses input + with the deflate algorithm described in RFC 1951. It has several + compression levels and three different strategies described below. + + This class is not thread safe. This is inherent in the API, due + to the split of deflate and setInput. + + Author of the original java version: Jochen Hoenicke + + + + + The best and slowest compression level. This tries to find very + long and distant string repetitions. + + + + + The worst but fastest compression level. + + + + + The default compression level. + + + + + This level won't compress at all but output uncompressed blocks. + + + + + The compression method. This is the only method supported so far. + There is no need to use this constant at all. + + + + + Creates a new deflater with default compression level. + + + + + Creates a new deflater with given compression level. + + + the compression level, a value between NO_COMPRESSION + and BEST_COMPRESSION, or DEFAULT_COMPRESSION. + + if lvl is out of range. + + + + Creates a new deflater with given compression level. + + + the compression level, a value between NO_COMPRESSION + and BEST_COMPRESSION. + + + true, if we should suppress the Zlib/RFC1950 header at the + beginning and the adler checksum at the end of the output. This is + useful for the GZIP/PKZIP formats. + + if lvl is out of range. + + + + Resets the deflater. The deflater acts afterwards as if it was + just created with the same compression level and strategy as it + had before. + + + + + Gets the current adler checksum of the data that was processed so far. + + + + + Gets the number of input bytes processed so far. + + + + + Gets the number of output bytes so far. + + + + + Flushes the current input block. Further calls to deflate() will + produce enough output to inflate everything in the current input + block. This is not part of Sun's JDK so I have made it package + private. It is used by DeflaterOutputStream to implement + flush(). + + + + + Finishes the deflater with the current input block. It is an error + to give more input after this method was called. This method must + be called to force all bytes to be flushed. + + + + + Returns true if the stream was finished and no more output bytes + are available. + + + + + Returns true, if the input buffer is empty. + You should then call setInput(). + NOTE: This method can also return true when the stream + was finished. + + + + + Sets the data which should be compressed next. This should be only + called when needsInput indicates that more input is needed. + If you call setInput when needsInput() returns false, the + previous input that is still pending will be thrown away. + The given byte array should not be changed, before needsInput() returns + true again. + This call is equivalent to setInput(input, 0, input.length). + + + the buffer containing the input data. + + + if the buffer was finished() or ended(). + + + + + Sets the data which should be compressed next. This should be + only called when needsInput indicates that more input is needed. + The given byte array should not be changed, before needsInput() returns + true again. + + + the buffer containing the input data. + + + the start of the data. + + + the number of data bytes of input. + + + if the buffer was Finish()ed or if previous input is still pending. + + + + + Sets the compression level. There is no guarantee of the exact + position of the change, but if you call this when needsInput is + true the change of compression level will occur somewhere near + before the end of the so far given input. + + + the new compression level. + + + + + Get current compression level + + Returns the current compression level + + + + Sets the compression strategy. Strategy is one of + DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact + position where the strategy is changed, the same as for + SetLevel() applies. + + + The new compression strategy. + + + + + Deflates the current input block with to the given array. + + + The buffer where compressed data is stored + + + The number of compressed bytes added to the output, or 0 if either + IsNeedingInput() or IsFinished returns true or length is zero. + + + + + Deflates the current input block to the given array. + + + Buffer to store the compressed data. + + + Offset into the output array. + + + The maximum number of bytes that may be stored. + + + The number of compressed bytes added to the output, or 0 if either + needsInput() or finished() returns true or length is zero. + + + If Finish() was previously called. + + + If offset or length don't match the array length. + + + + + Sets the dictionary which should be used in the deflate process. + This call is equivalent to setDictionary(dict, 0, dict.Length). + + + the dictionary. + + + if SetInput () or Deflate () were already called or another dictionary was already set. + + + + + Sets the dictionary which should be used in the deflate process. + The dictionary is a byte array containing strings that are + likely to occur in the data which should be compressed. The + dictionary is not stored in the compressed output, only a + checksum. To decompress the output you need to supply the same + dictionary again. + + + The dictionary data + + + The index where dictionary information commences. + + + The number of bytes in the dictionary. + + + If SetInput () or Deflate() were already called or another dictionary was already set. + + + + + Compression level. + + + + + If true no Zlib/RFC1950 headers or footers are generated + + + + + The current state. + + + + + The total bytes of output written. + + + + + The pending output. + + + + + The deflater engine. + + + + + This class contains constants used for deflation. + + + + + Set to true to enable debugging + + + + + Written to Zip file to identify a stored block + + + + + Identifies static tree in Zip file + + + + + Identifies dynamic tree in Zip file + + + + + Header flag indicating a preset dictionary for deflation + + + + + Sets internal buffer sizes for Huffman encoding + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Strategies for deflater + + + + + The default strategy + + + + + This strategy will only allow longer string repetitions. It is + useful for random data with a small character set. + + + + + This strategy will not look for string repetitions at all. It + only encodes with Huffman trees (which means, that more common + characters get a smaller encoding. + + + + + Low level compression engine for deflate algorithm which uses a 32K sliding window + with secondary compression from Huffman/Shannon-Fano codes. + + + + + Construct instance with pending buffer + + + Pending buffer to use + > + + + + Deflate drives actual compression of data + + True to flush input buffers + Finish deflation with the current input. + Returns true if progress has been made. + + + + Sets input data to be deflated. Should only be called when NeedsInput() + returns true + + The buffer containing input data. + The offset of the first byte of data. + The number of bytes of data to use as input. + + + + Determines if more input is needed. + + Return true if input is needed via SetInput + + + + Set compression dictionary + + The buffer containing the dictionary data + The offset in the buffer for the first byte of data + The length of the dictionary data. + + + + Reset internal state + + + + + Reset Adler checksum + + + + + Get current value of Adler checksum + + + + + Total data processed + + + + + Get/set the deflate strategy + + + + + Set the deflate level (0-9) + + The value to set the level to. + + + + Fill the window + + + + + Inserts the current string in the head hash and returns the previous + value for this hash. + + The previous hash value + + + + Find the best (longest) string in the window matching the + string starting at strstart. + + Preconditions: + + strstart + MAX_MATCH <= window.length. + + + True if a match greater than the minimum length is found + + + + Hashtable, hashing three characters to an index for window, so + that window[index]..window[index+2] have this hash code. + Note that the array should really be unsigned short, so you need + to and the values with 0xffff. + + + + + prev[index & WMASK] points to the previous index that has the + same hash code as the string starting at index. This way + entries with the same hash code are in a linked list. + Note that the array should really be unsigned short, so you need + to and the values with 0xffff. + + + + + Points to the current character in the window. + + + + + lookahead is the number of characters starting at strstart in + window that are valid. + So window[strstart] until window[strstart+lookahead-1] are valid + characters. + + + + + This array contains the part of the uncompressed stream that + is of relevance. The current character is indexed by strstart. + + + + + The current compression function. + + + + + The input data for compression. + + + + + The total bytes of input read. + + + + + The offset into inputBuf, where input data starts. + + + + + The end offset of the input data. + + + + + The adler checksum + + + + + This is the DeflaterHuffman class. + + This class is not thread safe. This is inherent in the API, due + to the split of Deflate and SetInput. + + author of the original java version : Jochen Hoenicke + + + + + Resets the internal state of the tree + + + + + Check that all frequencies are zero + + + At least one frequency is non-zero + + + + + Set static codes and length + + new codes + length for new codes + + + + Build dynamic codes and lengths + + + + + Get encoded length + + Encoded length, the sum of frequencies * lengths + + + + Scan a literal or distance tree to determine the frequencies of the codes + in the bit length tree. + + + + + Write tree values + + Tree to write + + + + Pending buffer to use + + + + + Construct instance with pending buffer + + Pending buffer to use + + + + Reset internal state + + + + + Write all trees to pending buffer + + The number/rank of treecodes to send. + + + + Compress current buffer writing data to pending buffer + + + + + Flush block to output with no compression + + Data to write + Index of first byte to write + Count of bytes to write + True if this is the last block + + + + Flush block to output with compression + + Data to flush + Index of first byte to flush + Count of bytes to flush + True if this is the last block + + + + Get value indicating if internal buffer is full + + true if buffer is full + + + + Add literal to buffer + + Literal value to add to buffer. + Value indicating internal buffer is full + + + + Add distance code and length to literal and distance trees + + Distance code + Length + Value indicating if internal buffer is full + + + + Reverse the bits of a 16 bit value. + + Value to reverse bits + Value with bits reversed + + + + This class stores the pending output of the Deflater. + + Author of the original java version: Jochen Hoenicke + + + + + Construct instance with default buffer size + + + + + Inflater is used to decompress data that has been compressed according + to the "deflate" standard described in rfc1951. + + By default Zlib (rfc1950) headers and footers are expected in the input. + You can use constructor public Inflater(bool noHeader) passing true + if there is no Zlib header information + + The usage is as following. First you have to set some input with + SetInput(), then Inflate() it. If inflate doesn't + inflate any bytes there may be three reasons: +
    +
  • IsNeedingInput() returns true because the input buffer is empty. + You have to provide more input with SetInput(). + NOTE: IsNeedingInput() also returns true when, the stream is finished. +
  • +
  • IsNeedingDictionary() returns true, you have to provide a preset + dictionary with SetDictionary().
  • +
  • IsFinished returns true, the inflater has finished.
  • +
+ Once the first output byte is produced, a dictionary will not be + needed at a later stage. + + Author of the original java version: John Leuner, Jochen Hoenicke +
+
+ + + Copy lengths for literal codes 257..285 + + + + + Extra bits for literal codes 257..285 + + + + + Copy offsets for distance codes 0..29 + + + + + Extra bits for distance codes + + + + + These are the possible states for an inflater + + + + + This variable contains the current state. + + + + + The adler checksum of the dictionary or of the decompressed + stream, as it is written in the header resp. footer of the + compressed stream. + Only valid if mode is DECODE_DICT or DECODE_CHKSUM. + + + + + The number of bits needed to complete the current state. This + is valid, if mode is DECODE_DICT, DECODE_CHKSUM, + DECODE_HUFFMAN_LENBITS or DECODE_HUFFMAN_DISTBITS. + + + + + True, if the last block flag was set in the last block of the + inflated stream. This means that the stream ends after the + current block. + + + + + The total number of inflated bytes. + + + + + The total number of bytes set with setInput(). This is not the + value returned by the TotalIn property, since this also includes the + unprocessed input. + + + + + This variable stores the noHeader flag that was given to the constructor. + True means, that the inflated stream doesn't contain a Zlib header or + footer. + + + + + Creates a new inflater or RFC1951 decompressor + RFC1950/Zlib headers and footers will be expected in the input data + + + + + Creates a new inflater. + + + True if no RFC1950/Zlib header and footer fields are expected in the input data + + This is used for GZIPed/Zipped input. + + For compatibility with + Sun JDK you should provide one byte of input more than needed in + this case. + + + + + Resets the inflater so that a new stream can be decompressed. All + pending input and output will be discarded. + + + + + Decodes a zlib/RFC1950 header. + + + False if more input is needed. + + + The header is invalid. + + + + + Decodes the dictionary checksum after the deflate header. + + + False if more input is needed. + + + + + Decodes the huffman encoded symbols in the input stream. + + + false if more input is needed, true if output window is + full or the current block ends. + + + if deflated stream is invalid. + + + + + Decodes the adler checksum after the deflate stream. + + + false if more input is needed. + + + If checksum doesn't match. + + + + + Decodes the deflated stream. + + + false if more input is needed, or if finished. + + + if deflated stream is invalid. + + + + + Sets the preset dictionary. This should only be called, if + needsDictionary() returns true and it should set the same + dictionary, that was used for deflating. The getAdler() + function returns the checksum of the dictionary needed. + + + The dictionary. + + + + + Sets the preset dictionary. This should only be called, if + needsDictionary() returns true and it should set the same + dictionary, that was used for deflating. The getAdler() + function returns the checksum of the dictionary needed. + + + The dictionary. + + + The index into buffer where the dictionary starts. + + + The number of bytes in the dictionary. + + + No dictionary is needed. + + + The adler checksum for the buffer is invalid + + + + + Sets the input. This should only be called, if needsInput() + returns true. + + + the input. + + + + + Sets the input. This should only be called, if needsInput() + returns true. + + + The source of input data + + + The index into buffer where the input starts. + + + The number of bytes of input to use. + + + No input is needed. + + + The index and/or count are wrong. + + + + + Inflates the compressed stream to the output buffer. If this + returns 0, you should check, whether IsNeedingDictionary(), + IsNeedingInput() or IsFinished() returns true, to determine why no + further output is produced. + + + the output buffer. + + + The number of bytes written to the buffer, 0 if no further + output can be produced. + + + if buffer has length 0. + + + if deflated stream is invalid. + + + + + Inflates the compressed stream to the output buffer. If this + returns 0, you should check, whether needsDictionary(), + needsInput() or finished() returns true, to determine why no + further output is produced. + + + the output buffer. + + + the offset in buffer where storing starts. + + + the maximum number of bytes to output. + + + the number of bytes written to the buffer, 0 if no further output can be produced. + + + if count is less than 0. + + + if the index and / or count are wrong. + + + if deflated stream is invalid. + + + + + Returns true, if the input buffer is empty. + You should then call setInput(). + NOTE: This method also returns true when the stream is finished. + + + + + Returns true, if a preset dictionary is needed to inflate the input. + + + + + Returns true, if the inflater has finished. This means, that no + input is needed and no output can be produced. + + + + + Gets the adler checksum. This is either the checksum of all + uncompressed bytes returned by inflate(), or if needsDictionary() + returns true (and thus no output was yet produced) this is the + adler checksum of the expected dictionary. + + + the adler checksum. + + + + + Gets the total number of output bytes returned by Inflate(). + + + the total number of output bytes. + + + + + Gets the total number of processed compressed input bytes. + + + The total number of bytes of processed input bytes. + + + + + Gets the number of unprocessed input bytes. Useful, if the end of the + stream is reached and you want to further process the bytes after + the deflate stream. + + + The number of bytes of the input which have not been processed. + + + + + Huffman tree used for inflation + + + + + Literal length tree + + + + + Distance tree + + + + + Constructs a Huffman tree from the array of code lengths. + + + the array of code lengths + + + + + Reads the next symbol from input. The symbol is encoded using the + huffman tree. + + + input the input source. + + + the next symbol, or -1 if not enough input is available. + + + + + This class is general purpose class for writing data to a buffer. + + It allows you to write bits as well as bytes + Based on DeflaterPending.java + + Author of the original java version: Jochen Hoenicke + + + + + Internal work buffer + + + + + construct instance using default buffer size of 4096 + + + + + construct instance using specified buffer size + + + size to use for internal buffer + + + + + Clear internal state/buffers + + + + + Write a byte to buffer + + + The value to write + + + + + Write a short value to buffer LSB first + + + The value to write. + + + + + write an integer LSB first + + The value to write. + + + + Write a block of data to buffer + + data to write + offset of first byte to write + number of bytes to write + + + + The number of bits written to the buffer + + + + + Align internal buffer on a byte boundary + + + + + Write bits to internal buffer + + source of bits + number of bits to write + + + + Write a short value to internal buffer most significant byte first + + value to write + + + + Indicates if buffer has been flushed + + + + + Flushes the pending buffer into the given output array. If the + output array is to small, only a partial flush is done. + + The output array. + The offset into output array. + The maximum number of bytes to store. + The number of bytes flushed. + + + + Convert internal buffer to byte array. + Buffer is empty on completion + + + The internal buffer contents converted to a byte array. + + + + + A special stream deflating or compressing the bytes that are + written to it. It uses a Deflater to perform actual deflating.
+ Authors of the original java version: Tom Tromey, Jochen Hoenicke +
+
+ + + Creates a new DeflaterOutputStream with a default Deflater and default buffer size. + + + the output stream where deflated output should be written. + + + + + Creates a new DeflaterOutputStream with the given Deflater and + default buffer size. + + + the output stream where deflated output should be written. + + + the underlying deflater. + + + + + Creates a new DeflaterOutputStream with the given Deflater and + buffer size. + + + The output stream where deflated output is written. + + + The underlying deflater to use + + + The buffer size in bytes to use when deflating (minimum value 512) + + + bufsize is less than or equal to zero. + + + baseOutputStream does not support writing + + + deflater instance is null + + + + + Finishes the stream by calling finish() on the deflater. + + + Not all input is deflated + + + + + Get/set flag indicating ownership of the underlying stream. + When the flag is true will close the underlying stream also. + + + + + Allows client to determine if an entry can be patched after its added + + + + + Get/set the password used for encryption. + + When set to null or if the password is empty no encryption is performed + + + + Encrypt a block of data + + + Data to encrypt. NOTE the original contents of the buffer are lost + + + Offset of first byte in buffer to encrypt + + + Number of bytes in buffer to encrypt + + + + + Initializes encryption keys based on given . + + The password. + + + + Encrypt a single byte + + + The encrypted value + + + + + Update encryption keys + + + + + Deflates everything in the input buffers. This will call + def.deflate() until all bytes from the input buffers + are processed. + + + + + Gets value indicating stream can be read from + + + + + Gets a value indicating if seeking is supported for this stream + This property always returns false + + + + + Get value indicating if this stream supports writing + + + + + Get current length of stream + + + + + Gets the current position within the stream. + + Any attempt to set position + + + + Sets the current position of this stream to the given value. Not supported by this class! + + The offset relative to the to seek. + The to seek from. + The new position in the stream. + Any access + + + + Sets the length of this stream to the given value. Not supported by this class! + + The new stream length. + Any access + + + + Read a byte from stream advancing position by one + + The byte read cast to an int. THe value is -1 if at the end of the stream. + Any access + + + + Read a block of bytes from stream + + The buffer to store read data in. + The offset to start storing at. + The maximum number of bytes to read. + The actual number of bytes read. Zero if end of stream is detected. + Any access + + + + Asynchronous reads are not supported a NotSupportedException is always thrown + + The buffer to read into. + The offset to start storing data at. + The number of bytes to read + The async callback to use. + The state to use. + Returns an + Any access + + + + Asynchronous writes arent supported, a NotSupportedException is always thrown + + The buffer to write. + The offset to begin writing at. + The number of bytes to write. + The to use. + The state object. + Returns an IAsyncResult. + Any access + + + + Flushes the stream by calling Flush on the deflater and then + on the underlying stream. This ensures that all bytes are flushed. + + + + + Calls and closes the underlying + stream when is true. + + + + + Writes a single byte to the compressed output stream. + + + The byte value. + + + + + Writes bytes from an array to the compressed stream. + + + The byte array + + + The offset into the byte array where to start. + + + The number of bytes to write. + + + + + This buffer is used temporarily to retrieve the bytes from the + deflater and write them to the underlying output stream. + + + + + The deflater which is used to deflate the stream. + + + + + Base stream the deflater depends on. + + + + + An input buffer customised for use by + + + The buffer supports decryption of incoming data. + + + + + Initialise a new instance of with a default buffer size + + The stream to buffer. + + + + Initialise a new instance of + + The stream to buffer. + The size to use for the buffer + A minimum buffer size of 1KB is permitted. Lower sizes are treated as 1KB. + + + + Get the length of bytes bytes in the + + + + + Get the contents of the raw data buffer. + + This may contain encrypted data. + + + + Get the number of useable bytes in + + + + + Get the contents of the clear text buffer. + + + + + Get/set the number of bytes available + + + + + Call passing the current clear text buffer contents. + + The inflater to set input for. + + + + Fill the buffer from the underlying input stream. + + + + + Read a buffer directly from the input stream + + The buffer to fill + Returns the number of bytes read. + + + + Read a buffer directly from the input stream + + The buffer to read into + The offset to start reading data into. + The number of bytes to read. + Returns the number of bytes read. + + + + Read clear text data from the input stream. + + The buffer to add data to. + The offset to start adding data at. + The number of bytes to read. + Returns the number of bytes actually read. + + + + Read a from the input stream. + + Returns the byte read. + + + + Read an in little endian byte order. + + The short value read case to an int. + + + + Read an in little endian byte order. + + The int value read. + + + + Read a in little endian byte order. + + The long value read. + + + + This filter stream is used to decompress data compressed using the "deflate" + format. The "deflate" format is described in RFC 1951. + + This stream may form the basis for other decompression filters, such + as the GZipInputStream. + + Author of the original java version: John Leuner. + + + + + Create an InflaterInputStream with the default decompressor + and a default buffer size of 4KB. + + + The InputStream to read bytes from + + + + + Create an InflaterInputStream with the specified decompressor + and a default buffer size of 4KB. + + + The source of input data + + + The decompressor used to decompress data read from baseInputStream + + + + + Create an InflaterInputStream with the specified decompressor + and the specified buffer size. + + + The InputStream to read bytes from + + + The decompressor to use + + + Size of the buffer to use + + + + + Get/set flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + + The default value is true. + + + + + Skip specified number of bytes of uncompressed data + + + Number of bytes to skip + + + The number of bytes skipped, zero if the end of + stream has been reached + + + The number of bytes to skip is less than or equal to zero. + + + + + Clear any cryptographic state. + + + + + Returns 0 once the end of the stream (EOF) has been reached. + Otherwise returns 1. + + + + + Fills the buffer with more data to decompress. + + + Stream ends early + + + + + Gets a value indicating whether the current stream supports reading + + + + + Gets a value of false indicating seeking is not supported for this stream. + + + + + Gets a value of false indicating that this stream is not writeable. + + + + + A value representing the length of the stream in bytes. + + + + + The current position within the stream. + Throws a NotSupportedException when attempting to set the position + + Attempting to set the position + + + + Flushes the baseInputStream + + + + + Sets the position within the current stream + Always throws a NotSupportedException + + The relative offset to seek to. + The defining where to seek from. + The new position in the stream. + Any access + + + + Set the length of the current stream + Always throws a NotSupportedException + + The new length value for the stream. + Any access + + + + Writes a sequence of bytes to stream and advances the current position + This method always throws a NotSupportedException + + Thew buffer containing data to write. + The offset of the first byte to write. + The number of bytes to write. + Any access + + + + Writes one byte to the current stream and advances the current position + Always throws a NotSupportedException + + The byte to write. + Any access + + + + Entry point to begin an asynchronous write. Always throws a NotSupportedException. + + The buffer to write data from + Offset of first byte to write + The maximum number of bytes to write + The method to be called when the asynchronous write operation is completed + A user-provided object that distinguishes this particular asynchronous write request from other requests + An IAsyncResult that references the asynchronous write + Any access + + + + Closes the input stream. When + is true the underlying stream is also closed. + + + + + Reads decompressed data into the provided buffer byte array + + + The array to read and decompress data into + + + The offset indicating where the data should be placed + + + The number of bytes to decompress + + The number of bytes read. Zero signals the end of stream + + Inflater needs a dictionary + + + + + Decompressor for this stream + + + + + Input buffer for this stream. + + + + + Base stream the inflater reads from. + + + + + Flag indicating wether this instance has been closed or not. + + + + + Flag indicating wether this instance is designated the stream owner. + When closing if this flag is true the underlying stream is closed. + + + + + Contains the output from the Inflation process. + We need to have a window so that we can refer backwards into the output stream + to repeat stuff.
+ Author of the original java version: John Leuner +
+
+ + + Write a byte to this output window + + value to write + + if window is full + + + + + Append a byte pattern already in the window itself + + length of pattern to copy + distance from end of window pattern occurs + + If the repeated data overflows the window + + + + + Copy from input manipulator to internal window + + source of data + length of data to copy + the number of bytes copied + + + + Copy dictionary to window + + source dictionary + offset of start in source dictionary + length of dictionary + + If window isnt empty + + + + + Get remaining unfilled space in window + + Number of bytes left in window + + + + Get bytes available for output in window + + Number of bytes filled + + + + Copy contents of window to output + + buffer to copy to + offset to start at + number of bytes to count + The number of bytes copied + + If a window underflow occurs + + + + + Reset by clearing window so GetAvailable returns 0 + + + + + This class allows us to retrieve a specified number of bits from + the input buffer, as well as copy big byte blocks. + + It uses an int buffer to store up to 31 bits for direct + manipulation. This guarantees that we can get at least 16 bits, + but we only need at most 15, so this is all safe. + + There are some optimizations in this class, for example, you must + never peek more than 8 bits more than needed, and you must first + peek bits before you may drop them. This is not a general purpose + class but optimized for the behaviour of the Inflater. + + Authors of the original java version: John Leuner, Jochen Hoenicke + + + + + Constructs a default StreamManipulator with all buffers empty + + + + + Get the next sequence of bits but don't increase input pointer. bitCount must be + less or equal 16 and if this call succeeds, you must drop + at least n - 8 bits in the next call. + + The number of bits to peek. + + the value of the bits, or -1 if not enough bits available. */ + + + + + Drops the next n bits from the input. You should have called PeekBits + with a bigger or equal n before, to make sure that enough bits are in + the bit buffer. + + The number of bits to drop. + + + + Gets the next n bits and increases input pointer. This is equivalent + to followed by , except for correct error handling. + + The number of bits to retrieve. + + the value of the bits, or -1 if not enough bits available. + + + + + Gets the number of bits available in the bit buffer. This must be + only called when a previous PeekBits() returned -1. + + + the number of bits available. + + + + + Gets the number of bytes available. + + + The number of bytes available. + + + + + Skips to the next byte boundary. + + + + + Returns true when SetInput can be called + + + + + Copies bytes from input buffer to output buffer starting + at output[offset]. You have to make sure, that the buffer is + byte aligned. If not enough bytes are available, copies fewer + bytes. + + + The buffer to copy bytes to. + + + The offset in the buffer at which copying starts + + + The length to copy, 0 is allowed. + + + The number of bytes copied, 0 if no bytes were available. + + + Length is less than zero + + + Bit buffer isnt byte aligned + + + + + Resets state and empties internal buffers + + + + + Add more input for consumption. + Only call when IsNeedingInput returns true + + data to be input + offset of first byte of input + number of bytes of input to add. + + + + Determines how entries are tested to see if they should use Zip64 extensions or not. + + + + + Zip64 will not be forced on entries during processing. + + An entry can have this overridden if required ZipEntry.ForceZip64" + + + + Zip64 should always be used. + + + + + #ZipLib will determine use based on entry values when added to archive. + + + + + The kind of compression used for an entry in an archive + + + + + A direct copy of the file contents is held in the archive + + + + + Common Zip compression method using a sliding dictionary + of up to 32KB and secondary compression from Huffman/Shannon-Fano trees + + + + + An extension to deflate with a 64KB window. Not supported by #Zip currently + + + + + BZip2 compression. Not supported by #Zip. + + + + + WinZip special for AES encryption, Now supported by #Zip. + + + + + Identifies the encryption algorithm used for an entry + + + + + No encryption has been used. + + + + + Encrypted using PKZIP 2.0 or 'classic' encryption. + + + + + DES encryption has been used. + + + + + RC2 encryption has been used for encryption. + + + + + Triple DES encryption with 168 bit keys has been used for this entry. + + + + + Triple DES with 112 bit keys has been used for this entry. + + + + + AES 128 has been used for encryption. + + + + + AES 192 has been used for encryption. + + + + + AES 256 has been used for encryption. + + + + + RC2 corrected has been used for encryption. + + + + + Blowfish has been used for encryption. + + + + + Twofish has been used for encryption. + + + + + RC4 has been used for encryption. + + + + + An unknown algorithm has been used for encryption. + + + + + Defines the contents of the general bit flags field for an archive entry. + + + + + Bit 0 if set indicates that the file is encrypted + + + + + Bits 1 and 2 - Two bits defining the compression method (only for Method 6 Imploding and 8,9 Deflating) + + + + + Bit 3 if set indicates a trailing data desciptor is appended to the entry data + + + + + Bit 4 is reserved for use with method 8 for enhanced deflation + + + + + Bit 5 if set indicates the file contains Pkzip compressed patched data. + Requires version 2.7 or greater. + + + + + Bit 6 if set indicates strong encryption has been used for this entry. + + + + + Bit 7 is currently unused + + + + + Bit 8 is currently unused + + + + + Bit 9 is currently unused + + + + + Bit 10 is currently unused + + + + + Bit 11 if set indicates the filename and + comment fields for this file must be encoded using UTF-8. + + + + + Bit 12 is documented as being reserved by PKware for enhanced compression. + + + + + Bit 13 if set indicates that values in the local header are masked to hide + their actual values, and the central directory is encrypted. + + + Used when encrypting the central directory contents. + + + + + Bit 14 is documented as being reserved for use by PKware + + + + + Bit 15 is documented as being reserved for use by PKware + + + + + This class contains constants used for Zip format files + + + + + The version made by field for entries in the central header when created by this library + + + This is also the Zip version for the library when comparing against the version required to extract + for an entry. See ZipEntry.CanDecompress. + + + + + The version made by field for entries in the central header when created by this library + + + This is also the Zip version for the library when comparing against the version required to extract + for an entry. See ZipInputStream.CanDecompressEntry. + + + + + The minimum version required to support strong encryption + + + + + The minimum version required to support strong encryption + + + + + Version indicating AES encryption + + + + + The version required for Zip64 extensions (4.5 or higher) + + + + + Size of local entry header (excluding variable length fields at end) + + + + + Size of local entry header (excluding variable length fields at end) + + + + + Size of Zip64 data descriptor + + + + + Size of data descriptor + + + + + Size of data descriptor + + + + + Size of central header entry (excluding variable fields) + + + + + Size of central header entry + + + + + Size of end of central record (excluding variable fields) + + + + + Size of end of central record (excluding variable fields) + + + + + Size of 'classic' cryptographic header stored before any entry data + + + + + Size of cryptographic header stored before entry data + + + + + Signature for local entry header + + + + + Signature for local entry header + + + + + Signature for spanning entry + + + + + Signature for spanning entry + + + + + Signature for temporary spanning entry + + + + + Signature for temporary spanning entry + + + + + Signature for data descriptor + + + This is only used where the length, Crc, or compressed size isnt known when the + entry is created and the output stream doesnt support seeking. + The local entry cannot be 'patched' with the correct values in this case + so the values are recorded after the data prefixed by this header, as well as in the central directory. + + + + + Signature for data descriptor + + + This is only used where the length, Crc, or compressed size isnt known when the + entry is created and the output stream doesnt support seeking. + The local entry cannot be 'patched' with the correct values in this case + so the values are recorded after the data prefixed by this header, as well as in the central directory. + + + + + Signature for central header + + + + + Signature for central header + + + + + Signature for Zip64 central file header + + + + + Signature for Zip64 central file header + + + + + Signature for Zip64 central directory locator + + + + + Signature for archive extra data signature (were headers are encrypted). + + + + + Central header digitial signature + + + + + Central header digitial signature + + + + + End of central directory record signature + + + + + End of central directory record signature + + + + + Default encoding used for string conversion. 0 gives the default system OEM code page. + Dont use unicode encodings if you want to be Zip compatible! + Using the default code page isnt the full solution necessarily + there are many variable factors, codepage 850 is often a good choice for + European users, however be careful about compatibility. + + + + + Convert a portion of a byte array to a string. + + + Data to convert to string + + + Number of bytes to convert starting from index 0 + + + data[0]..data[count - 1] converted to a string + + + + + Convert a byte array to string + + + Byte array to convert + + + dataconverted to a string + + + + + Convert a byte array to string + + The applicable general purpose bits flags + + Byte array to convert + + The number of bytes to convert. + + dataconverted to a string + + + + + Convert a byte array to string + + + Byte array to convert + + The applicable general purpose bits flags + + dataconverted to a string + + + + + Convert a string to a byte array + + + String to convert to an array + + Converted array + + + + Convert a string to a byte array + + The applicable general purpose bits flags + + String to convert to an array + + Converted array + + + + Initialise default instance of ZipConstants + + + Private to prevent instances being created. + + + + + Represents exception conditions specific to Zip archive handling + + + + + Initializes a new instance of the ZipException class. + + + + + Initializes a new instance of the ZipException class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initialise a new instance of ZipException. + + A message describing the error. + The exception that is the cause of the current exception. + +
+
diff --git a/GenesisCordonelInterface/RuntimePackage/Package/QRCoder.dll b/GenesisCordonelInterface/RuntimePackage/Package/QRCoder.dll new file mode 100644 index 000000000..6cfbf076e Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/QRCoder.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/RegAsm4.exe b/GenesisCordonelInterface/RuntimePackage/Package/RegAsm4.exe new file mode 100644 index 000000000..b157462fe Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/RegAsm4.exe differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/RestSharp.dll b/GenesisCordonelInterface/RuntimePackage/Package/RestSharp.dll new file mode 100644 index 000000000..ce4ed3839 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/RestSharp.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/RestSharp.xml b/GenesisCordonelInterface/RuntimePackage/Package/RestSharp.xml new file mode 100644 index 000000000..5069712d1 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/RestSharp.xml @@ -0,0 +1,3024 @@ + + + + RestSharp + + + + + Tries to Authenticate with the credentials of the currently logged in user, or impersonate a user + + + + + Authenticate with the credentials of the currently logged in user + + + + + Authenticate by impersonation + + + + + + + Authenticate by impersonation, using an existing ICredentials instance + + + + + + + + + Base class for OAuth 2 Authenticators. + + + Since there are many ways to authenticate in OAuth2, + this is used as a base class to differentiate between + other authenticators. + + Any other OAuth2 authenticators must derive from this + abstract class. + + + + + Access token to be used when authenticating. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + Gets the access token. + + + + + The OAuth 2 authenticator using URI query parameter. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.2 + + + + + Initializes a new instance of the class. + + + The access token. + + + + + The OAuth 2 authenticator using the authorization request header field. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.1 + + + + + Stores the Authorization header value as "[tokenType] accessToken". used for performance. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + Initializes a new instance of the class. + + + The access token. + + + The token type. + + + + + All text parameters are UTF-8 encoded (per section 5.1). + + + + + + Generates a random 16-byte lowercase alphanumeric string. + + + + + + + Generates a timestamp based on the current elapsed seconds since '01/01/1970 0000 GMT" + + + + + + + Generates a timestamp based on the elapsed seconds of a given time since '01/01/1970 0000 GMT" + + + A specified point in time. + + + + + The set of characters that are unreserved in RFC 2396 but are NOT unreserved in RFC 3986. + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + The value to escape. + The escaped value. + + The method is supposed to take on + RFC 3986 behavior if certain elements are present in a .config file. Even if this + actually worked (which in my experiments it doesn't), we can't rely on every + host actually having this configuration element present. + + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + + + + + + Sorts a collection of key-value pairs by name, and then value if equal, + concatenating them into a single string. This string should be encoded + prior to, or after normalization is run. + + + + + + + + Sorts a by name, and then value if equal. + + A collection of parameters to sort + A sorted parameter collection + + + + Creates a request URL suitable for making OAuth requests. + Resulting URLs must exclude port 80 or port 443 when accompanied by HTTP and HTTPS, respectively. + Resulting URLs must be lower case. + + + The original request URL + + + + + Creates a request elements concatentation value to send with a request. + This is also known as the signature base. + + + + The request's HTTP method type + The request URL + The request's parameters + A signature base string + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The signature base + The consumer secret + The token secret + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer secret + The token secret + + + + + A class to encapsulate OAuth authentication flow. + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + Any existing, non-OAuth query parameters desired in the request + + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + Generates a instance to pass to an + for the purpose of exchanging user credentials + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + + + + + + + + + + Allows control how class and property names and values are deserialized by XmlAttributeDeserializer + + + + + The name to use for the serialized element + + + + + Sets if the property to Deserialize is an Attribute or Element (Default: false) + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Types of parameters that can be added to requests + + + + + Data formats + + + + + HTTP method to use when making requests + + + + + Format strings for commonly-used date formats + + + + + .NET format string for ISO 8601 date format + + + + + .NET format string for roundtrip date format + + + + + Status for responses (surprised?) + + + + + Extension method overload! + + + + + Save a byte array to a file + + Bytes to save + Full path to save file to + + + + Read a stream into a byte array + + Stream to read + byte[] + + + + Copies bytes from one stream to another + + The input stream. + The output stream. + + + + Converts a byte array to a string, using its byte order mark to convert it to the right encoding. + http://www.shrinkrays.net/code-snippets/csharp/an-extension-method-for-converting-a-byte-array-to-a-string.aspx + + An array of bytes to convert + The byte as a string. + + + + Decodes an HTML-encoded string and returns the decoded string. + + The HTML string to decode. + The decoded text. + + + + Decodes an HTML-encoded string and sends the resulting output to a TextWriter output stream. + + The HTML string to decode + The TextWriter output stream containing the decoded string. + + + + HTML-encodes a string and sends the resulting output to a TextWriter output stream. + + The string to encode. + The TextWriter output stream containing the encoded string. + + + + Reflection extensions + + + + + Retrieve an attribute from a member (property) + + Type of attribute to retrieve + Member to retrieve attribute from + + + + + Retrieve an attribute from a type + + Type of attribute to retrieve + Type to retrieve attribute from + + + + + Checks a type to see if it derives from a raw generic (e.g. List[[]]) + + + + + + + + Find a value from a System.Enum by trying several possible variants + of the string value of the enum. + + Type of enum + Value for which to search + The culture used to calculate the name variants + + + + + Convert a to a instance. + + The response status. + + responseStatus + + + + Uses Uri.EscapeDataString() based on recommendations on MSDN + http://blogs.msdn.com/b/yangxind/archive/2006/11/09/don-t-use-net-system-uri-unescapedatastring-in-url-decoding.aspx + + + + + Check that a string is not null or empty + + String to check + bool + + + + Remove underscores from a string + + String to process + string + + + + Parses most common JSON date formats + + JSON value to parse + + DateTime + + + + Remove leading and trailing " from a string + + String to parse + String + + + + Checks a string to see if it matches a regex + + String to check + Pattern to match + bool + + + + Converts a string to pascal case + + String to convert + + string + + + + Converts a string to pascal case with the option to remove underscores + + String to convert + Option to remove underscores + + + + + + Converts a string to camel case + + String to convert + + String + + + + Convert the first letter of a string to lower case + + String to convert + string + + + + Checks to see if a string is all uppper case + + String to check + bool + + + + Add underscores to a pascal-cased string + + String to convert + string + + + + Add dashes to a pascal-cased string + + String to convert + string + + + + Add an undescore prefix to a pascasl-cased string + + + + + + + Add spaces to a pascal-cased string + + String to convert + string + + + + Return possible variants of a name for name matching. + + String to convert + The culture to use for conversion + IEnumerable<string> + + + + XML Extension Methods + + + + + Returns the name of an element with the namespace if specified + + Element name + XML Namespace + + + + + Container for files to be uploaded with requests + + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The content type to use in the request. + The + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The using the default content type. + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + HttpWebRequest wrapper (async methods) + + + HttpWebRequest wrapper + + + HttpWebRequest wrapper (sync methods) + + + + + Always send a multipart/form-data request - even when no Files are present. + + + + + An alternative to RequestBody, for when the caller already has the byte array. + + + + + Execute an async POST-style request with the specified HTTP Method. + + + The HTTP method to execute. + + + + + Execute an async GET-style request with the specified HTTP Method. + + + The HTTP method to execute. + + + + + Creates an IHttp + + + + + + Default constructor + + + + + Execute a POST request + + + + + Execute a PUT request + + + + + Execute a GET request + + + + + Execute a HEAD request + + + + + Execute an OPTIONS request + + + + + Execute a DELETE request + + + + + Execute a PATCH request + + + + + Execute a MERGE request + + + + + Execute a GET-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Execute a POST-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + True if this HTTP request has any HTTP parameters + + + + + True if this HTTP request has any HTTP cookies + + + + + True if a request body has been specified + + + + + True if files have been set to be uploaded + + + + + Always send a multipart/form-data request - even when no Files are present. + + + + + UserAgent to be sent with request + + + + + Timeout in milliseconds to be used for the request + + + + + The number of milliseconds before the writing or reading times out. + + + + + System.Net.ICredentials to be sent with request + + + + + The System.Net.CookieContainer to be used for the request + + + + + The method to use to write the response instead of reading into RawBytes + + + + + Collection of files to be sent with request + + + + + Whether or not HTTP 3xx response redirects should be automatically followed + + + + + X509CertificateCollection to be sent with request + + + + + Maximum number of automatic redirects to follow if FollowRedirects is true + + + + + Determine whether or not the "default credentials" (e.g. the user account under which the current process is running) + will be sent along to the server. + + + + + HTTP headers to be sent with request + + + + + HTTP parameters (QueryString or Form values) to be sent with request + + + + + HTTP cookies to be sent with request + + + + + Request body to be sent with request + + + + + Content type of the request body. + + + + + An alternative to RequestBody, for when the caller already has the byte array. + + + + + URL to call for this request + + + + + Flag to send authorisation header with the HttpWebRequest + + + + + Proxy info to be sent with request + + + + + Representation of an HTTP cookie + + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + + Container for HTTP file + + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + Representation of an HTTP header + + + + + Name of the header + + + + + Value of the header + + + + + Representation of an HTTP parameter (QueryString or Form value) + + + + + Name of the parameter + + + + + Value of the parameter + + + + + HTTP response data + + + + + HTTP response data + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + Default constructor + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + Lazy-loaded string representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + + + + + + + + + + + + + + + + + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes the request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + The cancellation token + + + + Executes the request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + + + + Executes a GET-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + + + + Executes a GET-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + The cancellation token + + + + Executes a POST-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + + + + Executes a POST-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + The cancellation token + + + + Executes the request and callback asynchronously, authenticating if needed + + Request to be executed + The cancellation token + + + + Executes the request asynchronously, authenticating if needed + + Request to be executed + + + + Executes a GET-style asynchronously, authenticating if needed + + Request to be executed + + + + Executes a GET-style asynchronously, authenticating if needed + + Request to be executed + The cancellation token + + + + Executes a POST-style asynchronously, authenticating if needed + + Request to be executed + + + + Executes a POST-style asynchronously, authenticating if needed + + Request to be executed + The cancellation token + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X509CertificateCollection to be sent with request + + + + + Adds a file to the Files collection to be included with a POST or PUT request + (other methods do not support file uploads). + + The parameter name to use in the request + Full path to file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + The default format is XML. Change RequestFormat if you wish to use a different serialization format. + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + The default format is XML. Change RequestFormat if you wish to use a different serialization format. + + The object to serialize + This request + + + + Serializes obj to JSON format and adds it to the request body. + + The object to serialize + This request + + + + Serializes obj to XML format and adds it to the request body. + + The object to serialize + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + Serializes obj to XML format and passes xmlNamespace then adds it to the request body. + + The object to serialize + The XML namespace to use when serializing + This request + + + + Calls AddParameter() for all public, readable properties specified in the includedProperties list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are five types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - Cookie: Adds the name/value pair to the HTTP request's Cookies collection + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Shortcut to AddParameter(name, value, QueryString) overload + + Name of the parameter to add + Value of the parameter to add + + + + + Always send a multipart/form-data request - even when no Files are present. + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Set this to write response to Stream rather than reading into memory. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + The number of milliseconds before the writing or reading times out. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Determine whether or not the "default credentials" (e.g. the user account under which the current process is running) + will be sent along to the server. The default is false. + + + + + Container for data sent back from API + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exceptions thrown during the request, if any. + + Will contain only network transport or framework exceptions thrown during the request. + HTTP protocol errors are handled by RestSharp and will not appear here. + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Parameter container for REST requests + + + + + Return a human-readable representation of this parameter + + String + + + + Name of the parameter + + + + + Value of the parameter + + + + + Type of the parameter + + + + + Client to translate RestRequests into Http requests and process response result + + + + + Executes the request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes the request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a GET-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + + + + Executes a GET-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + The cancellation token + + + + Executes a POST-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + + + + Executes a POST-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + The cancellation token + + + + Executes the request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + + + + Executes the request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + The cancellation token + + + + Executes the request asynchronously, authenticating if needed + + Request to be executed + + + + Executes a GET-style asynchronously, authenticating if needed + + Request to be executed + + + + Executes a GET-style asynchronously, authenticating if needed + + Request to be executed + The cancellation token + + + + Executes a POST-style asynchronously, authenticating if needed + + Request to be executed + + + + Executes a POST-style asynchronously, authenticating if needed + + Request to be executed + The cancellation token + + + + Executes the request asynchronously, authenticating if needed + + Request to be executed + The cancellation token + + + + Default constructor that registers default content handlers + + + + + Sets the BaseUrl property for requests made by this client instance + + + + + + Sets the BaseUrl property for requests made by this client instance + + + + + + Registers a content handler to process response content + + MIME content type of the response content + Deserializer to use to process content + + + + Remove a content handler for the specified MIME content type + + MIME content type to remove + + + + Remove all content handlers + + + + + Retrieve the handler for the specified MIME content type + + MIME content type to retrieve + IDeserializer instance + + + + Assembles URL to call based on parameters, method and resource + + RestRequest to execute + Assembled System.Uri + + + + Executes the specified request and downloads the response data + + Request to execute + Response data + + + + Executes the request and returns a response, authenticating if needed + + Request to be executed + RestResponse + + + + Executes the specified request and deserializes the response content using the appropriate content handler + + Target deserialization type + Request to execute + RestResponse[[T]] with deserialized data in Data property + + + + Parameters included with every request made with this instance of RestClient + If specified in both client and request, the request wins + + + + + Maximum number of redirects to follow if FollowRedirects is true + + + + + X509CertificateCollection to be sent with request + + + + + Proxy to use for requests made by this client instance. + Passed on to underlying WebRequest if set. + + + + + Default is true. Determine whether or not requests that result in + HTTP status codes of 3xx should follow returned redirect + + + + + The CookieContainer used for requests made by this client instance + + + + + UserAgent to use for requests made by this client instance + + + + + Timeout in milliseconds to use for requests made by this client instance + + + + + The number of milliseconds before the writing or reading times out. + + + + + Whether to invoke async callbacks using the SynchronizationContext.Current captured when invoked + + + + + Authenticator to use for requests made by this client instance + + + + + Combined with Request.Resource to construct URL for request + Should include scheme and domain without trailing slash. + + + client.BaseUrl = new Uri("http://example.com"); + + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Request to be executed + Callback function to be executed upon completion + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Target deserialization type + Request to be executed + Callback function to be executed upon completion providing access to the async handle + + + + Add a parameter to use on every request made with this client instance + + The IRestClient instance + Parameter to add + + + + + Removes a parameter from the default parameters that are used on every request made with this client instance + + The IRestClient instance + The name of the parameter that needs to be removed + + + + + Adds a HTTP parameter (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + Used on every request made by this client instance + + The IRestClient instance + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + The IRestClient instance + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddDefaultParameter(name, value, HttpHeader) overload + + The IRestClient instance + Name of the header to add + Value of the header to add + + + + + Shortcut to AddDefaultParameter(name, value, UrlSegment) overload + + The IRestClient instance + Name of the segment to add + Value of the segment to add + + + + + Container for data used to make requests + + + + + Default constructor + + + + + Sets Method property to value of method + + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Adds a file to the Files collection to be included with a POST or PUT request + (other methods do not support file uploads). + + The parameter name to use in the request + Full path to file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + The default format is XML. Change RequestFormat if you wish to use a different serialization format. + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + The default format is XML. Change RequestFormat if you wish to use a different serialization format. + + The object to serialize + This request + + + + Serializes obj to JSON format and adds it to the request body. + + The object to serialize + This request + + + + Serializes obj to XML format and adds it to the request body. + + The object to serialize + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + Serializes obj to XML format and passes xmlNamespace then adds it to the request body. + + The object to serialize + The XML namespace to use when serializing + This request + + + + Calls AddParameter() for all public, readable properties specified in the includedProperties list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Shortcut to AddParameter(name, value, QueryString) overload + + Name of the parameter to add + Value of the parameter to add + + + + + Internal Method so that RestClient can increase the number of attempts + + + + + Always send a multipart/form-data request - even when no Files are present. + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Set this to write response to Stream rather than reading into memory. + + + + + Determine whether or not the "default credentials" (e.g. the user account under which the current process is running) + will be sent along to the server. The default is false. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + A function to run prior to deserializing starting (e.g. change settings if error encountered) + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Gets or sets a user-defined state object that contains information about a request and which can be later + retrieved when the request completes. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + The number of milliseconds before the writing or reading times out. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Base class for common properties shared by RestResponse and RestResponse[[T]] + + + + + Default constructor + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + The exception thrown during the request, if any + + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Container for data sent back from API + + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Encoding for serialized content + + + + + Need to subclass StringWriter in order to override Encoding + + + + + Default JSON serializer for request bodies + Doesn't currently use the SerializeAs attribute, defers to Newtonsoft's attributes + + + + + Default serializer + + + + + Serialize the object as JSON + + Object to serialize + JSON as String + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Content type for serialized content + + + + + Allows control how class and property names and values are serialized by XmlSerializer + Currently not supported with the JsonSerializer + When specified at the property level the class-level specification is overridden + + + + + Called by the attribute when NameStyle is speficied + + The string to transform + String + + + + The name to use for the serialized element + + + + + Sets the value to be serialized as an Attribute instead of an Element + + + + + The culture to use when serializing + + + + + Transforms the casing of the name based on the selected value. + + + + + The order to serialize the element. Default is int.MaxValue. + + + + + Options for transforming casing of element names + + + + + Default XML Serializer + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Determines if a given object is numeric in any way + (can be integer, double, null, etc). + + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Helper methods for validating required values + + + + + Require a parameter to not be null + + Name of the parameter + Value of the parameter + + + + Represents the json array. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The capacity of the json array. + + + + The json representation of the array. + + The json representation of the array. + + + + Represents the json object. + + + + + The internal member dictionary. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of . + + The implementation to use when comparing keys, or null to use the default for the type of the key. + + + + Adds the specified key. + + The key. + The value. + + + + Determines whether the specified key contains key. + + The key. + + true if the specified key contains key; otherwise, false. + + + + + Removes the specified key. + + The key. + + + + + Tries the get value. + + The key. + The value. + + + + + Adds the specified item. + + The item. + + + + Clears this instance. + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Removes the specified item. + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a json that represents the current . + + + A json that represents the current . + + + + + Gets the at the specified index. + + + + + + Gets the keys. + + The keys. + + + + Gets the values. + + The values. + + + + Gets or sets the with the specified key. + + + + + + Gets the count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + This class encodes and decodes JSON strings. + Spec. details, see http://www.json.org/ + + JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + All numbers are parsed to doubles. + + + + + Parses the string json into a value + + A JSON string. + An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + + + + Try parsing the json string into a value. + + + A JSON string. + + + The object. + + + Returns true if successfull otherwise false. + + + + + Converts a IDictionary<string,object> / IList<object> object into a JSON string + + A IDictionary<string,object> / IList<object> + Serializer strategy to use + A JSON encoded string, or null if object 'json' is not serializable + + + + Determines if a given object is numeric in any way + (can be integer, double, null, etc). + + + + + Helper methods for validating values + + + + + Validate an integer value is between the specified values (exclusive of min/max) + + Value to validate + Exclusive minimum value + Exclusive maximum value + + + + Validate a string length + + String to be validated + Maximum length of the string + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/TempFlansh.exe b/GenesisCordonelInterface/RuntimePackage/Package/TempFlansh.exe new file mode 100644 index 000000000..a0ae38895 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/TempFlansh.exe differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/TempFlansh.exe.config b/GenesisCordonelInterface/RuntimePackage/Package/TempFlansh.exe.config new file mode 100644 index 000000000..4bfa00561 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/TempFlansh.exe.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/TempFlansh.pdb b/GenesisCordonelInterface/RuntimePackage/Package/TempFlansh.pdb new file mode 100644 index 000000000..aa7ce2573 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/TempFlansh.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.Configuration.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.Configuration.dll new file mode 100644 index 000000000..0b7328915 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.Configuration.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.Configuration.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.Configuration.pdb new file mode 100644 index 000000000..08282ede8 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.Configuration.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.ThreadWatcher.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.ThreadWatcher.dll new file mode 100644 index 000000000..f69cd2cea Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.ThreadWatcher.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.ThreadWatcher.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.ThreadWatcher.pdb new file mode 100644 index 000000000..e03753b6b Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.ThreadWatcher.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.dll new file mode 100644 index 000000000..dac35f3c5 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.pdb new file mode 100644 index 000000000..fe955161c Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.CommonCore.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.PortCore.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.PortCore.dll new file mode 100644 index 000000000..2aa7ee2f8 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.PortCore.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.PortCore.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.PortCore.pdb new file mode 100644 index 000000000..35c0572c3 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.PortCore.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.PortCore.xml b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.PortCore.xml new file mode 100644 index 000000000..743acbe1d --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.PortCore.xml @@ -0,0 +1,312 @@ + + + + Xylem.Common.Hardware.Interfaces.Ports.PortCore + + + + + + + + Marker for incoming record at time of the PC + + + + + + + + + + + + + + + + + + + + + + + Interface for port data event arguments + + + + + Read data + + + + + + Write data + + + + + + Reading received time + + + + + + Writing received time + + + + + + Setting the data marker + + + + + + Getting the data marker + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Interface for Ports + + + + + event for record received, either bytes or string + + + + + event for record received, either bytes or string + + + + + set specific mark + and flush or delete all incoming byte from buffer when SyncMarkRecord is or + + + + + + + if the port needs stuff to open, always open for better logical handling + + + + + close and dispose all connections + + + + + indicates if the Port is open (also on Ports that did not have an open state) + + + + + + Write byte[] to the Stream/Port on Child Class + wrapped with base class error handling + + Array of bytes to write + + + + discard all buffers + + + + + Return the port name + + name of the port as string + + + + Collection of port settings + + + + + Assigns a port name and creates the serial port object + Port name e.g. "COM2" + + + + + setup of port type from name (referenced as "Type" in config file) + + + + + using dotNets for connection + + + + + using dotNets for connection + + + + + Container for port configuration + + + + + Slot number + + + + + Request port settings + + + + + Streaming port settings + + + + + Streaming port settings + + + + + Definition of type for slot + + + + + Cordonel used as DUT with two serial ports + + + + + Cordonel used as temperature meter with one serial port streaming the temperature + + + + + Store Port settings set most likely from transmit protocol + + + + + The transmission protocol needs to inform the communication port how to set up, + this is the data container. + + + + + + + + + + + + + - String delimiter for ASCII to support others than LF "\n", + - Flexible DataBits, + - Flexible parity. + + + + + String delimiter for ASCII to support others than LF "\n" + + + + + Flexible DataBits to support 7 bits. + + + + + Flexible parity + + + + + start of receiving synchronization byte at byte receive routine + syncByte == null: use the readLine routine (ASCII) and NOT the BYTE routine, + lengthPosition and additionalLength are not used + + + + + position of length information field in received BYTE record + lengthIndex == null: take the constant receive length of additionalLength + because the record doesn't contain length information + + + + + additional record length NOT covert by the record length information field + lengthIndex == null: constant length for received record + Being used for the BYTE records indicated by a valid syncByte, + not being used for ASCII records. + + + + + Response time out in milliseconds + + + + + BaudRate for Port + + + + + lower threshold for buffer flushing if dataMarker != SkipDecoding + receiveBufferFlushThreshold == null: never flush the communication buffer + receiveBufferFlushThreshold == 0: flush always the communication buffer + receiveBufferFlushThreshold == x: flush communication buffer if it exceeds x Byte + waste old records if an up-to-date record is being needed for start/stop synchronization + of a measurement. This is the level at which the old data have to be flushed because the + data have been dammed up in the communication port input buffer which means they are to + old for synchronization purposes. + /// + + + + a special implementation may require the doubling of the sync byte to re-synchronize + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.SerialPorts.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.SerialPorts.dll new file mode 100644 index 000000000..1349ceb26 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.SerialPorts.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.SerialPorts.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.SerialPorts.pdb new file mode 100644 index 000000000..af131b449 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Ports.SerialPorts.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Protocols.ProtocolCore.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Protocols.ProtocolCore.dll new file mode 100644 index 000000000..30df34488 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Protocols.ProtocolCore.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Protocols.ProtocolCore.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Protocols.ProtocolCore.pdb new file mode 100644 index 000000000..df90fff10 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Protocols.ProtocolCore.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol.dll new file mode 100644 index 000000000..4acc353bf Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol.pdb new file mode 100644 index 000000000..0b436f273 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.ERegister.DataPackages.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.ERegister.DataPackages.dll new file mode 100644 index 000000000..9c4253906 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.ERegister.DataPackages.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.ERegister.DataPackages.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.ERegister.DataPackages.pdb new file mode 100644 index 000000000..1af2d68c4 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.ERegister.DataPackages.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.dll new file mode 100644 index 000000000..19f7c844f Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.dll.config b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.dll.config new file mode 100644 index 000000000..c764f5323 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.dll.config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.pdb new file mode 100644 index 000000000..e7b976d3b Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.dll new file mode 100644 index 000000000..09c531497 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.pdb new file mode 100644 index 000000000..cffb60645 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.xml b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.xml new file mode 100644 index 000000000..0469aee6d --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.xml @@ -0,0 +1,384 @@ + + + + Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages + + + + + + + + Stream record for calibration on channel + + + + + + + + + + + new record from Stream + + + + + + + + + + + new record from Stream + + + + + + + + + + + + Ctor with base record + + base record + base record + + + + Register witch has updated + + + + + New Value in Register + + + + + + EventArgs for Request Responses + + + + + Request response from meter + + + + + + + + + Streaming record for protocol M (information about bend detection and correction) + + + + + The status of the U0 detection for this measurement + + + + + Status okay + + + + + Error code as defined by field name + + + + + Error code as defined by field name + + + + + Error code as defined by field name + + + + + Error code as defined by field name + + + + + An enum describing the installation type detected + + + + + Installation type code as defined by field name + + + + + Installation type code as defined by field name + + + + + Installation type code as defined by field name + + + + + Status of U0 Bend detection + + + + + Installation type code + + + + + The proportion of the installation correction to apply based on the detected + installation. 100% == 0x8000 + + + + + The default proportion of the installation correction to apply based on the + detected installation. 100% == 0x8000 + + + + + Scale for correction factor to apply to convert it to percentage value 100% == 0x8000 + + + + + The volume in internal units before correction applied + + + + + The volume in internal units after correction applied + + + + + Get result as string + + + + + + + hold streaming record for protocol H (contains calibration record) + + + + + record validation + + + + + total time of flight in seconds + + + + + delta time of flight in seconds + + + + + total time of flight in cordonel units + + + + + delta time of flight in cordonel units + + + + + volume scale (default: 1024) means + 1024digits = 1ml + + + + + volume factor to convert raw to m³ + uses 1E-6 (ml to m³) / VolumeScaleRawPerMl + + + + + raw volume between two samples + + + + + calculated out of dRawVolume * VolumeFactorRawToQm . + in cubic meters + + + + + accumulated raw volume + + + + + sample interval between two samples in seconds + + + + + high threshold amplitude in V + + + + + low threshold amplitude in V + + + + + high ratio for pulse width + + + + + low ratio for pulse width + + + + + raw temperature + + + + + temperature scale + + + + + calculated temperature in degree C + + + + + Get result as string + + + + + + + struct to hold Led record for protocol F (contains measurement record) + + + + + Get result as string + + + + + + All parameters needed for radio setup + + + + + Pcb identification + + + + + Serial number + + + + + Radio address + + + + + Power level + + + + + Power level option + + + + + New code for impedance + + + + + Impedance code option + + + + + Encryption key + + + + + Frequency offset + + + + + + + + + + Register address and value to DB + + + + + + + Address + + + + + Value + + + + + Temperature Time Of Flight calculation + + + + + Reference data + + + + + Reference temperature + + + + + Time Of Flight + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.dll new file mode 100644 index 000000000..ece1d7de1 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.pdb new file mode 100644 index 000000000..2720205ed Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.dll new file mode 100644 index 000000000..e55455ab0 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.dll.config b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.dll.config new file mode 100644 index 000000000..c764f5323 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.dll.config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.pdb new file mode 100644 index 000000000..414f7d14e Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.xml b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.xml new file mode 100644 index 000000000..706df13ac --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.xml @@ -0,0 +1,2959 @@ + + + + Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore + + + + + Alarm messages + + + + + Power correction constants + + + + + Threshold for power correction EMEA version + + + + + Threshold for power correction NA version + + + + + Minimum region radio current NA + + + + + Minimum region radio current sensus radio RF mode EMEA + + + + + Minimum region radio current sensus radio TFX mode EMEA + + + + + Fixed current in production if production values are not logged in DB + and dispatched as 0 or null. + + + + + Fixed region radio current NA + + + + + Fixed region radio current sensus radio RF mode EMEA + + + + + Fixed region radio current sensus radio RF mode EMEA + + + + + Fixed region radio current sensus radio TFX mode EMEA + + + + + Pulse report length for pulse mode 1 to 4 even distribution 0 + + + + + Pulse report length for pulse mode 1 to 4 even distribution 1 + + + + + Pulse report length for pulse mode 5 to 6 even distribution 0 + + + + + Pulse report length for pulse mode 5 to 6 even distribution 1 + + + + + TFX mode mask of sensus radio system state + + + + + Update capability check for all necessary settings according to meter. + + + + + It is allowed to upgrade the metrology, causing an upgrade capability check to pass always. + + + + + The name of the metrology application. + + + + + Common definition for Meter handling in production and on test benches + + + 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! + + + + + everything is good + + + + + problems on initialization + + + + + problems on Measurement + + + + + Problem on communication with meter + + + + + Problem on optical output on meter + + + + + if pulse can not readout + + + + + no (or no good) reference flow available + + + + + Calibration went wrong + + + + + calibration is out of range. Check documentation from meter to find limitation + + + + + blue screen like error + + + + + 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 + + + + + Test mode with raw record to log. + Should give one + 3 times and + one + + + + + Test mode with raw record to log. Should give one + 3 times and repeat this till led mode is switch + + + + + Test mode should give out + + + + + Calibration mode should give out + + + + + Deactivate streaming + + + + + not set or an new not supported Streaming mode + + + + + Interface of special GenesisMeter derived from IMeter + + + + + Represent + proposed for login + + + + + 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'. + + + + + Interface information + + + + + This FW version is supported by the interface "configuration.json". + + + + + Transmit protocol access for underlie objects to change response timeout + + + + + List of all present meter applications installed in meter + + + + + Successfully logged on to meter + + + + + Core revision of boot code. + + + + + Core revision of boot code as string. + + + + + This is the FLEXNETVERSION version which describes the entire packet. + + + + + This is the FLEXNETVERSION version which describes the entire packet. + + + + + This is the Metrology Lookup Table CRC. + + + + + This is the meter size. + + + + + Length of the meter. + + + + + Pressure sensor assembled to meter. + + + + + Region (EMEA, NA or China). + + + + + Radio frequency in MHz (433 or 868 or null). + + + + + Metrology upgrade permission. + + + + + Order number under which this meter has to be produced + + + + + Radio address + + + + + Process configuration + + + + + Customer serial number for informal issues + + + + + Unlocked the property change ability for special sequences. + + + + + Check region and size. + After reading the version, all valid registers are going to be selected. + + + + + Unlocked the property change ability for special sequences. + + + + + Set the meter size if previously unlocked. + The data types are: - String like "DN50" or + + + + + Set the pressure sensor if previously unlocked + + + + + Reset the empty pipe alarm + + + + + Upload app list to database + + + + + + + + Clear password to force new password reading + + + + + Executes all StoreConfiguration and StoreCalibration for each application. + + true if all configurations are stored + + + + Login with identical password as last time to avoid get password from database + + + + + Returns meter registers + + + + + + Common routine for reboot being able to override this routine which will be called in + MeteResetPsu to simulate a reboot. + + + + + + Write Register, optional: wait for result and validate, + write register will ALWAYS log the data DON'T use for password write + + Data type of Register + Register name + Value to save as byte array in raw format + wait until result is ready + check the content of the register by read back + skip retries on this error code return + true on successful operation + + + + Read Register and return byte array + + Register name + expected length for response + skip retries on this error code return + value as byte array in raw format or null + + + + Clear all pending alarms. + + + - Initial. + + + + + Collection of interface information + + + + + The interface version + + + + + List of supported FW versions by this interface + + + + + Read of required registers and calculation of power correction + + + + + Ctor + + + + true if successful + + + + Calculate the values for power correction + + true if successful + + - Initial + + + + + Calculate the values for power correction + + true if successful + + - Initial + + + + + Power correction parameters used for overestimated power consumption on + Cordonel FW update from: + EMEA below R1.3.x + NA below R2.0.07 + + + + + Unique identification of PCB + + + + + Date time UTC at EOL - Production + + + + + Total used seconds at EOL - Production + + + + + Total used charge of batteries at EOL - Production + + + + + Radio system state at EOL - Production + + + + + Pulse adapter was installed during at EOL - Production VAKO + + + + + Pulse mode during at EOL - Production + + + + + Pulse sequence counter during at EOL - Production + + + + + Pulse distribution at EOL - Production + + + + + Detected FW version before maintenance + + + + + Date time UTC at time of maintenance + + + + + Total used seconds of entire runtime + + + + + Total used charge of batteries of entire runtime + + + + + Actual detected radio system state at maintenance + + + + + Detection of pulse adapter installation + + + + + Pulse mode during maintenance + + + + + Pulse sequence counter during maintenance + + + + + Pulse distribution during maintenance + + + + + Mark pulse adapter as installed on any detected or sequence counted + + + + + Remind battery quantity used for estimation of drained load + + + + + Remind battery initial load used for estimation of drained load + + + + + FW version for the update + + + + + Calculated pulse report length + + + + + Total used seconds after EOL and before maintenance + + + + + Overestimated total used charge before maintenance + + + + + Based on fixed estimation total used charge before maintenance + + + + + Lowest threshold for total used charge calculated during maintenance + + + + + Corrected total used charge during maintenance + + + + + + 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 + + + + Default constructor. + + R.Drabesch, 2018-Feb-16. + + + + + Slot number for test-bench + for request Port + for streaming Port + don´t send CRC error or telegrams with error flag to caller + + 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 + + + + + Keep up the highest access level for all function in where used + + + + + Logout with level 0 + + + + + Minimal length for PcbId + + + + + 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. + + + + + Logger for NLog + + + + + Optional request to use the offline passwords + + + + + source of slot config + + + + + source of password + + + + + Request communication port configuration. + Used for request/response communication with the meter. + + + + + Streaming communication port configuration. + Used for continuous data streaming communication. + + + + + if application have a access to online Genesis services + + + + + Remind the offline password for comparison if this is actively used + + + + + Process configuration + + + + + Transmit protocol access for underlie objects to change response timeout + + + + + + + + Customer serial number for informal issues + + + + + + Save Slot Number (position at test-bench) for logging purposes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Radio frequency in MHz (433 or 868 or null). + + + + + Metrology upgrade permission. + + + + + + + + + + + + + + Add on ctor a password, it will be used for login in if no other password is set + + + + + reminder for last communication acknowledge code to detect communication errors + + + + + default false only enabled by + when it is true, the meter will enforce the login when session is gone or access is denied + + + + + Enable raw record logging, if set every incoming package will be logged + + + + + Detected pulse adapter communication on request port + + + + + Enable use of registers that are not valid (last version not match the current app) + + + + + All parameters stored in the SOFTWARE of GenesisMeter: NOT IN THE METER + if you want to read them from meter use + if you want to set them to meter use + + + + + All applications defined by configuration.json + + + + + request port assignment/info + + + + + request protocol assignment/info + + + + + streaming port assignment/info + + + + + streaming protocol assignment/info + + + + + to reduce the IrdA communication in test bench, preparation will be done once (when SkipPreparationForTestBench is true) + + + + + Response received after request for record + + + + + do not use it to set ProcessStatus + if you want to change ProcessStatus of this genesis use + is just store for some routines + + + + + if state is change + + will be invoked. + on some states other events will be invoked as well + + + + do not use it to set ErrorStatus + if you want to change ErrorStatus of this genesis use + is just store for some routines + + + + fires up + + + + + Logged in to device + + + + + Logged in to device + + + + + Hold the current process name e.g. FlowTest, Preadjustment for logging + + + + + Unlocked the property change ability for special sequences. + + + + + + + + Unlocked the property change ability for special sequences. + + true if unlock required + true if possible + + + + Set the meter size if previously unlocked + + + true if possible + + + + Set the pressure sensor if previously unlocked + + true if setting is allow + true if possible + + + + Returns meter registers + + + + + + + + + Setup water meter from configuration file: + -slot, + -streaming protocol, + -streaming port + -request port + + + + + + + + Setup water meter from parameters (no config file): + - slot + - request port + - streaming port + + + + + + + + just internal setup. called on ctor or from vb6 setup function + + Slot Number for test-bench + for RFID/UART/IrDA Port + for LED Port + don´t send CRC error or telegrams with error flag to caller + + 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 + + + + + + Start Event listening, has to be called after + + + + + Add a port to working queue + + On should one once added in runtime + + + + + Synchronization of the record for the streaming interface + + + + + + + + + + + + + + + + + + + + + + + + + + + + call this if session is expired and you need a re-authorization + + + + + A helper to invoke events only if someone is listening, otherwise nothing will happen + + Event handler to call + Sender (can be null) + Event arguments (can be null) + + + + + + + + + Track all incoming led record packages (Calibration and Flow) + + + + I should be or + otherwise this method does nothing + + + + + tracking request record processing + + + + + + + QueryCaps can send before login + arrange record for communication (e.g. Baud rate) + + + Running outgoing command + + + + + The backup login level is needed for re-authorization + + + + + SetRegister to loginLvl and wait for response + + + true = process command; false = add command to list. call + to process login command + if is completed and no error occurred it is true + + + + Set + + if null , use password from initialization + true = process command; false = add command to list. call + to process login command + + + + + + Clear password to force new password reading + + + - Initial. + + + + + Acquires the password from WEB-API. + + password + + - Initial. + + + - PcbId handling improved. + + + - PcbId unknown returns immediately. + + + - Password had been reset to empty string if read from file, corrected! + + + - Used + + + - Optional the offline passwords will be used. + + + - BUGFIX: Avoid request of password from DB if offline password usage fored. + + + + + + Get password from server + + + + + + - Initial + + + - Immediately returns if already logged in. + + + + + Starting a timer to keep session active, + starting the . + + password string to log in + true = process command; false = add command to list. call + to process login command + + + + pass runImmediately for auto login + + + - Avoid retries during login, a retry will lock the Genesis for 2s, 4s, 8s, 16s and so on. + + + - Quick login removed. + + + - Pulse module deactivated at login. + + + - REMOVED: Pulse module deactivated at login. + - Skip FW readout to quickly connect being able to immediately switch off the pulse mode before App detection. + + + + + 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. + + version as hexadecimal result of version e.g. 0x1107 or 0x130B + any string to evaluate like "11.07" or "R1.1.07" or "1.3.0B" + most significant byte representing the major and minor version + last significant byte representing the built version + will force to reduce the string output of FW version to e.g. "1107" + FLEXNET version string e.g. "R1.2.47" or "B1.2.0C" + + - Initial. + + + - Removed the optional leading "B" or "R" on strVersion input to create the fwVersion. + + + - . + + + + + 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" + + firmware version as decimal e.g. 234 + most significant byte hex + last significant byte hex + converted as string e.g. "2.34" or "2.0C" + + - Initial. + + + + + 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" + + firmware version as hex + converted to "2.34" or "2.0C" + + - Initial. + + + + + Building the FW Version string out of Int32 as decimal input. + Example: + Input fwVersion = 238, + Outputs string "2.38" + + firmware version as hex + converted to "2.34" or "2.01" + + - Initial. + + + + + Check region and size. + After reading the version, all valid registers are going to be selected. + + + - Initial, extracted from + + + - Frequency indicator == 0 means it is a NA-Region Octopus with EMEA FW installed. + + + - Pressure sensor detection. + + + + + Build a list of all registers based on the interface (configuration.json) and the installed + meter applications with a specific version. + + + - Initial, extracted from + + + - Excluded register versions explicit specified in the 'configuration.json' as version.exclude list. + + + - Excluded all registers from apps which are NOT installed (isInstalled == false). + + + + + ...MF + + + + + + 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. + + + - Removed "Cordonel " from CoreRevision to have the e.g. "1.64" remaining + + + - Read radio frequency + + + - Read lockup table CRC, + - Read meter size. + + + - Read lockup table CRC bugfix with try, catch for legacy versions, where this register does not exists. + + + - 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?. + + + - Checked meter size string for "DN", then it cannot be an EMEA version. + + + - Removed retry as this will be handled by the . + + + - Remind installed FW version of FLEXNETVERSION for StoreAllConfigurations. + + + - 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! + + + - Build dictionary for debug to observe if configuration.json contains overlapping versions. + + + - 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. + + + - BuildFlexnetFwVersion, + - Calculate core revision. + + + - 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. + + + - Handle the interface compatibility FW version with short string like "1421" and discrete FW versions. + + + + + ...MF + helper + + + + + + ...MF + + + + + + + Automatic login to meter enabled if logged out by lost authentication + + + + + If the timeout timer elapsed to keep the session active, this routine will be called + awaking the . + + + + + + + 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 and aborted on + + + + + + + + + Check if EMPTY_PIPE or REBOOT is set + + + + + + Check if alarmToCheck is set on register + + is Flags so you can use more than one alarms (like Alarm.EMPTY_PIPE | Alarm.REBOOT) + + + + + Read out all AlarmStatus register and combine them to one + + + + + + + + + Reset the empty pipe alarm + + + + + Reads the PCB Identification, can be accessed at all login levels, + Read Privilege is always needed to BUGFIX read access to PCB ID + + PCB ID + + - PcbId handling improved. + + + - PcbId handling improved, + - Removed retries as these are handled by the protocol. + + + + + Get the actual register dictionary + + + + + + Serial number of meter married with PcbId + + + + + + + + + Event to Sync Register on MeterSide and + Fired on Write or read register + + + Register to update with value to update + + + + Write Register, optional: wait for result and validate, + write register will ALWAYS log the data DON'T use for password write + + Data type of Register + Register to change + Value to save + wait until result is ready + check the content of the register by read back + skip retries on this error code return + true on successful operation + + - Changed sensitive information from "*****" to SHA256. + + + - PreRegisterWrite enabled to check register accessibility and range. + + + + + Read Register and return byte array + + + expected length for response + skip retries on this error code return + + + - Changed sensitive information from "*****" to SHA256. + + + - Date size directly from register object. + + + + + Execute request protocol and acts on response code. + + + - Removed throw because the throw always kicks in to + the FW-Update process causing an unpredictable stop! + + + - Remind last communication acknowledge code. + + + + + Send UI1236 command + + + - Initial + + + + + Clear Ports + + + + + + + + + + + Soft reset of meter runtime state. + Keeps ports, protocols, configuration, PCB and password intact. + + + + + + + + + + + Set the process state to display and to the production database + + + + + + + + + + + + Check for min and max of register values to avoid out of range access + + + + + - Initial + + + - Reactivated to validate the register range. + + + + + Common routine for reboot being able to override this routine which will be called in + MeteResetPsu to simulate a reboot. + + + + - Initial. + + + + + Executes all StoreConfiguration and StoreCalibration for each application. + + true if all configurations are stored + + - Initial + + + - Corrected logic to enter write and read loop, + - Removed SENSUSRADIO from read check as it returns NULL on read of StoreConfiguration. + + + - After write store configuration extended sleep. + + + - Removed comparison of allConfigRegisters less than 8 because the NA version has fewer registers and new + apps will have a new register. + + + - Removed temporary NA2ALARMS read back as this has no handler in the FW. + + + - Store first all configurations for every app in a bulk then read the status back. + + + - Installed FW version taken to enable read back for radio and na2walarms. + + + - Changed threshold check from decimal 1200 to hexadecimal 0x1200. + Cl + + + + Upload app list to database + + + + + - Initial + + + - Using MetrologyUpgradePermission to flag if metrology is updateable as for "NA" versions this is the case. + + + - returns status. + + + + + Backup current register dictionary to database + + + + + + Logging of register write processes to meter + ATTENTION: DON'T USE FOR PASSWORDS! + + + + + - Hide all file access commands and passwords. + + + + + Storage of calibration values + + + + + + + + Dummy + + + - Initial. + + + + + Dummy + + + - Initial. + + + + + Copies safe runtime/configuration state from this GenesisMeter + to another GenesisMeter instance. + + Intended usage: + + GenesisMeter existingMeter + ↓ + ZeroFlowGenesisMeter newMeter + ↓ + existingMeter.CopySafeStateTo(newMeter) + + Notes: + - does not copy ports + - does not copy protocols + - does not copy threads/timers + - does not copy events + - does not copy logger instances + - does not copy register containers + - target keeps its own construction/runtime infrastructure + + + + + Calibration factors for all channels + + + + + Registers needed to store the calibration for the individual channel + + + + + + + + + + + + Just stop recording without calculation + + + + + + + + + + + + + + List of ongoing measurements, base- and calibration-measurements + + + + + All channels required to process + + + + + Quality watch mode can be used to decode intermediate records and check + for actual quality of the measurements. + + + + + + Perpetration of Measurement + SampleRate 10 and Led mode Test + + + + + + + + + + + Testing the flow direction + + + + + + + the first measurement is ALWAYS a FlowTestRecord due to the underlying routine logic. + + + + + The first measurement is ALWAYS a FlowTestRecord. + + + + + + + + + + + Calibration content + + + + + has been calibrated + + + + + Channel for calibration + + + + + Register to store the calibration + + + + + Ctor for calibration factor + + + + + + + set the user readable relative (around 1.0) calibration factor + and convert it to the raw calibration factor for the meter + + + + + + + Read the relative (around 1.0) calibration factor calculated from the actual + meter calibration factor divided by the default calibration factor + + + + + + Genesis internal raw default value (around 15625) + + + + + + Set the meter raw calibration factor (around 15625) + + + + + + Get the meter raw calibration factor (around 15625) + + + + + + Check the positioning of the streaming LED to validate the quality of the communication line + + + + + Backup of last quality + + + + + Quality check is active + + + + + Kick off the streaming quality check. + + + + + + + Stop the streaming check. + + + + + + + + + + + + + Number of records received (read line for LED message) + + + + + Total records decoded + + + + + Total errors + + + + + Validated without errors + + + + + Expected lines + + + + + Time + + + + + Error counter + + + + + The real result of quality check + + + + + + + + The quality result as dummy zero + + + + + 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. + + + + + Genesis for test access + + + + + Auto-detected port name + + + + + Port scan result event for message dispatcher to caller + + + + + Stop the port scan + + + + + Number of ports + + + + + Actual Port Counter + + + + + Returns the port scan state + + + + - Initial + + + + + Ctor + + true if one port has been validated + + - Initial + + type of communication port to meter like IrDA + + + + + - Initial. + + + - Remove all meters removed as _meterBatch.Dispose will remove all meters. + + + + + 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. + + slot to search for + configuration of port to speed up search + true if port found + true if one port has been validated + + - Initial + + + - Port type from Ctor, + - Event message changed: + - Overall message: ctr / counts - ongoing scan, + - Actual message: Information to log + + + - Changed exit of function, + - Added configuration file handling. + + + - Remove all meters removed as _meterBatch.Dispose will remove all meters. + + + + + JSON filer reader for generation of register lists + + + + + Registers defined in configuration.json file + + + + + Applications defined in configuration.json file + + + + + Information collected during 'configuration.json' read + + + + + Ctor + + + + + Ctor + + the file path for configuration.json as interface description to the meter + + + + Convert file content to register list + + + + + + - Initial. + + + - 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. + + + - Extract the max supported versions for EMEA and NA to check the supported FW. + + + - Supported application list introduced. + + + - Data size introduced including the new 'ByteArray' type and size to get rid of new defined 'uintxx_t' + data types. + + + + + Settings + + + + + Convert data types from interface 'configuration.json' to CLR type or array + + + type + + + - Initial. + + + - Parsed all 'uintxx_t' which are not based on CLR types to byte-array + + + + + Build the data size + + + size + + - Initial: - parsed all 'uintxx_t' which are not based on CLR types to byte-array + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to ERROR: Missing or invalid register definition (configuration.json)! Search in:. + + + + + 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!. + + + + + Looks up a localized string similar to ERROR: Could not find a CSD parameter in register list!. + + + + + Looks up a localized string similar to ERROR: Could not find register in register list! Check configuration.json for latest version!. + + + + + Looks up a localized string similar to ERROR: Could not write register!. + + + + + Looks up a localized string similar to Read back. + + + + + Looks up a localized string similar to Access request.. + + + + + Looks up a localized string similar to Failed to open.. + + + + + Looks up a localized string similar to Ports listed in the Windows device manager.. + + + + + Looks up a localized string similar to Automatic port scan started.. + + + + + Looks up a localized string similar to Successfully accessed.. + + + + + Looks up a localized string similar to Read register. + + + + + Looks up a localized string similar to Reading registers after maintenance. + + + + + Looks up a localized string similar to Reading registers before maintenance. + + + + + Looks up a localized string similar to Compare register. + + + + + Looks up a localized string similar to ERROR: Comparison failed!. + + + + + Looks up a localized string similar to Successfully compared.. + + + + + Looks up a localized string similar to Execute configuration sequence..... + + + + + Looks up a localized string similar to Finalize configuration sequence..... + + + + + Looks up a localized string similar to Prepare configuration sequence..... + + + + + Looks up a localized string similar to ERROR: Register value is out of range!. + + + + + Looks up a localized string similar to Cordonel not detected!. + + + + + Looks up a localized string similar to Scan port. + + + + + Looks up a localized string similar to WARNING: Register value set to default. + + + + + Looks up a localized string similar to Write register. + + + + + Read, compare and restore if unequal al registers marked with + equals + ". + 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. + + + + + PCB ID for pre update read for comparison + + + + + PCB ID for pre update write for comparison + + + + + PCB ID for post update for comparison + + + + + Collection of recovery registers - programming parameters + + + + + Marker for restore after reboot parameters + + + + + Register content on initial connect to keep those during update + + + + + Register content after all operation had been performed + + + + + Register which shall be restored after change of FW or after register recovery + + + + + Register access event for message dispatcher to caller + + + + + List for un-reversed parameters which can be written, all others need to be swapped byte-wise + + + + + 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. + + + + + 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! + + + - Initial to restore values which do not survive the reboot as workaround for R1.4.22 and below. + + + + + Registers manually explicit excluded for in-field updatable parameters for the CUST to prevent inadvertent + modifications resulting in potential MID violations. + + + Defined by M.C., J.L. and A.F. with the file: 'FwUpdateController.cs-GetRecoveryFile()-2507160616.xlsx'. + + + CUST 2.8.14: + - Added: - ’SENSUSRADIO_WakeupInterval’ to keep radio active after CUST run + - Removed: - 'GENESISFLOW_SealDisplay' being able to modify display resolution + + + + + Registers manually explicit excluded from reading as those do not contain useful information. + Applies for RW commands not RPC data type. + + + + + Pre-programming parameters for all devices defined here, will be filled with radio parameters + if meter has radio + + + + + Registers which failed the comparison + + + + + Name of registers which should be restored after reboot if the compare failed. + + + + + Post programming parameters for all devices + + + + + Post programming parameters for EMEA region as NA region doesn't have radio and seal display shouldn't + be executed. + + + - 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. + + + + + Post programming parameters for EOL (end of line, prepare for shipping workplace) + + + + + Actual register counter + + + + + Genesis meter object + + + + + Struct to observe replacements + + + + + Ctor + + + + + + Renew meter for Unit tests based on different meter + + + + + + Assign new genesis after reboot and keep the RegisterRestorer object. + + + + - Initial + + + + + Enable comparison from external set registers for read back with written value + + + - Initial + + + + + Export list of programming parameters to file being able to use it for test purposes. + + + + + + + - Initial. + + + + + 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" + + + path where all raw parameter examples are stored + Region for configuration + Meter size for programming parameters + + + + - Initial. + + + + + 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 ). + The priority of the parameters forced by its source is: + - CSD (highest), + - VAKO, + - Order based or standard config (lowest). + + unprocessed data, not filtered by the priority and un-reversed + 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" + error message for caller + field update forces to use the 'fieldUpdateBlacklist' to remove parameters + + + - Initial imported from . + + + - 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. + + + - Debug for overwriting VAKO with CSD including real values. + + + - Remove '_fieldUpdateBlacklist' parameters for the CUST to prevent inadvertent modifications resulting in potential + MID violations, + - Debug log of blacklist caused removals. + + + - Debug lists generation sequence changed. + + + + + Collect programming parameters from DB. + + + registers key value pair from database + error message from parameter analysis + field update forces to use the 'fieldUpdateBlacklist' to remove parameters + recovery registers + + - Initial. + + + - Sort the registers from DB but keep the PrepareProgramming and FinalizeProgramming in the required sequence. + + + - 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. + + + - Data base access imported to have a common interface for programming parameters for EOL (shipping) and CUST. + + + - Removed prohibited parameters. + + + - Added un-reversed parameters based on data type (string, uint128). + + + - Check and validate register values with installed or intended to be installed FW and given + configuration.json. + + + - Exported register range check to . + + + - Debug lists for CSD and VAKO parameters. + + + - 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 + + + - Error message. + + + - Remove '_fieldUpdateBlacklist' parameters for the CUST to prevent inadvertent modifications resulting in potential + MID violations. + + + + + EOL (end of line) programming contains a reset of the accumulators. Else it is identical with recover + registers. + + list of registers to update from database without special sequence + + + true if setup succeeded + + - Initial. + + + - CancellationToken. + + + + + Validate the range of the register. + + register key value pair + register definition by configuration.json + error message if range check failed + check default value and supply warning + status + + - Initial, imported from + + + - Leave the message generation to the + + + + + Recover all registers set from caller. Additional preparation and finalization will be added. + settings. + + list of registers to update from database without special sequence + + + field update, if not set EOL (end of line) programming with accu reset + true if restoring succeeded + + - Initial. + + + - Return true if already recovered, + - replace _restoreRegisters with new value. + + + - Added preparation and finalization of register recovery giving the ability to log this in the report. + + + - Moved register dictionary value set to inner try catch loop to avoid early exit if one register is + unknown. + + + - Logging of some exception messages. + + + - EOL sequence for accumulators reset, + - Remind pcbId as already recovered before the true return, + - Exclude lock of repeated execution for EOL. + + + - Avoid writing of parameters if not writable. The DB delivers parameters which exclusively have to be + compared to the specified value. + + + - Register list changed from RegisterDefinition to RecoveryRegisterItem list, + - Preset RecoveryRegisters if not set as those have to be compared later on. + + + - Add only registers to recovery list which are found in the generated register list based on installed + applications. + + + - Avoid writing of NOT writable registers. + + + - Check register limits, if those are out of range avoid writing and log warning message. + + + - Exported register range check to . + + + - Removed skip recovery if already done in previous run to enable a retry. + + + - Seal display and Sensus radio to EMEA finalization. + + + - Exported write routines to . + + + - CancellationToken. + + + - Remove '_fieldUpdateBlacklist' parameters for the CUST to prevent inadvertent modifications resulting in potential + MID violations. + + + - Login/Logout moved to . + + + + + Write a parameter set: + - + + + + + + + + + - Initial imported from . + + + - CancellationToken. + + + - Temporary excluded un-comparable registers from write as this make no sense to write them blind being + unable to read the correct value back. + + + - Remove '_fieldUpdateBlacklist' parameters for the CUST to prevent inadvertent modifications resulting in potential + MID violations. + + + - Excluded un-comparable registers from write turned back on ('blind' writing enabled again). + + + - Login/Logout moved here. + + + - Redundant OOR message removed. + + + + + Restore and compare all registers which did not survive a reboot and are listed in the + + - This is a workaround for a FW-bug in R1.4.22 and below. + + + + + - Initial. + + + - Leave the initial 'RecoveryRegisters' intact. + + + - Leave the initial 'FailedComparisonRegisters' intact. + + + + + Compare all registers which can be restored without new access to meter. + + + + true if equal + + - Initial. + + + - Compare registers reactivated based on new interface (configuration.json) with new + "StaticType": “approximate”. + + + - Removed as those will change on e.g. FW update. + + + - Avoid message event if message is empty. + + + - Remind registers which failed the comparison including values. + + + - Register list changed from RegisterDefinition to RecoveryRegisterItem list. + + + - Removed all registers from comparison which are neither static nor approximate. + + + - 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. + + + - Add only registers to recovery list which are found in the generated register list based on installed applications. + + + - Used RecoveryRegisters WriteValue and ReadBackValue for comparison. + + + - Hash password and encryption key with SHA256. + + + - CancellationToken. + + + - Take 'null' in readBack into account due to communication error. + + + - _restoreAfterRebootIfCompareFailed. + + + - Made method static. + + + - Avoid clearing of failed registers + + + - Leave the initial 'RecoveryRegisters' intact. + + + + + 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). + + + true if registers could be read + + - Initial. + + + - Build here the post update registers, they may have changed due to update! + + + - Clear pre update registers if post indicates a different PCB ID to avoid wrong overwriting of + registers to non-matching new meter. + + + - Return true if already executed in previous run. + + + - Return false if PcbId between initial- and final-read does NOT match return false. + + + - Allow final read out as often as called even if done before. + + + - Register list changed from RegisterDefinition to RecoveryRegisterItem list. + + + - Backup _finalRegisters to RecoveryRegisters. + + + - Check readBack value for null. + + + - CancellationToken. + + + - Cleared all failed compare registers and the restore after reboot registers as a new reading + will give it a new chance to compare it. + + + + + 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 equals ". + The defined registers are based on the "configuration.json" and the installed application with + a specific version. + + + true if registers could be read + + - Initial. + + + - Stored registers before and after update. + + + - Extended register check. + + + - Removed after update registers and moved them to FinalReadRegisters. They may have changed + during the update. + + + - Deny register pre update if _pcbIdPreUpdate indicates, that this has been already processed. + + + - Removed login/logout, + - if _initialReadRegisters and _restoreRegisters are filled, return true. + + + - Register list changed from RegisterDefinition to RecoveryRegisterItem list. + + + - CancellationToken. + + + - CancellationToken. + + + - Repaired building of initial register list. + + + + + 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. + + all readable registers dictionary creation + true if register dictionary is not empty + true if registers could be read + + - Initial from . + + + - Register list changed from RegisterDefinition to RecoveryRegisterItem list. + + + - Excluded registers which do not contain useful information. + + + - Sequence resorted. + + + + + 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. + + + true if registers could be read + + - Initial. + + + - Register list changed from RegisterDefinition to RecoveryRegisterItem list. + + + - CancellationToken. + + + + + Read predefined registers from RecoveryRegisters. + + + + true if registers could be read + + - Initial. + + + - CancellationToken. + + + - Leave the initial 'RecoveryRegisters' intact. + + + + + 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 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. + + registers to read + + true if registers could be read + + - Initial. + + + - Set value to actual process message. + + + - Added PCB ID to logging. + + + - Removed PCB ID from logging. + + + - Simplified input of set of registers to read. + + + - Set raw values in register dictionaries. + + + - Extended try catch to avoid break on one register failed. + + + - Filtered restore registers to access only if assigned, + - Logging of some exception messages. + + + - Register list changed from RegisterDefinition to RecoveryRegisterItem list. + + + - CancellationToken. + + + - Date size directly from register object. + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll new file mode 100644 index 000000000..84a293170 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll.config b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll.config new file mode 100644 index 000000000..c764f5323 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll.config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.pdb new file mode 100644 index 000000000..41c22fd20 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.dll new file mode 100644 index 000000000..34db3c96c Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.pdb new file mode 100644 index 000000000..de9edebe7 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.dll new file mode 100644 index 000000000..15027e1ee Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.pdb new file mode 100644 index 000000000..3330639ad Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.xml b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.xml new file mode 100644 index 000000000..8c4245568 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.xml @@ -0,0 +1,697 @@ + + + + Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol + + + + + Commands that the genesis meter support over the request protocol. + Functional Specification Breeze Core and Applications Revision:3.03(12748DOC11 - functional spec ICOE472.pdf) + + + + + 9.2.5 + Command 0x00 (NOP) + This command will do nothing, and will have no response. + + + + + 9.2.6 + Command 0x01 (Query capabilities) + This command will be used by the external computer to discover the protocol parameters that may be varied. + These can then be compared with the external computer’s capabilities and the best match selected. + + + + + response on + + + + + 9.2.7 + Command 0x03 (Set capabilities) + Used to finalize the baud rate and packet settings after negotiation. + The reply will be sent at the currently selected baud rate and packet length, + after which the settings will take effect + + + + + response on + + + + + 9.2.8 + Command 0x05 (Train) + This command will perform target driven data training, that is, where the target is in control of the data flow. + See also command 0x11. + + + + + response on + + + + + 9.2.9 + Command 0x07 (Repeat last) + Used by the external computer to request the last response to be resent, for example if it was found to be corrupted. + Note that the response 0x08 will never be sent, the reply to command 0x07 will be a verbatim resend of the last response. + + + + + response on + + + + + 9.2.10 + Command 0x09 (Read data) + This command makes reads of any random selection of configuration registers, up to the maximum packet size negotiated. + + + + + response on + + + + + 9.2.11 + Command 0x0B (Write data) + This command makes writes to any random selection of configuration registers, up to the maximum packet size negotiated. + + + + + response on + + + + + 9.2.12 + Command 0x0D (Multiple read data) + This command makes reads of one register multiple times, which will be more efficient than performing successive reads using command 0x09. + This command will be available from protocol version 0.40, for earlier protocol versions command 0x09 should be used. + + + + + response on + + + + + 9.2.13 + Command 0x0F (Multiple write data) + This command makes writes to one register multiple times, which will be more efficient than performing successive reads using command 0x0B. + This command will be available from protocol version 0.40, for earlier protocol versions command 0x0B should be used. + + + + + response on + + + + + 9.2.14 + Command 0x11 (Set level) + This command will perform external driven data training, that is, where the external computer is in control of the data flow. + This command will be available from protocol version 0.42, for earlier protocol versions command 0x05 should be used. + + + + + response on + + + + + Config Exchange error codes. + + + + + Transport errors for request protocol + + + + + List of constance for error codes from genesis meter + + + + + everything is fine + + + + + Port is not open + + + + + fails to write to serial port + + + + + fails to read from serial port + + + + + Command is to long + + + + + deeper exception, check out log if this happen + + + + + wrong CRC + + + + + something strange + + + + + Timeout occur + + + + + Acknowledge feedback from meter after communication + + + + + Acknowledge code for unassigned command + + + + + Will be used initially as the record is not sent + + + + + Response missing + + + + + Response command not match the required command + + + + + Lost connection (logged out from meter), a re-authorization is required + to access this command and/or register + + + + + Meter error received, a retry may be useful + + + + + The response record couldn't be decoded + + + + + The meter sent a wakeup message instead of the required data + + + + + Valid meter response record + + + + + Holds all errors can occur on the request protocol + + + + + Exception occurred on this command + + + + + Exception occurred while receiving this data + + + + + Error is interpreted and has a define error code + if its not null is Genesis.Protocols.Request.Const.ConfigExErrors + + + + + Error is interpreted and has a define error code + if its not null is Genesis.Protocols.Request.Const.HighLevelError + + + + + Ctor with only message + + error message + + + + Ctor with message and + + error message + + + + + Ctor with message, and + + error message + + + + + + Holds request commands with detail parameters to see processing state + + + + + Indicates the base command + + + + + the register the command refers to. + needed to set Register dictionary to link response with dictionary key + + + + + Command acknowledged + + + + + Retry counter + + + + + Wakeup-message retry counter + + + + + indicates error base on + + + + + indicates error reason on + + + + + Combined error code of base and reason + + + + + Chunk position of error on multiple read/write access + + + + + Data containing the request protocol + + + + + Encoded with transmit protocol, ready to stream to port as is + + + + + Extracted payload of response + + + + + Extracted payload of response + + + + + avoid logging for e.g. password + + + + + error mask to skip retries for functional errors + + + + + Ctor for an base command + + as an byte + Request protocol data for logging + Ready to send data encoded with transmit protocol retries + Timeout for response + to do command with + hiding data in log file to avoid spying of passwords + error mask to skip retries + + + + + if session is gone and a re authorization is necessary + + + + + + Ctor + + this command will be resend after authorization + + + + Command to resend + + + + + a bidirectional protocol support read and write genesis meter registers + needed for + + + + + FIFO of records to be send next + + + + + This is the actual record in the send loop + + + + + Last communication time for session refresh + + + + + + + + + + + Occurs when a meter Response for write password is good + + + + + Event after a register entries changed + + + + + User adjustable additional retry timeout. This is 0 ms for standard operation. + + + + + + + + Process all records needed to be sent, this routine has to be called + to kick-off the communication of all RequestRecords saved to the send + FIFO + + + - Initial + + + - Logging of raw RequestProtocol at time of sending, + - Logging of retries. + + + - Added timeout from transmit protocol. + + + - Added reorder FIFO to bring login at first position + + + - Hide data in logging for e.g. passwords + + + - Retry counter reset if authorization required and this record will be put back into FIFO, + - Retry delay corrected for all errors. + + + - Dynamic retry delay: ResponseTimeoutMs * Retry counter. + + + - Skip retries on specific error mask to speed up communication on functional errors + or informational feed backs (e.g FW not installed 0x0004) + + + + - User adjustable additional retry timeout. + + + - Response timeout message output, + - Initialize acknowledge code before communication to NoResponse. + + + - Response timeout deviated from system time. + + + - Avoid enqueue of _recordInProcess if retry counter is 0. + + + - Additional DEBUG information included about FIFO and loops. + + + - Command not assigned response for recordInProcess == null. + + + - Initial request acknowledge state changed from NotDecoded to NoResponse. + + + + + Assemble record with transmit protocol and put it to record-send-FIFO, + backup the ready-to-send, which is the dataEncodedWithTransmitProtocol, + to the RequestRecord object for sending including the retry capability. + + Data package with all details like CRC, etc + Command identifier + which is intend + hiding data in log file to avoid spying of passwords + error mask to skip retries + the assembled record for the send FIFO + + - Initial + + + - Logging of raw data (RequestProtocol) moved to ProcessRecordList. + + + - Added timeout from transmit protocol. + + + - Hide data in logging for e.g. passwords + + + - Skip retries on specific error mask to speed up communication on functional errors + or informational feed backs (e.g FW not installed 0x0004) + + + + - Initial skip retry error code set to 0x0004 (e.g FW not installed 0x0004). + + + - Hide data in log forwarded to DecodeDateForPhysicalLayer to hide passwords in log files. + + + + + Record dispatcher to send FIFO of UI1236 command + + + - Initial + + string for logging of slot + Data package with all details like CRC, etc + which is intend + hiding data in log file to avoid spying of passwords + error mask to skip retries + the assembled record for the send FIFO + + + + Called after successful response. + Decode and check record, handle Errors and dispatch result. + Invokes if somebody is listening + + + - Initial + + + - First part reworked to extract the response protocol information + + + - Hide data in logging for e.g. passwords + + + - Error code extraction changed for + + + - Wakeup-message will avoid further timeout (during FW update this is in the range + of 15000ms). + - Allow one additional retry on decoding error, which is often the wakeup-message. + + + - Send time reminder for timeout time calculation as output in log-file, + - OnRecordIsDecoded?.Invoke moved before return to assure that the Acknowledge status is set. + + + - Avoid activation of wakeup retry if record is meanwhile acknowledged. + + + - Wakeup message handling changed, + - Multiple replies on wakeup message allowed. + + + - On wakeup message 5 retires are allowed to avoid an infinite loop. + + + - On wakeup message exit this routine. + + + - Early exit on _recordInProcess == null, + - Wakeup message retries from 5 to 2, + - Removed error base from error code decision as error base is only the AppId + + + - HideDataInLog. + + + - Ignore wakeup if message already acknowledged (avoid to set + "_recordInProcess.Acknowledge = RequestAcknowledgeState.NotDecoded"), + - Avoid to overwrite "_recordInProcess.Acknowledge = RequestAcknowledgeState.Acknowledge" with + "RequestAcknowledgeState.WakeupMessage". + + + + + Method to send basic Commands to Meter. Creates an integer of 4 bytes for the payload. + Supported Commands are: ,, + , and . + Calculate CRCs and Command length and check if command is valid. + Use to push data to Port/Meter. + + + Supported ,, + , and . + + Register to Read or Write, null for + + Data to push into the . + must be null on Read Commands ( ,) + and not null on WriteData ( and ) + + + hiding data in log file to avoid spying of passwords + mask to skip reties on error + an new command just send to port/meter + + - Initial + + + - Reworked to zero pad payload with chunks of 4 bytes, the caller needn't take care of the size + + + - Corrected payload content in request protocol + + + - Hide data in logging for e.g. passwords + + + - Skip retries on specific error mask to speed up communication on functional errors + or informational feed backs (e.g FW not installed 0x0004) + + + + - Multiple read for string split to simple reads. + + + - Default set. + + + - MultipleReadData based on data size. + + + - Exit multiple read date if retries exceeded. + + + - Exit multiple read date if retries exceeded increased to . + + + - Rewound to version from 06.09.2023 14:44:33 before Commit 8c9d7704. + + + - Removed useless too short comments as every string is going to be delimited by a 0 and usually won't match + to a 4 byte chunk. + + + - Removed redundant 'return cRecord'. + + + + + Analyzes the error code + + + + + Reorders the record list so that first entry is the defined topRegister + + + + + + Checks the active register to access + + + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.dll new file mode 100644 index 000000000..5e277f02f Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.pdb new file mode 100644 index 000000000..e00b711d6 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.xml b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.xml new file mode 100644 index 000000000..497478d25 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.xml @@ -0,0 +1,144 @@ + + + + Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol + + + + + + Layer between CRC16CCITT handler and Events + block trashy telegrams + + + + + Decode data and hold results + + + + + + + + + + + + + + Data fields and definitions for GENESIS streaming protocol + + + + + Default data for bend detection tests of Genesis + + + + + Default data for flow tests of Genesis + + + + + Default data for calibration of Genesis + + + + + Constructor initializes all decoded members with default values + + + + + Calibration data + + + + + Flow test data + + + + + Bend detection test data + + + + + Decoding the raw message + + message received as one line delimited with LF + true if decoding was successful and data has been validated + + - Modified using common CRC check before branching to the protocol specific decoder. + + + - Introduced protocol 'm' for bending detection. + + + + + Extracting message from string fields for protocol 'm' + + reference to bend detection test record + Separated fields containing the measurement as string + + + - Modified using common CRC check in advance. + + + + + Extracting message from string fields for protocol 'f' + + reference to flow test record + Separated fields containing the measurement as string + + + - Modified using common CRC check in advance. + + + + + Extracting message from string fields to individual raw channel for protocol 'g' + + Reference to result structure for raw data for one channel + Separated fields containing the measurement as string + true if protocol is valid + + - Usage of VolumeFactorRawToQm and calculation of AccuDutOverflowVolumeCm + + + - Modified using common CRC check in advance. + + + + + Extracting message from string fields to individual raw channel for protocol 'g' + + Reference to result structure for raw data for one channel + Separated fields containing the measurement as string + true if protocol is valid + + - Usage of VolumeFactorRawToQm and calculation of AccuDutOverflowVolumeCm + + + - Modified using common CRC check in advance. + + + + field position in protocol 'f' + + + field position in protocol 'm' + + + field position in protocol 'g' + + + field position in protocol 'h' + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Registers.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Registers.dll new file mode 100644 index 000000000..dcfbc84b6 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Registers.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Registers.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Registers.pdb new file mode 100644 index 000000000..b8eb86b99 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.Genesis.Registers.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.dll new file mode 100644 index 000000000..ad1316027 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.pdb new file mode 100644 index 000000000..55ee4158d Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.xml b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.xml new file mode 100644 index 000000000..b39ad1b48 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.xml @@ -0,0 +1,81 @@ + + + + Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages + + + + + Used as structured calibration converter from liters per second to + cubic meters per hour and vice versa + + + + + Reference meter flow rate - unit free for use + + + + + DUT meter flow rate - unit free for use + + + + + + + + new record from Stream + + + + + + + + + EventArgs for Request Responses + + + + + Request response from meter + + + + + + + + + struct to hold Led record for protocol L (contains measurement record) + + + + + Sensor Id of MagFlux + + + + + Serial number of MagFlux + + + + + Status of sensor and electronics + + + + + String delimiter to separate elements in ToString() routine + + + + + Get result as string + + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxConfig.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxConfig.dll new file mode 100644 index 000000000..aac5c4a5a Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxConfig.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxConfig.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxConfig.pdb new file mode 100644 index 000000000..6ebddd451 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxConfig.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxCore.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxCore.dll new file mode 100644 index 000000000..cecf6584e Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxCore.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxCore.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxCore.pdb new file mode 100644 index 000000000..560fbdf58 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxCore.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.RequestProtocol.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.RequestProtocol.dll new file mode 100644 index 000000000..da78f17b3 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.RequestProtocol.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.RequestProtocol.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.RequestProtocol.pdb new file mode 100644 index 000000000..4dddd23f4 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.RequestProtocol.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.StreamingProtocol.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.StreamingProtocol.dll new file mode 100644 index 000000000..15e944356 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.StreamingProtocol.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.StreamingProtocol.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.StreamingProtocol.pdb new file mode 100644 index 000000000..3a20c895d Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.StreamingProtocol.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.dll new file mode 100644 index 000000000..74f9c4baa Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.pdb new file mode 100644 index 000000000..c526152f7 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.xml b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.xml new file mode 100644 index 000000000..e486e0649 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.xml @@ -0,0 +1,668 @@ + + + + Xylem.Common.Hardware.WaterMeter.WaterMeterCore + + + + + Applies an action to a list of meters in a separate thread + + + + + Starts a new task for a list of meters + + + + + + Apply a single action to a specific meter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Display codes to keep the user informed about the production and processing step. + This is useful as the user doesn't need to connect the device to a PC, he can + immediately inspect the status of the device. + + + + + Status not set + + + + + Error state + + + + + Picking in progress + + + + + Picking succeeded, next step can be initiated + + + + + Picking failed + + + + + Pressure testing succeeded, next step can be initiated + + + + + Pressure test failed + + + + + Pressure test failed + + + + + Connection between PCBID, Serial Number and Order number done + + + + + Zero flow test succeeded, next step can be initiated + + + + + Zero flow test failed + + + + + Flow calibration succeeded, next step can be initiated + + + + + Flow calibration failed + + + + + Flow test succeeded, next step can be initiated + + + + + Flow test failed + + + + + Final test failed, else the display will be switched to operational mode, + showing the actual accumulated volume + + + + + FW update is ongoing + + + + + FW update failed + + + + + FW update succeeded + + + + + Can hold various s and hold connection record to relieve the meter. + Every contact with meter has to go over even if you have just only one. + + + + + holds all + Add and delete with + + + + + Remove Meter from batch and clear communication + + meter to be removed + + + + Get meter from slot number. + + + null if slot has no genesis + + + + Remove all Meters and comports + + + + + + + + + + + Detect all meters + + + + + + login to all meters + + + + + Initialize all meters + + + + + Initialize calibration for all meters + + + + + Initialize measurement for all meters + + + + + Store new calculated calibration to all meters + + + + + Start calibration for all meters + + + + + Start measurement for all meters + + + + + Stop calibration of all meters + + + + + Stop measurements of all meters + + + + + Can hold various s and hold connection record to relieve the meter. + Every contact with meter has to go over even if you have only one. + + + + + ctor + + + + + Registered list of meters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IMeter is the highest level interface between a meter with direct communication to a test bench. + has general things like calibration, measurement and set up routines. + no specific meter stuff in here! + it is always disposable + + + + + occurs when ProcessState has changed + + + + + occurs when ErrorState has changed + + + + + occurs when Init is completed + + + + + occurs when the initialization for Measurement is completed + + + + + occurs when the Measurement is completed + + + + + occurs when the initialization for calibration is completed + + + + + occurs when the calibration is completed + + + + + occurs when meter gets disposed + + + + + unique meter identification + + + + + read-only to see current Process state + + + + + the current slot in test-bench + + + + + Setup of intermediate update time for measurement updates and overflow detections, + has to be calculated depending on flow-rate and nominal diameter (DN) + + + + + Skip the test bench preparation process + + + + + Set the current action test + + + + + Read the PcbId from IMeter, if device has no readable PcbId simulate one + + + + + + Open Com ports, try some communication, login + + + + + Setup up meter from config file. just a workaround for vb6 calls. please do not use if your working with .net + + Slot Number for Test bench + don´t send CRC error or telegrams with error flag to caller + + + + + + Logout from device + + + + + Start Login with password service + + + + + Start Login without password service and a fixed password + + password for login + execute immediately + skip app readout and register generation to speed up + the initial connection process + + + + set up measurement parameter and set meter into test-mode + + + + + Starting a Measurement + Meter must be initialized + Start to receive record from meter and decode this record into MeasurementRecord + + + + + + Meter must have a active measurement + Stop receive record from meter and decode record + + + + + - simplify the measurement results handling + - getting the main measurement of the entire device (combination of all paths) + - add MeasurementResult + - remove all other methods + + + After a completed measurement , you can grab + + Calculated results + + + + The first measurement is ALWAYS a FlowTestRecord. + + + + + get current state of the running measurement + + leave empty for an aggregate state for all measurements or pass the channel number to check + + + + + Request for intermediate measurement state. + + + + + + + set up calibration parameter (calibration factor to default) and set meter into calibration mode + + + + + Starting a Calibration + Meter must be initialized + Start to receive record from meter, decode and store this record + no available + To finish calibration process run + + + + + Meter must have an active Stop Record for calibration + + + + + Get current state of the running calibration + + + + + + Calculate calibration factor for static and flying start / stop + Results kept internal and not being saved to meter. + if you want to store them on meter use + + the reference volume is essential for calculation of calibration factor + the reference time is needed for flying start/stop + the required deviation to set the scale apart from 0 + override the default max calibration factor tolerance + + + + Save calculated calibration on meter if no calibration results available an exception occurred + + + + + To control the LCD from meter for status information etc. + + if set to true the meter will show his normal screen, if set to false the next parameter will shown in display + test shown in LCD in byte array as hex value (0x33,0xFF shows 33FF on screen) + + + + Sets Display text and update production database + + New ProductionState + web logging required per default true, for offline usage set to false + + + + Get last Process State + + + + + Add external text to internal log file handling + + text to log + + + + Enable/Disable Raw record Logging + + True = Write Raw record into log/ false = Stop write raw record into log + + + + Check if the meter has any errors that can occur on a measurement + the error reason has find out in the log files + + false = everything is good, detect at least one error + + + + Clear all object set up on runtime + + + + + Dispose the entire test bench + + + + + Interface for Events + you can use without events (so with out ) + + + + + occurs when ProcessState has changed + + + + + occurs when ErrorState has changed + + + + + occurs when Init is completed + + + + + occurs when the initializations for Measurement is completed + + + + + occurs when the Measurement is completed + + + + + occurs when the initializations for calibration is completed + + + + + occurs when the calibration is completed + + + + + Flowrate for setting up the Pumps on bench + + + + + how long the flow should last + + + + + Corrected measurement of flowrate from Refrence meter + + + + + how long the mesurement was running + + + + + Measurement of flowrate from DUT + + + + + how long the mesurement was running for DUT + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.dll new file mode 100644 index 000000000..4394f2122 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.pdb new file mode 100644 index 000000000..452123969 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.eRegister.Protocols.StreamingProtocol.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.eRegister.Protocols.StreamingProtocol.dll new file mode 100644 index 000000000..cfda2974c Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.eRegister.Protocols.StreamingProtocol.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.eRegister.Protocols.StreamingProtocol.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.eRegister.Protocols.StreamingProtocol.pdb new file mode 100644 index 000000000..96e867f44 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.eRegister.Protocols.StreamingProtocol.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.eRegister.eRegisterCore.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.eRegister.eRegisterCore.dll new file mode 100644 index 000000000..185de0b57 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.eRegister.eRegisterCore.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.eRegister.eRegisterCore.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.eRegister.eRegisterCore.pdb new file mode 100644 index 000000000..564d8ddb0 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Hardware.WaterMeter.eRegister.eRegisterCore.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.ProductionOrderCore.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.ProductionOrderCore.dll new file mode 100644 index 000000000..4a8aaf8bb Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.ProductionOrderCore.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.ProductionOrderCore.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.ProductionOrderCore.pdb new file mode 100644 index 000000000..87488305f Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.ProductionOrderCore.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.RelatePcb.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.RelatePcb.dll new file mode 100644 index 000000000..4cf64157f Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.RelatePcb.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.RelatePcb.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.RelatePcb.pdb new file mode 100644 index 000000000..dddfc9a58 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.RelatePcb.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.ServiceCore.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.ServiceCore.dll new file mode 100644 index 000000000..941f790b3 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.ServiceCore.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.ServiceCore.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.ServiceCore.pdb new file mode 100644 index 000000000..c9b5da10c Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.ServiceCore.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.SoftwareAccessHelper.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.SoftwareAccessHelper.dll new file mode 100644 index 000000000..16e5d8101 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.SoftwareAccessHelper.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.SoftwareAccessHelper.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.SoftwareAccessHelper.pdb new file mode 100644 index 000000000..729628962 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Logic.SoftwareAccessHelper.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Metrology.Measurements.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Metrology.Measurements.dll new file mode 100644 index 000000000..b17c0bc17 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Metrology.Measurements.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Metrology.Measurements.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Metrology.Measurements.pdb new file mode 100644 index 000000000..6e6f10fc4 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Metrology.Measurements.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Metrology.Measurements.xml b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Metrology.Measurements.xml new file mode 100644 index 000000000..263935d64 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Metrology.Measurements.xml @@ -0,0 +1,832 @@ + + + + Xylem.Common.Metrology.Measurements + + + + + + Holds all stuff for calibration of a Genesis Meter + + + + + Record at the start of the measurement + + + + + Record at the end of the measurement + + + + + Backup of intermediate record + + + + + Backup of intermediate record for short term result + This can be used to observe a result (e.g. flow rate) + between two intermediate records. The update time is + set in the ctor by intermediateUpdateTimeS. + + + + + Intermediate record for ongoing measurement + + + + + + + + Holds the accumulated overflow volume, will work only if + is being called cyclically. + The overflow will take place due to the fixed point number format or the + display resolution setting. + + + + + Holds the accumulated overflow time, will work only if + is being called cyclically. + The overflow takes place due to the fixed point number format. + + + + + Logger for debug output of measurement + + + + + Physical slot of the device + + + + + Identification of the channel + + + + + + State machine for one measurement (on one meter and one channel) + + + - add State-machine for better handling + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Set flag for starting Calibration. + The next record is going to set the start values. + + + + + + + + + Holds all stuff for calibration of a Genesis Meter + + + + + Calibration default value used to reset meter calibration + + + + + relative value (e.g. 0.05) + + + + + Setup the required tolerance in percent for check (e.g. 5 = +/-5%) + + + + + Check the tolerance of the calibration factor (e.g. 0.95 to 1.05 at 0.05 tolerance) + + + true if the calibration factor is inside the tolerance + + + + + Remind the calibration factor for the register write access + + + FlowTestRecord or CalibrationRecord + Update time needed for overflow detection in seconds + + + + + Calculate calibration factor from reference volume and reference time if set. + The deviation can adjust the factor to a required offset, it may be useful not to calibrate to 0.0). + The Result is NOT being stored to the meter. + CAN BE USED FOR STATIC START/STOP AND FLYING START/STOP PROCEDURE + + reference volume in m³ + reference time in seconds + the deviation to set the calibration in % + calibration factor as relative value or null if calibration factor cannot be calculated + + - The scale factor for calibration is going to adjusted here to keep the measurement result accurate. + + + + + information about measurement results to identify on input depending results + + + + + everything is good + + + + + inconsistent channel assignment + + + + + DUT time zero + + + + + DUT time is invalid + + + + + over flow time is invalid + + + + + REF time zero + + + + + REF time is invalid + + + + + DUT volume zero + + + + + REF volume is unknown + + + + + holds the current state for genesis actions (e.g. calibration,measurement) + + + + + If Measurement/Calibration/Action is not started + + + + + Measurement/Calibration/Action waits for next record package and sore this as start record, + After this Measurement/Calibration/Action IsRunning + + + + + Measurement/Calibration/Action collecting record and wait for end call + + + + + Measurement/Calibration/Action collecting next record record + + + + + Measurement/Calibration/Action waits for next record package and sore this as end record, + After this Measurement/Calibration/Action IsCompleted + + + + + Measurement/Calibration/Action has start and end record and can calculate a result + + + + + ProcessState nearly linear + + + + + meter not initialized + + + + + meter currently in initialization + + + + + initialization done + + + + + meter is on measurement + + + + + Measurement is done (not equal to succeed) + + + + + Meter is prepared for calibration + + + + + meter is on calibration + + + + + need Q from reference meter for calculation + + + + + Calibration is calculated + + + + + Calibration is stored on meter + + + + + SI Units + + + + + Unit definitions based on SI or derived SI or NON SI + + + + + Value without any attachable unit [] + + + + + Normalized to +/- 1.000 [norm] + + + + + Percent [%] + + + + + Voltage in Volts [V] + + + + + Current in Amperes [A] + + + + + Electrical Power in Watts [W] + + + + + Electrical Load in Ampere hours [Ah] + + + + + Distance in Meters [m] + + + + + Flow rate in cubic-meters per hour [m³/h] + + + + + Temperature in degree Celsius [°C] + + + + + Time in seconds [s] + + + + + Pressure in Pascal [Pa] + + + + + Frequency in Hertz [Hz] + + + + + Combine SI unit names with string value + + + + + Hard coded return string from FM2014 + + + + + SI unit string + + + + + Ctor + + + + + + + Table of SI and NON-SI units + + + + + Get the information string + + + Unit string + + - Initial. + + + + + + Collection of measurement interfaces + + + + + Event for new action of measurement state + + + + + Get the Type of the measurement record + + + + + + Get the channel no. the measurement collecting record for + + returns 0 when all channels should be collected + + + + Actual state of the measurement + + + + + Actual state of the measurement + + + + + Clear start, intermediate and end record and set action state to idle + + + + + Adding measurement record to processing FIFO + + + + + + Returns the actual state of the ongoing measurement + + + + + + Fist clear all record from earlier calibrations. + Set flag for starting measurement. + The next record is going to set the start values. + + + + + Stop grabbing record from streaming. + Last Data package is count as end volume (and time) + + + + + Returning the results of the ongoing measurement between two updates. + This can be used to update the screen during measurements like actual flow rate. + The timing will be set by the IntermediateUpdateTimeS. + + + + + + + + Returning the intermediate results of the ongoing measurement from the start of measurement until now! + + + + + + + + Returning the results of the measurements from start until stop. + + Measurement duration is needed explicit for flying start/stop procedure + reference volume is ALWAYS needed for scale and deviation + + + + + Sets a marker that a mesaurment start looking for an intermediate record + + + + + + interface for all incoming streaming protocol + to simplify measurements + + + + + Get volume of the record + + + + + Get time stamp of the record from meter + + + + + Get Data + + + + + + Get the channel the record comes from + + returns 0 if the channel is unavailable for this type of record (e.g. protocol f) + + + + Get overflow volume + + + + + + get overflow time + + + + + + + struct to hold a measurement record + + + + + physical channel 1, 2 and 3 + + + + + actual volume in cubic meters + + + + + Forward volume in cubic meters + + + + + Reverse volume in cubic meters as negative value + + + + + Flow rate in cubic meters per hour + + + + + Overflow volume + + + + + time converted to seconds + + + + + Overflow time + + + + + CRC16 CCITT + + + + + record is valid + + + + + Mark package as start, end, intermediate or not sync + + + + + time when package was decoded + + + + + time when package was received + + + + + + + + + + + + + + + + + + + + + + + + + + Calculate the measurements based on time, start- and stop-volume and overflow. + + + + + + + + Channel being needed for later analysis of channel number + as feedback to the caller + + + + + Accumulated overflow volume in cubic-meters, + the DUT internal range can overflow due to + the limitation of the number or the display resolution. + + + + + Accumulated overflow time in seconds, + the number-range can cause an timer overflow. + + + + + DUT start record + + + + + DUT end record + + + + + Volume = (End Volume + overflow) - Start Volume in cubic meters, + real DUT measurement uncorrected + + + + + DUT measurement corrected if REF time is given + + + + + REF volume in cubic meters + + + + + Time = (End time + overflow) - Start time in seconds, + real DUT measurement uncorrected + + + + + REF time in seconds + + + + + Flow rate in cubic meters per hour based on DUT + + + + + Flow rate in cubic meters per hour based on REF + + + + + Scale factor between REF volume and DUT volume + this will use the + /// + + + + Deviation between DUT volume and REF volume relative, + this will use the + + + + + Deviation between DUT volume and REF volume in percent, + this will use the + + + + + Calculation of measurement results, overflow will be taken into account: + - DutVolumeCm in cubic meters: + DUT volume measurement uncorrected, direct measurement from the DUT, + - CorrectedDutVolumeCm in cubic meters: + equals the uncorrected DutVolumeCm if REF time is unknown, + else it is the volume calculated from the DUT flow-rate with the REF time, + - DutTimeS in seconds: + DUT time measurement, + - DutFlowRateCmPh in cubic meters per hour: + based on DUT volume and DUT time uncorrected, + - RefFlowRateCmPh in cubic meters per hour: + REF volume and REF time being used, + - ScaleFactorRefToDut unit less: + calculated with absolute and corrected DUT volume and REF volume + needed for calibration, is higher than one if DUT volume is less than the REF volume, + can be directly used to calculate the new scale by multiplication with the current scale, + - DeviationDutToRefRel unit less: + calculated with absolute and corrected DUT volume and REF volume + deviation needed for verification relative of DUT to REF, + - DeviationDutToRefPer in percent: + calculated with absolute and corrected DUT volume and REF volume + deviation needed for verification of DUT to REF in percent. + + + - Scale factor calculation added, + - Deviation calculation added. + + + - Flow rate calculation added, + - Slot added. + + + - RefVolumeCm, RefTimeSS and absVolumeQm added, + - Slot removed. + + + - FlowRateQmPh split to DutFlowRateCmPh and RefFlowRateCmPh, + - CorrectedDutVolumeCm added, + - input channel compared with start and end record channels. + + + - State implemented. + + + - Check and states for DUT time zero, DUT volume zero, over flow volume below zero, + start and end record time below zero. + + + - Supported static start/stop with DUT- and REF-volume, this is time independent but the + DUT- and over-flow-times shouldn't be negative or zero. + - Meter renamed to DUT (Device under Test). + + Start of measurement record set + End of measurement record set + accumulated overflow volume, will add to result volume + accumulated overflow time, will add to result time + measured REF time + REF volume + physical channel of measurement path (0 for main measurement) + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.CordonelPreadjustmentUi.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.CordonelPreadjustmentUi.dll new file mode 100644 index 000000000..90c7af354 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.CordonelPreadjustmentUi.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.CordonelPreadjustmentUi.dll.config b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.CordonelPreadjustmentUi.dll.config new file mode 100644 index 000000000..1ff53b0cd --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.CordonelPreadjustmentUi.dll.config @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.CordonelPreadjustmentUi.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.CordonelPreadjustmentUi.pdb new file mode 100644 index 000000000..860404a19 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.CordonelPreadjustmentUi.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.GenesisToolBox.exe b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.GenesisToolBox.exe new file mode 100644 index 000000000..6c5844cee Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.GenesisToolBox.exe differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.GenesisToolBox.exe.config b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.GenesisToolBox.exe.config new file mode 100644 index 000000000..0e4e85051 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.GenesisToolBox.exe.config @@ -0,0 +1,46 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.GenesisToolBox.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.GenesisToolBox.pdb new file mode 100644 index 000000000..4f47685cf Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.GenesisToolBox.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.GenesisToolBox.xml b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.GenesisToolBox.xml new file mode 100644 index 000000000..e987aab03 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Ui.GenesisToolBox.xml @@ -0,0 +1,1724 @@ + + + + Xylem.Common.Ui.GenesisToolBox + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Ctor FW update + + + + + Clear data table and set genesis to not connected + + + + + Disable all buttons except the connect button + + + + + Enable all buttons except the connect button + + + + + Lock all buttons, enable the connect button + + + + + Enable all buttons, Cordonel has to be connected + + + + + Disable all buttons during operation with device + + + + + Restore setting of buttons and timeout after operation with device + + + + + Establish connection + + + - Compare the max supported FW versions of the configuration.json. + + + - Catch error message on unknown data type and kill meter. + + + + + View all process bars and labels + + + + + Clear history window. + + + - Initial + + + + + Output exclusively to user update remarks text window. + + + - Color added. + + + - FileConfig output added. + + + + + Output exclusively to user update remarks text window. + + + + + Output exclusively to user update remarks text window. + + + + + Output exclusively to user update remarks text window. + + + + + Display installed meter FW. + + + - Init. + + + + + Set the actual process and log the text. + + + - Color added. + + + + + Calculate and log the PC and Cordonel time. + + + - Init. + + + + + Calculate and log Cordonel time. + + + - Init. + + + - Used to calculate time in UTC based on 01. Jan 2000 + and the given offset in seconds. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + History display of update process + + + + + Ctor + + + + + Select always the last line for the display. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FW update form + + + + + Ctor FW update + + + + + Clear data table and set genesis to not connected + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FW update form + + + + + Ctor FW update + + + + + Clear data table and set genesis to not connected + + + + + Disable all buttons except the connect button + + + + + Enable all buttons except the connect button + + + + + Lock all buttons, enable the connect button + + + + + Enable all buttons, Cordonel has to be connected + + + + + Disable all buttons during operation with device + + + + + Restore setting of buttons and timeout after operation with device + + + + + Establish connection + + + - Compare the max supported FW versions of the configuration.json. + + + - Catch error message on unknown data type and kill meter. + + + - Actions on pwdContainer error. + + + - Password checks extended. + + + + + Wait for reboot is completed by polling of PcbId + + + + + View all process bars and labels + + + + + Display installed meter FW. + + + - Init. + + + + + Calculate and log the PC and Cordonel time. + + + - Init. + + + + + Calculate and log Cordonel time. + + + - Init. + + + - Used to calculate time in UTC based on 01. Jan 2000 + and the given offset in seconds. + + + + + Clear history window. + + + - Initial + + + + + Output exclusively to user update remarks text window. + + + - Color added. + + + - FileConfig output added. + + + + + Set the actual process and log the text. + + + - Color added. + + + + + Output exclusively to user update remarks text window. + + + + + Output exclusively to user update remarks text window. + + + + + Output exclusively to user update remarks text window. + + + + + List all meter files + + + - Initial + + + + + Read engineering log files from meter and analyzes the contents. + + + - Initial + + + + + List all meter log files covered by the log index file + + + - Initial + + + + + Analyze all meter files + + + - Initial + + + + + Process update event for displaying messages in history window + + + + + - Initial + + + + + + + + + + + + + Text to display + + + + + Headline + + + + + Buttons + + + + + Icon + + + + + Message pop up event handler + + + + + Releases the display to normal operation + + + + + - Initial + + + + + Set battery dependencies + + + + + - Initial + + + - WarnFromClamp from 20 to 22 years (based on CSD value with 365,00 days a year + and not a more accurate 365,25 days/year), + - StoreConfiguration. + + + + + Store all configurations + + + + + - Initial + + + + + Reboot the meter + + + + + - Initial + + + + + Read config file from meter and store it to disk. + + + - Initial + + + + + Read power correction information. + + + - Initial + + + + + Read config file from meter and store it to disk. + + + - Initial + + + - Redirect pwd hash to logging window. + + + + + Set date and time from PC to Cordonel + + + + + - Initial + + + + + Get date and time from PC and Cordonel and record it + + + + + - Initial + + + + + Read engineering log files from meter and analyzes the contents. + + + - Initial + + + + + Collect lifetime information and production status. + + + - Initial + + + + + List file details from meter. + + + - Initial + + + + + Tidy the file system: + - Erasing upgrade files left over from unsuccessfully FW update, + - Erase logging files for versions not covered by the actual region as + during development a reprogramming from EMEA to NA and vice versa will + leave the logs for thr other version in, + - Remove the test file for EMEA, as this is the placeholder for the FW + update over the air to keep the space reserved for this process (250 kB), + - Keep important files listed in the log index. + + + - Initial + + + + + Erase a specified file + + + + + - Initial + + + + + Switch pulse mode to OFF + + + + + - Initial + + + + + Read status + + + + + - Initial + + + + + Read status + + + + + - Initial + + + - Check if new password is in the meter with login level 8 even if the file write wasn't successful, + - Set new password in production database, + - Check password level 3 as all applications need to use this, + - Validate production password. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FW update form + + + + + Ctor FW update + + + + + Clear data table and set genesis to not connected + + + + + Establish connection + + + - Compare the max supported FW versions of the configuration.json. + + + - Catch error message on unknown data type and kill meter. + + + + + View all process bars and labels + + + + + Display installed meter FW. + + + - Init. + + + + + Clear history window. + + + - Initial + + + + + Output exclusively to user update remarks text window. + + + - Color added. + + + + + Output exclusively to user update remarks text window. + + + + + Output exclusively to user update remarks text window. + + + + + Output exclusively to user update remarks text window. + + + + + Process update event for displaying messages in history window + + + + + - Initial + + + + + Download LUT file + + + + + + + + + + + + + + + Text to display + + + + + Headline + + + + + Buttons + + + + + Icon + + + + + Message pop up event handler + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FW update form + + + + + Ctor FW update + + + + + Clear data table and set genesis to not connected + + + - Enable update of Genesis Flow in Genesis Tool Box. + + + + + Build data grid and fill it with meter and file information, + compare version and CRC of meter and file + + + + + Set meter application information to data grid view + + + + + + Set file application information to data grid view. + + + + + + Display the update information + + + + + After changing the grid view cell and data row cell contents, the meter application lists + have to be updated with the required action (erase or update or none of them) + + + + + + Overwrite cell click, because edit of cells is denied. This is needed for update and/or erase selection + + + + + + + Establish connection + + + - Compare the max supported FW versions of the configuration.json. + + + - Catch error message on unknown data type and kill meter. + + + - Use optional offline passwords. + + + - Restore reboot counter. + + + + + View all process bars and labels + + + + + - Enable update of Genesis Flow in Genesis Tool Box. + + + + + Upload selected update files and compare them with update files + + + + + + + Download selected update files entirely + + + + + + + Reboot the meter + + + + + - Initial + + + + + Download remaining files parts from previous download + + + + + + + Preselect "Download" trigger marks on successfully downloaded files + + + + + + + Build update control file and trigger update of selected files + + + + + + + Automatic update of entire FW + + + + + + + FileConfig parts are consecutive, stop process at first failed part and retry from + this part on all others behind + + + + + + + Failed file parts are somewhere in between succeeded parts and will be retried separately + + + + + + + Activation of manual control buttons for individual update procedure + + + + + + + + + + + + + + - Enable update of Genesis Flow in Genesis Tool Box. + + + + + + + + + + + + + + + Message text + + + + + Title + + + + + Buttons + + + + + The Icon + + + + + + + + + + - Enable update of Genesis Flow in Genesis Tool Box. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + - Catch error message on unknown data type and kill meter. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Password access and write to meter + + + + + Password handling form + + + + + - Catch error message on unknown data type and kill meter. + + + + + Marker for readiness of password file + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + Ctor + + + + + + + + Hides all currently available controls from the main window. + + + + + Gives all buttons that pointing to software function or other forms, tag with specific software function. + + + + + Sets a label with error message that says the UI is not available. + + + + + Shows all UI controls. Sets control enabled or disabled, having tag that is from type SoftwareFunctions. + For DEBUGGING all buttons will be enabled! + + + + + Hides all members but the login form if the app is initialized otherwise shows error message. + In case that the app is initialized and user is authorized shows all buttons as enabled or disabled depending on the user permissions. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Setup of GTB + + + + + Ctor + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Streaming quality display + + + + + Ctor + + + + + - Catch error message on unknown data type and kill meter. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Holds information over current software and logged in user. + + + + + Sends login request and obtains an bearer authorization token. + + + + + The main entry point for the application. + + + + + Erforderliche Designervariable. + + + + + Verwendete Ressourcen bereinigen. + + True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + + + + Erforderliche Methode für die Designerunterstützung. + Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.ByteArrayStyle.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.ByteArrayStyle.dll new file mode 100644 index 000000000..f7bd4d43b Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.ByteArrayStyle.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.ByteArrayStyle.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.ByteArrayStyle.pdb new file mode 100644 index 000000000..16c09f4f0 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.ByteArrayStyle.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.Crc16Ccitt.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.Crc16Ccitt.dll new file mode 100644 index 000000000..b2abafae4 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.Crc16Ccitt.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.Crc16Ccitt.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.Crc16Ccitt.pdb new file mode 100644 index 000000000..4f8c88ef1 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.Crc16Ccitt.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.Logging.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.Logging.dll new file mode 100644 index 000000000..8133744c3 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.Logging.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.Logging.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.Logging.pdb new file mode 100644 index 000000000..e52bdcac0 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.Logging.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.ProcessExec.dll b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.ProcessExec.dll new file mode 100644 index 000000000..31424765f Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.ProcessExec.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.ProcessExec.pdb b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.ProcessExec.pdb new file mode 100644 index 000000000..6d5a0703b Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/Xylem.Common.Utils.ProcessExec.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/XylemCommonUiLegacyGenCtl.dll b/GenesisCordonelInterface/RuntimePackage/Package/XylemCommonUiLegacyGenCtl.dll new file mode 100644 index 000000000..dbd218751 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/XylemCommonUiLegacyGenCtl.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/XylemCommonUiLegacyGenCtl.dll.config b/GenesisCordonelInterface/RuntimePackage/Package/XylemCommonUiLegacyGenCtl.dll.config new file mode 100644 index 000000000..c764f5323 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/XylemCommonUiLegacyGenCtl.dll.config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/XylemCommonUiLegacyGenCtl.pdb b/GenesisCordonelInterface/RuntimePackage/Package/XylemCommonUiLegacyGenCtl.pdb new file mode 100644 index 000000000..e621a0271 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/XylemCommonUiLegacyGenCtl.pdb differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/configuration.json b/GenesisCordonelInterface/RuntimePackage/Package/configuration.json new file mode 100644 index 000000000..66a2b2a21 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/configuration.json @@ -0,0 +1,24132 @@ +{ + "CONFIGEXCHANGE": { + "id": 4, + "version": { + "first": 3, + "last": 245 + }, + "registers": { + "Privilege": { + "id": 0, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Written to set the login level, followed by the password. Note, this can be read at any login level including 0.", + "version": { + "first": 3, + "last": 245 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 8 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Used at the same time as Password so probably wants to have column S indicated.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "Password": { + "id": 1, + "details": [ + { + "type": "uint96_t", + "privilege": { + "lvl1": "WO", + "lvl2": "WO", + "lvl3": "WO", + "lvl4": "WO", + "lvl5": "WO", + "lvl6": "WO", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Password for logging in, requires 3 consecutive writes", + "version": { + "first": 3, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "Used in login.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FOpen": { + "id": 2, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to open a file on the meter, handle returned", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FClose": { + "id": 3, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to close a file on the meter", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FRead": { + "id": 4, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to read bytes from an open file", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FWrite": { + "id": 5, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to write bytes to an open file", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FSeek": { + "id": 6, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to seek within an open file", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FTell": { + "id": 7, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to determine position within an open file", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "Remove": { + "id": 8, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to delete a file", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FEOF": { + "id": 9, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this determine whether the current position in an open file is the end of the file", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "Catalogue": { + "id": 10, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Returns a list of files in the filesystem that matches a string containing wildcards passed in", + "version": { + "first": 49, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PCBSerialNumber": { + "id": 12, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "String containing the PCB serial number. Note, this can be read at any login level including 0", + "version": { + "first": 59, + "last": 245 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "Used for identification and login.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "ConfigAccessRights": { + "id": 13, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bitmask of login levels permitted to manipulate dangerous files", + "version": { + "first": 59, + "last": 245 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "I don't expect this to be changed.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "FFlush": { + "id": 14, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to flush write buffers to an open file", + "version": { + "first": 66, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + } + }, + "status": { + "LOCKED_OUT": { + "id": 0 + }, + "AUTHENTICATION_FAILURE": { + "id": 1 + }, + "ACCESS_DENIED": { + "id": 2 + }, + "UNKNOWN_PARAMETER": { + "id": 3 + }, + "IN_USE": { + "id": 4 + }, + "SIZES_DONT_MATCH": { + "id": 5 + }, + "CANT_READ_CONFIG_FILE": { + "id": 6 + }, + "USER_NOT_KNOWN": { + "id": 7 + }, + "CANT_CREATE_CONFIG_FILE": { + "id": 8 + }, + "STORE_DIDNT_STORE": { + "id": 9 + }, + "STORE_CORRUPT": { + "id": 10 + }, + "EXPECTED_WRITE": { + "id": 11 + }, + "EXPECTED_READ": { + "id": 12 + }, + "STOP_CYCLING": { + "id": 13 + }, + "TOO_MANY_OPEN": { + "id": 14 + }, + "NEVER_OPENED": { + "id": 15 + }, + "FILE_PROTECTED": { + "id": 16 + }, + "PARTIAL_RECALL": { + "id": 17 + }, + "DEFAULT_PASSWORD_USED": { + "id": 18 + } + } + }, + "CUSTOMER": { + "id": 9, + "version": { + "first": 1, + "last": 167 + }, + "registers": { + "AlarmStatus0": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 0-3.", + "version": { + "first": 1, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AlarmStatus1": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 4-7.", + "version": { + "first": 1, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "TriggerAlarmCancel": { + "id": 2, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Any set bits manually clear the corresponding alarm.", + "version": { + "first": 1, + "last": 110 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Any set bits manually clear the corresponding alarm.", + "version": { + "first": 111, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [], + "remarks": "Cancel all alarms at the end of production.", + "region": { + "emea": { + "values": { + "default": 4294967295 + } + }, + "na": { + "values": { + "default": 4294967295 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "AlarmStatus2": { + "id": 3, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 8-11.", + "version": { + "first": 26, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AlarmStatus3": { + "id": 4, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 12-15.", + "version": { + "first": 26, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AlarmStatus4": { + "id": 5, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 16-19.", + "version": { + "first": 26, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AlarmStatus5": { + "id": 6, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 20-23.", + "version": { + "first": 26, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AlarmStatus6": { + "id": 7, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 24-27.", + "version": { + "first": 26, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AlarmStatus7": { + "id": 8, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 28-31.", + "version": { + "first": 26, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AlarmEnableMask": { + "id": 9, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are being monitored.", + "version": { + "first": 26, + "last": 110 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are being monitored.", + "version": { + "first": 111, + "last": 162 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Bitmask�of the alarms that we are interested in. I can imagine some customers may have different requirements to others. The radio does change this.", + "region": { + "emea": { + "values": { + "default": 32851 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are being monitored.", + "version": { + "first": 163, + "last": 163 + }, + "values": { + "default": 49235, + "minimum": 2, + "maximum": 654915 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Bitmask�of the alarms that we are interested in. I can imagine some customers may have different requirements to others. The radio does change this.", + "region": { + "emea": { + "values": { + "default": 49235 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are being monitored.", + "version": { + "first": 164, + "last": 167 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Bitmask�of the alarms that we are interested in. I can imagine some customers may have different requirements to others. The radio does change this.", + "region": { + "emea": { + "values": { + "default": 49235 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "AlarmBroadcastMask": { + "id": 10, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which will generate events.", + "version": { + "first": 26, + "last": 110 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which will generate events.", + "version": { + "first": 111, + "last": 167 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "This updates the same value as�AlarmEnableMask, best to avoid changing it.", + "region": { + "emea": { + "values": { + "default": 32851 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "AlarmVisualMask": { + "id": 11, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are displayed with IDs and the alarm icon.", + "version": { + "first": 110, + "last": 110 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are displayed with IDs and the alarm icon.", + "version": { + "first": 111, + "last": 162 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Bitmask of the alarms that will be shown on the display (both the alarm ID and the flag icon). Again, I can imagine different customers wanting different things. The radio seems to set this but it seems to be a hardwired value.", + "region": { + "emea": { + "values": { + "default": 8156 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are displayed with IDs and the alarm icon.", + "version": { + "first": 163, + "last": 163 + }, + "values": { + "default": 16382, + "minimum": 16382, + "maximum": 16382 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Bitmask of the alarms that will be shown on the display (both the alarm ID and the flag icon). Again, I can imagine different customers wanting different things. The radio seems to set this but it seems to be a hardwired value.", + "region": { + "emea": { + "values": { + "default": 16382 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are displayed with IDs and the alarm icon.", + "version": { + "first": 164, + "last": 167 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Bitmask of the alarms that will be shown on the display (both the alarm ID and the flag icon). Again, I can imagine different customers wanting different things. The radio seems to set this but it seems to be a hardwired value.", + "region": { + "emea": { + "values": { + "DN40": 8156, + "DN50": 8156, + "DN65": 8156, + "DN80": 8156, + "DN100": 8156, + "DN125": 8156, + "DN150": 8156, + "DN200": 16382, + "DN250": 16382, + "DN300": 16382 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "AlarmVisualAutoClearMask": { + "id": 12, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Alarms that have their display automatically cleared", + "version": { + "first": 110, + "last": 110 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Alarms that have their display automatically cleared", + "version": { + "first": 111, + "last": 167 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Not in use, ignore.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "ExcessFlowVolumeThreshold": { + "id": 13, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which broken pipe alarm is set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 61, + "last": 110 + }, + "values": { + "default": 639590, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which broken pipe alarm is set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 639590, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which broken pipe alarm is set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 119, + "last": 132 + }, + "values": { + "default": 639590, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which broken pipe alarm is set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 133, + "last": 167 + }, + "si_transform": { + "remarks": "Cubic Meters per Second: conversion of 1/256 l/h flow rate units, the volume (liters = (1 / 256) * 10^-3 m^3 = 3.90625 * 10^-6 m^3) and time (hours = 3600 s) into SI base units. Flow rate = (3.90625 * 10^-6 m^3) / (3600 s) = 1.085069444 * 10^-9 m^3/s.", + "units": "m^3/s", + "scale_float_mult": 1.0, + "scale_power_2": -8, + "scale_power_10": -3, + "scale_float_div": 3600.0, + "offset": 0 + }, + "values": { + "default": 639999, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "This is just the flow rate above which you'll get a broken pipe alarm (assuming it is above for ExcessFlowTimeThreshold). This, along with all the alarm configuration settings seem like things that different customers might want different settings for. However I believe most can be changed via the radio. A.F.: Register is for the EMEA alarms so we don't need them for any NA meter sizes. NA alarms are configured at uniontown using UI-1236. Should NA columns be cleared?", + "region": { + "emea": { + "values": { + "DN40": 6400000, + "DN50": 12800000, + "DN65": 16000000, + "DN80": 22400000, + "DN100": 32000000, + "DN125": 64000000, + "DN150": 96000000, + "DN200": 128000000, + "DN250": 192000000, + "DN300": 256000000 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "LeakTimeThreshold": { + "id": 14, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for leak alarm in minutes", + "version": { + "first": 61, + "last": 110 + }, + "values": { + "default": 10080, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for leak alarm in minutes", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 10080, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for leak alarm in minutes", + "version": { + "first": 119, + "last": 167 + }, + "si_transform": { + "remarks": "Seconds: time in minutes ...", + "units": "s", + "scale_float_mult": 60.0, + "scale_power_2": 0, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 360, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Default for J.S. is 20160. A.F.: Register is for the EMEA alarms so we don't need them for any NA meter sizes. NA alarms are configured at uniontown using UI-1236. Should NA columns be cleared?", + "region": { + "emea": { + "values": { + "default": 20160 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "ReverseFlowTimeThreshold": { + "id": 15, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of minutes of reverse flow required to set reverse flow alarm", + "version": { + "first": 61, + "last": 110 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of minutes of reverse flow required to set reverse flow alarm", + "version": { + "first": 111, + "last": 142 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of minutes of reverse flow required to set reverse flow alarm", + "version": { + "first": 143, + "last": 167 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "15 mins for EMEA", + "region": { + "emea": { + "values": { + "default": 15 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Locale": { + "id": 18, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Timezone in which this application is set to run.", + "version": { + "first": 24, + "last": 167 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": true, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "VaKo?? We need a seperation of Timezone an display view. A.F.: There are a lot of locales, not just one per time zone. Using the correct locale should set the display and the timezone correctly.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "AppArrangement": { + "id": 19, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "A name for the arrangement of applications on the meter", + "version": { + "first": 130, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "This is a readonly register that gives the firmware a hint about whether it is set up as an EMEA or NA meter (or neither). You can ignore or use it to check the value is as expected. Might be worth checking it.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "RebootCount": { + "id": 20, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of times the meter has rebooted", + "version": { + "first": 73, + "last": 110 + }, + "values": { + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of times the meter has rebooted", + "version": { + "first": 111, + "last": 167 + }, + "values": { + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "ExcessFlowTimeThreshold": { + "id": 21, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for broken pipe alarm in minutes", + "version": { + "first": 80, + "last": 110 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for broken pipe alarm in minutes", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for broken pipe alarm in minutes", + "version": { + "first": 119, + "last": 167 + }, + "values": { + "default": 180, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Default for J.S. is 5.", + "region": { + "emea": { + "values": { + "default": 5 + } + }, + "na": { + "values": { + "default": 5 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "LeakFlowThreshold": { + "id": 22, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which leak alarm can be set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 80, + "last": 110 + }, + "values": { + "default": 12800, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which leak alarm can be set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 12800, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which leak alarm can be set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 119, + "last": 132 + }, + "values": { + "default": 5529, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which leak alarm can be set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 133, + "last": 167 + }, + "values": { + "default": 6399, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "This is just the flow rate above which you'll get a leak alarm (assuming it is above for LeakTimeThreshold). A.F.: Register is for the EMEA alarms so we don't need them for any NA meter sizes. NA alarms are configured at uniontown using UI-1236. Should NA columns be cleared?", + "region": { + "emea": { + "values": { + "DN40": 64000, + "DN50": 96000, + "DN65": 160000, + "DN80": 224000, + "DN100": 320000, + "DN125": 640000, + "DN150": 960000, + "DN200": 1280000, + "DN250": 2240000, + "DN300": 2560000 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "MfgCharge": { + "id": 23, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Charge in uAs available in manufacturing (read only)", + "version": { + "first": 84, + "last": 167 + }, + "si_transform": { + "remarks": "Coulombs: charge in uAs ...", + "units": "C", + "scale_float_mult": 1.0, + "scale_power_2": 0, + "scale_power_10": -6, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 181440000 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [], + "remarks": "Check totalusedcharge against this to ensure battery usage in manufacturing isn't too high", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "TemperatureHighThreshold": { + "id": 24, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "High temperature alarm threshold in 0.1�C", + "version": { + "first": 88, + "last": 100 + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 800 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "High temperature alarm threshold in 0.1�C", + "version": { + "first": 101, + "last": 110 + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 800 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "High temperature alarm threshold in 0.1�C", + "version": { + "first": 111, + "last": 167 + }, + "si_transform": { + "remarks": "Degrees Celsius: temperature in 0.1 degrees C ...", + "units": "�C", + "scale_float_mult": 1.0, + "scale_power_2": 0, + "scale_power_10": -1, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 800 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 500 + } + }, + "na": { + "values": { + "default": 270 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureHighDelay": { + "id": 25, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for high temperature alarm in seconds", + "version": { + "first": 88, + "last": 110 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for high temperature alarm in seconds", + "version": { + "first": 111, + "last": 167 + }, + "si_transform": { + "remarks": "Seconds: time in seconds ...", + "units": "s", + "scale_float_mult": 60.0, + "scale_power_2": 0, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureLowThreshold": { + "id": 26, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Low temperature alarm threshold in 0.1�C", + "version": { + "first": 88, + "last": 100 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Low temperature alarm threshold in 0.1�C", + "version": { + "first": 101, + "last": 110 + }, + "values": { + "default": 20, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Low temperature alarm threshold in 0.1�C", + "version": { + "first": 111, + "last": 167 + }, + "values": { + "default": 20, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 20 + } + }, + "na": { + "values": { + "default": 20 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureLowDelay": { + "id": 27, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for low temperature alarm in seconds", + "version": { + "first": 88, + "last": 110 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for low temperature alarm in seconds", + "version": { + "first": 111, + "last": 167 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureHighThreshold": { + "id": 28, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "High pressure alarm threshold in Pa", + "version": { + "first": 88, + "last": 110 + }, + "values": { + "default": 1600000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "High pressure alarm threshold in Pa", + "version": { + "first": 111, + "last": 121 + }, + "values": { + "default": 1600000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "High pressure alarm threshold in Pa", + "version": { + "first": 122, + "last": 167 + }, + "values": { + "default": 1600000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Absolute or relative? A.F.: gauge pressure.", + "region": { + "emea": { + "values": { + "default": 1600000 + } + }, + "na": { + "values": { + "default": 1380000 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureHighDelay": { + "id": 29, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for high pressure alarm in seconds", + "version": { + "first": 88, + "last": 110 + }, + "values": { + "default": 300, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for high pressure alarm in seconds", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 300, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for high pressure alarm in seconds", + "version": { + "first": 119, + "last": 167 + }, + "si_transform": { + "remarks": "Seconds: ...", + "units": "s", + "scale_float_mult": 60.0, + "scale_power_2": 0, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureLowThreshold": { + "id": 30, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Low pressure alarm threshold in Pa", + "version": { + "first": 88, + "last": 110 + }, + "values": { + "default": 30000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Low pressure alarm threshold in Pa", + "version": { + "first": 111, + "last": 121 + }, + "values": { + "default": 30000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Low pressure alarm threshold in Pa", + "version": { + "first": 122, + "last": 167 + }, + "values": { + "default": 30000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Absolute or relative? A.F.: gauge pressure.", + "region": { + "emea": { + "values": { + "default": 30000 + } + }, + "na": { + "values": { + "default": 240000 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureLowDelay": { + "id": 31, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for low pressure alarm in seconds", + "version": { + "first": 88, + "last": 110 + }, + "values": { + "default": 300, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for low pressure alarm in seconds", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 300, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for low pressure alarm in seconds", + "version": { + "first": 119, + "last": 167 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "StoreConfiguration": { + "id": 32, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Store all configuration items in non-volatile memory.", + "version": { + "first": 88, + "last": 130 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Store all configuration items in non-volatile memory.", + "version": { + "first": 131, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "You do need to use this if you change any parameters in CUSTOMER and want to keep them.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + }, + "SerialNumber": { + "id": 33, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Customer serial number string", + "version": { + "first": 139, + "last": 167 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "BackupCalendarSeconds": { + "id": 34, + "details": [ + { + "type": "time_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "NA", + "lvl8": "NA" + }, + "description": "Internal backup of calendar seconds", + "version": { + "first": 145, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "Internal use in firmware only", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "InstallationTime": { + "id": 35, + "details": [ + { + "type": "time_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Datetime in seconds since 1/1/2000 00:00:00. Time meter was determined to have been installed. 0 means not installed.", + "version": { + "first": 147, + "last": 167 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "Write to zero before leaving manufacturing to ensure not marked as 'installed'.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "LocaleDecimalPoint": { + "id": 36, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Read to view the string used as a decimal point for this locale", + "version": { + "first": 151, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "LocaleThousandsSeparator": { + "id": 37, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Read to view the string used as a thousands separarator for this locale", + "version": { + "first": 151, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "InternalLoginTest": { + "id": 38, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test whether the internal login works. Start test by writing '1' then log out to enable the test to run. Log back in and read back this register for result (see status codes)", + "version": { + "first": 157, + "last": 167 + }, + "values": { + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Helper function to test the configexchange login at the internal level will succeed (that is, that the password is as expected). This should be tested after installation of password file at end of line. Add to production test if register present in firmware.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "NoFlowLimit": { + "id": 39, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "time threshold in Minutes for NoFlowAlarm trigger NoFlowAlarm trigger; 251002 Clemens: clamp the �last� field to 161 and may need to use the �exclude� versions mechanism if 1.3 development includes work for CORDHW-3124.", + "version": { + "first": 161, + "last": 167 + }, + "values": { + "default": 43200, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "This has default setting for DEWA customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "NoFlowAlarmResetHysteresis": { + "id": 40, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "number of consecutive samples (Minutes) before NoFlow Alarm gets cleared; 251002 Clemens: clamp the �last� field to 161 and may need to use the �exclude� versions mechanism if 1.3 development includes work for CORDHW-3124.", + "version": { + "first": 161, + "last": 167 + }, + "values": { + "default": 5, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "This has default setting for DEWA customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Gradient_Averaging_Samples": { + "id": 41, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "number of samples for moving average (window size)", + "version": { + "first": 165, + "last": 167 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "This has default setting for Canal de Isabel customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Gradient_Pos_Granularity_Steps": { + "id": 42, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Unitless granularity steps for positive pressure Gradient alarm threshold", + "version": { + "first": 165, + "last": 167 + }, + "values": { + "default": 200, + "minimum": 1, + "maximum": 1600 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "This has default setting for Canal de Isabel customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Gradient_Neg_Granularity_Steps": { + "id": 43, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Unitless granularity steps for negative pressure Gradient alarm threshold", + "version": { + "first": 165, + "last": 167 + }, + "values": { + "default": 200, + "minimum": 1, + "maximum": 1600 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "This has default setting for Canal de Isabel customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Gradient_Samples_Alarmtrigger": { + "id": 44, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of consecutive samples above threshold before Alarm gets triggered", + "version": { + "first": 165, + "last": 167 + }, + "values": { + "default": 3, + "minimum": 1, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "This has default setting for Canal de Isabel customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + } + }, + "status": { + "REBOOT": { + "id": 0 + }, + "REBOOT_STOP": { + "id": 1 + }, + "LOW_BATTERY": { + "id": 2 + }, + "LOW_BATTERY_STOP": { + "id": 3 + }, + "VERY_LOW_BATTERY": { + "id": 4 + }, + "VERY_LOW_BATTERY_STOP": { + "id": 5 + }, + "CONFIG_ERROR": { + "id": 6 + }, + "CONFIG_ERROR_STOP": { + "id": 7 + }, + "EMPTY_PIPE": { + "id": 8 + }, + "EMPTY_PIPE_STOP": { + "id": 9 + }, + "MAGNETIC_TAMPER": { + "id": 10 + }, + "MAGNETIC_TAMPER_STOP": { + "id": 11 + }, + "REVERSE_FLOW": { + "id": 12 + }, + "REVERSE_FLOW_STOP": { + "id": 13 + }, + "SUSPECT_LEAK": { + "id": 14 + }, + "SUSPECT_LEAK_STOP": { + "id": 15 + }, + "BROKEN_PIPE": { + "id": 16 + }, + "BROKEN_PIPE_STOP": { + "id": 17 + }, + "LOW_PRESSURE": { + "id": 18 + }, + "LOW_PRESSURE_STOP": { + "id": 19 + }, + "HIGH_PRESSURE": { + "id": 20 + }, + "HIGH_PRESSURE_STOP": { + "id": 21 + }, + "LOW_TEMPERATURE": { + "id": 22 + }, + "LOW_TEMPERATURE_STOP": { + "id": 23 + }, + "HIGH_TEMPERATURE": { + "id": 24 + }, + "HIGH_TEMPERATURE_STOP": { + "id": 25 + }, + "RADIO_ERROR": { + "id": 26 + }, + "RADIO_ERROR_STOP": { + "id": 27 + }, + "METROLOGY_PARAMS": { + "id": 28 + }, + "METROLOGY_PARAMS_STOP": { + "id": 29 + }, + "METROLOGY_MEASURE": { + "id": 30 + }, + "METROLOGY_MEASURE_STOP": { + "id": 31 + }, + "UNALLOCATED_6": { + "id": 32 + }, + "UNALLOCATED_6_STOP": { + "id": 33 + }, + "UNALLOCATED_7": { + "id": 34 + }, + "UNALLOCATED_7_STOP": { + "id": 35 + }, + "UNALLOCATED_8": { + "id": 36 + }, + "UNALLOCATED_8_STOP": { + "id": 37 + }, + "UNALLOCATED_9": { + "id": 38 + }, + "UNALLOCATED_9_STOP": { + "id": 39 + }, + "UNALLOCATED_10": { + "id": 40 + }, + "UNALLOCATED_10_STOP": { + "id": 41 + }, + "UNALLOCATED_11": { + "id": 42 + }, + "UNALLOCATED_11_STOP": { + "id": 43 + }, + "UNALLOCATED_12": { + "id": 44 + }, + "UNALLOCATED_12_STOP": { + "id": 45 + }, + "UNALLOCATED_13": { + "id": 46 + }, + "UNALLOCATED_13_STOP": { + "id": 47 + }, + "UNALLOCATED_14": { + "id": 48 + }, + "UNALLOCATED_14_STOP": { + "id": 49 + }, + "UNALLOCATED_15": { + "id": 50 + }, + "UNALLOCATED_15_STOP": { + "id": 51 + }, + "UNALLOCATED_16": { + "id": 52 + }, + "UNALLOCATED_16_STOP": { + "id": 53 + }, + "UNALLOCATED_17": { + "id": 54 + }, + "UNALLOCATED_17_STOP": { + "id": 55 + }, + "UNALLOCATED_18": { + "id": 56 + }, + "UNALLOCATED_18_STOP": { + "id": 57 + }, + "UNALLOCATED_19": { + "id": 58 + }, + "UNALLOCATED_19_STOP": { + "id": 59 + }, + "UNALLOCATED_20": { + "id": 60 + }, + "UNALLOCATED_20_STOP": { + "id": 61 + }, + "UNALLOCATED_21": { + "id": 62 + }, + "UNALLOCATED_21_STOP": { + "id": 63 + }, + "UNKNOWN_PARAMETER": { + "id": 64 + }, + "LOCALE_UNDEFINED": { + "id": 65 + }, + "NO_SUCH_ALARM": { + "id": 66 + }, + "OUT_OF_RANGE": { + "id": 67 + }, + "NOT_IMPLEMENTED": { + "id": 68 + }, + "BAD_CONFIG": { + "id": 69 + }, + "DID_NOT_STORE": { + "id": 70 + }, + "STORE_PENDING": { + "id": 71 + }, + "STRING_TOO_LONG": { + "id": 72 + }, + "TEST_PENDING": { + "id": 73 + }, + "TEST_STARTED": { + "id": 74 + }, + "TEST_OK_SKELETON": { + "id": 75 + }, + "TEST_OK": { + "id": 76 + }, + "DID_NOT_TEST": { + "id": 77 + } + } + }, + "FLEXNETSERIAL": { + "id": 26, + "version": { + "first": 1, + "last": 24 + }, + "registers": { + "UpgState": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "General UPG states.", + "version": { + "first": 2, + "last": 24 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Can be ignored, temporarily for FW upgrade.", + "region": { + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FwdlState": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Specifies the Bootloader State of operation.", + "version": { + "first": 2, + "last": 24 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Can be ignored, temporarily for FW upgrade.", + "region": { + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "id": 0 + }, + "TOO_MANY_APPS": { + "id": 1 + } + } + }, + "FLEXNETVERSION": { + "id": 24, + "version": { + "first": 1, + "last": 9999 + } + }, + "FUNCTEST": { + "id": 10, + "version": { + "first": 0, + "last": 1003 + }, + "registers": { + "GP30Test": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "GP30 test to run.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "LCDTest": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "LCD test to run.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "Iloop": { + "id": 2, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test not supported.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "Pulse": { + "id": 3, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test not supported.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "Pressure": { + "id": 4, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test the pressure sensor.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "BatteryVoltage": { + "id": 5, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Read CPU Vbat.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "SupplyVoltage": { + "id": 6, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Read CPU Vcc.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "Temperature": { + "id": 7, + "details": [ + { + "type": "int16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Read CPU Temperature.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "RFID": { + "id": 8, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test not supported.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "OpticalOutput": { + "id": 9, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test the pulse output LED.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "Radio": { + "id": 10, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test the Radio at basic SPI level.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "MultiTest": { + "id": 11, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Run a list of basic tests and display results on LCD.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "NFCUID": { + "id": 12, + "details": [ + { + "type": "uint64_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Return the UID uint8_t array as a uint64_t.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "CPUTest": { + "id": 13, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test various aspects of the CPU.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "BAD_TEST": { + "id": 1 + }, + "NO_RESULT": { + "id": 2 + } + } + }, + "GENESISFLOW": { + "id": 15, + "version": { + "first": 7, + "last": 606 + }, + "registers": { + "SampleRate": { + "id": 0, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate in Hz that each GP30 takes measurements", + "version": { + "first": 7, + "last": 203 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate in Hz that each GP30 takes measurements", + "version": { + "first": 204, + "last": 267 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate in Hz that each GP30 takes measurements", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 2 + } + }, + "na": { + "values": { + "default": 2 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate in Hz that each GP30 takes measurements", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate in Hz that each GP30 takes measurements", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate in Hz that each GP30 takes measurements", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "FirstHitLvlUp1": { + "id": 1, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 1, units of 0.88mV", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 1, units of 0.88mV", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 1, units of 0.88mV", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 1, units of 0.88mV", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 1, units of 0.88mV", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + } + ] + }, + "FirstHitLvlUp2": { + "id": 2, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 2, units of 0.88mV", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 2, units of 0.88mV", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 2, units of 0.88mV", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 2, units of 0.88mV", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 2, units of 0.88mV", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + } + ] + }, + "FirstHitLvlUp3": { + "id": 3, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 3, units of 0.88mV", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 3, units of 0.88mV", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 3, units of 0.88mV", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 3, units of 0.88mV", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 3, units of 0.88mV", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + } + ] + }, + "FirstHitLvlDown1": { + "id": 4, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 1, units of 0.88mV", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 1, units of 0.88mV", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 1, units of 0.88mV", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 1, units of 0.88mV", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 1, units of 0.88mV", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + } + ] + }, + "FirstHitLvlDown2": { + "id": 5, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 2, units of 0.88mV", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 2, units of 0.88mV", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 2, units of 0.88mV", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 2, units of 0.88mV", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 2, units of 0.88mV", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + } + ] + }, + "FirstHitLvlDown3": { + "id": 6, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 3, units of 0.88mV", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 3, units of 0.88mV", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 3, units of 0.88mV", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 3, units of 0.88mV", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 3, units of 0.88mV", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + } + ] + }, + "StartHit": { + "id": 7, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The hit number to consider as the first hit", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The hit number to consider as the first hit", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "Default is 6 and it should stay as 6 for all sizes.", + "region": { + "emea": { + "values": { + "default": 6 + } + }, + "na": { + "values": { + "default": 6 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The hit number to consider as the first hit", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The hit number to consider as the first hit", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The hit number to consider as the first hit", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "AmplitudePeakDetectEnd": { + "id": 8, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Where to stop running the amplitude peak detection", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Where to stop running the amplitude peak detection", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Where to stop running the amplitude peak detection", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Where to stop running the amplitude peak detection", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Where to stop running the amplitude peak detection", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "NumFirePulses": { + "id": 9, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of pulses to fire for a measurement", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 17, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of pulses to fire for a measurement", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 17, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of pulses to fire for a measurement", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 17, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of pulses to fire for a measurement", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 17, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of pulses to fire for a measurement", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 17, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "DisplayPow10": { + "id": 10, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The weight of the lowest display digit as a power of 10. The accepted range of values depends on the LCD present and the DisplayUnits chosen", + "version": { + "first": 36, + "last": 267 + }, + "values": { + "default": -6, + "minimum": -128, + "maximum": 127 + }, + "statictype": "static" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The weight of the lowest display digit as a power of 10. The accepted range of values depends on the LCD present and the DisplayUnits chosen", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": -6, + "minimum": -128, + "maximum": 127 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "(<=125 = 3n ) 150=> 2n in m� -> what about other Units. See Display Unit Customer Specification.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The weight of the lowest display digit as a power of 10. The accepted range of values depends on the LCD present and the DisplayUnits chosen", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": -6, + "minimum": -128, + "maximum": 127 + }, + "statictype": "static" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The weight of the lowest display digit as a power of 10. The accepted range of values depends on the LCD present and the DisplayUnits chosen", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": -6, + "minimum": -128, + "maximum": 127 + }, + "statictype": "static" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The weight of the lowest display digit as a power of 10. The accepted range of values depends on the LCD present and the DisplayUnits chosen", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": -6, + "minimum": -128, + "maximum": 127 + }, + "statictype": "static" + } + ] + }, + "DisplayUnits": { + "id": 11, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The units of volume to display. The accepted range of values depends on the LCD present and the DisplayPow10 chosen", + "version": { + "first": 36, + "last": 267 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The units of volume to display. The accepted range of values depends on the LCD present and the DisplayPow10 chosen", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Same units for each calculator. Vako.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The units of volume to display. The accepted range of values depends on the LCD present and the DisplayPow10 chosen", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The units of volume to display. The accepted range of values depends on the LCD present and the DisplayPow10 chosen", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The units of volume to display. The accepted range of values depends on the LCD present and the DisplayPow10 chosen", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + } + ] + }, + "MeterSize": { + "id": 12, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The meter pipe size", + "version": { + "first": 45, + "last": 237 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 9 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The meter pipe size", + "version": { + "first": 238, + "last": 267 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 17 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The meter pipe size", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 17 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Base No. (4th digit G=50, ...) or B01 Nominal diameter (DN) (DN50, ...).", + "region": { + "emea": { + "values": { + "DN40": 0, + "DN50": 1, + "DN65": 2, + "DN80": 3, + "DN100": 4, + "DN125": 5, + "DN150": 6, + "DN200": 7, + "DN250": 8, + "DN300": 9 + } + }, + "na": { + "values": { + "US1_5": 10, + "US2": 11, + "US3": 12, + "US4": 13, + "US6": 14, + "US8": 15, + "US10": 16, + "US12": 17 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The meter pipe size", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 17 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The meter pipe size", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 17 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The meter pipe size", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 17 + }, + "statictype": "static" + } + ] + }, + "CalFactor1": { + "id": 13, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 1", + "version": { + "first": 45, + "last": 200 + }, + "values": { + "default": 62500, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 1", + "version": { + "first": 201, + "last": 267 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 1", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": { + "values": { + "US2": 19144 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 1", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 1", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 1", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "CalFactor2": { + "id": 14, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 2", + "version": { + "first": 45, + "last": 200 + }, + "values": { + "default": 62500, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 2", + "version": { + "first": 201, + "last": 267 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 2", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": { + "values": { + "US2": 19144 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 2", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 2", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 2", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "CalFactor3": { + "id": 15, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 3", + "version": { + "first": 45, + "last": 200 + }, + "values": { + "default": 62500, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 3", + "version": { + "first": 201, + "last": 267 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 3", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": { + "values": { + "US2": 19144 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 3", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 3", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 3", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "ZeroOffset1": { + "id": 16, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 1 at zero flow. Value is in usual time of flight scaling (ie LS bit is 2^-38 seconds)", + "version": { + "first": 45, + "last": 132 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 1 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 133, + "last": 267 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 1 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 268, + "last": 322 + }, + "si_transform": { + "remarks": "Seconds: convert time in 2^-38 seconds...", + "units": "s", + "scale_float_mult": 1.0, + "scale_power_2": -38, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 1 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 1 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 1 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + } + ] + }, + "ZeroOffset2": { + "id": 17, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 2 at zero flow. Value is in usual time of flight scaling (ie LS bit is 2^-38 seconds)", + "version": { + "first": 45, + "last": 132 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 2 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 133, + "last": 267 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 2 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 268, + "last": 322 + }, + "si_transform": { + "remarks": "Seconds: convert time in 2^-38 seconds...", + "units": "s", + "scale_float_mult": 1.0, + "scale_power_2": -38, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 2 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 2 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 2 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + } + ] + }, + "ZeroOffset3": { + "id": 18, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 3 at zero flow. Value is in usual time of flight scaling (ie LS bit is 2^-38 seconds)", + "version": { + "first": 45, + "last": 132 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 3 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 133, + "last": 267 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 3 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 268, + "last": 322 + }, + "si_transform": { + "remarks": "Seconds: convert time in 2^-38 seconds...", + "units": "s", + "scale_float_mult": 1.0, + "scale_power_2": -38, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 3 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 3 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 3 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + } + ] + }, + "ScaledBilling": { + "id": 19, + "details": [ + { + "type": "int64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The scaled volume value shown on the display. In the units and precision set by DisplayUnits and DisplayPow10 respectively. Decimal point is not represented in this value", + "version": { + "first": 47, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + }, + { + "type": "int64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The scaled volume value shown on the display. In the units and precision set by DisplayUnits and DisplayPow10 respectively. Decimal point is not represented in this value", + "version": { + "first": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "int64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The scaled volume value shown on the display. In the units and precision set by DisplayUnits and DisplayPow10 respectively. Decimal point is not represented in this value", + "version": { + "first": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "int64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The scaled volume value shown on the display. In the units and precision set by DisplayUnits and DisplayPow10 respectively. Decimal point is not represented in this value", + "version": { + "first": 601, + "last": 606 + }, + "statictype": "dynamic" + } + ] + }, + "ResetAccumulators": { + "id": 20, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "WO", + "lvl2": "WO", + "lvl3": "WO", + "lvl4": "WO", + "lvl5": "WO", + "lvl6": "WO", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write 1 to reset all accumulated volume to zero", + "version": { + "first": 47, + "last": 267 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write 1 to reset all accumulated volume to zero", + "version": { + "first": 268, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "roland.drabesch@xylem.com" + ], + "remarks": "You will need this if you wish to reset the volume to zero at the end of calibration.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write 1 to reset all accumulated volume to zero", + "version": { + "first": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write 1 to reset all accumulated volume to zero", + "version": { + "first": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write 1 to reset all accumulated volume to zero", + "version": { + "first": 601, + "last": 606 + }, + "statictype": "dynamic" + } + ] + }, + "ForwardArrow": { + "id": 21, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow direction. 0 - undecided, 1 - right, 2 - left", + "version": { + "first": 47, + "last": 267 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow direction. 0 - undecided, 1 - right, 2 - left", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 1 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow direction. 0 - undecided, 1 - right, 2 - left", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow direction. 0 - undecided, 1 - right, 2 - left", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow direction. 0 - undecided, 1 - right, 2 - left", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "LedMode": { + "id": 22, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The type of data output by the green LED", + "version": { + "first": 47, + "last": 203 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The type of data output by the green LED", + "version": { + "first": 204, + "last": 267 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The type of data output by the green LED", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The type of data output by the green LED", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The type of data output by the green LED", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The type of data output by the green LED", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + } + ] + }, + "StoreCalibration": { + "id": 23, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store calibration values to non-volatile storage. Read back for status", + "version": { + "first": 54, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "roland.drabesch@xylem.com" + ], + "remarks": "You will need to use this during calibration.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store calibration values to non-volatile storage. Read back for status", + "version": { + "first": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store calibration values to non-volatile storage. Read back for status", + "version": { + "first": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store calibration values to non-volatile storage. Read back for status", + "version": { + "first": 601, + "last": 606 + }, + "statictype": "dynamic" + } + ] + }, + "UnscaledFwd": { + "id": 24, + "details": [ + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 54, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 601, + "last": 606 + }, + "statictype": "dynamic" + } + ] + }, + "UnscaledRev": { + "id": 25, + "details": [ + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The reverse flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 54, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The reverse flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The reverse flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The reverse flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 601, + "last": 606 + }, + "statictype": "dynamic" + } + ] + }, + "LowFlowThreshold": { + "id": 26, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The volume that must pass in LowFlowMaxPeriod for it to be registered as real flow. Units of ml", + "version": { + "first": 55, + "last": 267 + }, + "values": { + "default": 200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The volume that must pass in LowFlowMaxPeriod for it to be registered as real flow. Units of ml", + "version": { + "first": 268, + "last": 322 + }, + "si_transform": { + "remarks": "Cubic Meters: conversion of the volume volume in ml ...", + "units": "m^3", + "scale_float_mult": 1.0, + "scale_power_2": 0, + "scale_power_10": -6, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "Default for other DN (200 -> DN50).", + "region": { + "emea": { + "values": { + "DN40": 200, + "DN50": 200, + "DN65": 333, + "DN80": 550, + "DN100": 900, + "DN125": "TBD", + "DN150": 2000, + "DN200": 800, + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US1_5": 200, + "US2": 200, + "US3": 550, + "US4": 900, + "US6": 1833, + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The volume that must pass in LowFlowMaxPeriod for it to be registered as real flow. Units of ml", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The volume that must pass in LowFlowMaxPeriod for it to be registered as real flow. Units of ml", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The volume that must pass in LowFlowMaxPeriod for it to be registered as real flow. Units of ml", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "LowFlowMaxPeriod": { + "id": 27, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time during which LowFlowThreshold volume must pass for it to be registered as real flow. Units of seconds << 16", + "version": { + "first": 55, + "last": 267 + }, + "values": { + "default": 3932160, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time during which LowFlowThreshold volume must pass for it to be registered as real flow. Units of seconds << 16", + "version": { + "first": 268, + "last": 322 + }, + "si_transform": { + "remarks": "Seconds: time in 2^-16 seconds ...", + "units": "s", + "scale_float_mult": 1.0, + "scale_power_2": -16, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 3932160, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "Default for other DN (3932160 -> DN50).", + "region": { + "emea": { + "values": { + "default": 3932160 + } + }, + "na": { + "values": { + "default": 3932160 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time during which LowFlowThreshold volume must pass for it to be registered as real flow. Units of seconds << 16", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 3932160, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time during which LowFlowThreshold volume must pass for it to be registered as real flow. Units of seconds << 16", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 3932160, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time during which LowFlowThreshold volume must pass for it to be registered as real flow. Units of seconds << 16", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 3932160, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "UpdateThreshold": { + "id": 28, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The amount of flow in ml to accumulate before updating the main scaled accumulators.", + "version": { + "first": 55, + "last": 267 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The amount of flow in ml to accumulate before updating the main scaled accumulators.", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "I doubt this will be used. It is to allow less frequent LCD updates if so desired but we're fine.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The amount of flow in ml to accumulate before updating the main scaled accumulators.", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The amount of flow in ml to accumulate before updating the main scaled accumulators.", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The amount of flow in ml to accumulate before updating the main scaled accumulators.", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "ArrowThreshold": { + "id": 29, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The net volume in ml that must flow in one direction for the forward arrow to be set", + "version": { + "first": 55, + "last": 267 + }, + "values": { + "default": 5000000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The net volume in ml that must flow in one direction for the forward arrow to be set", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 5000000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Default for other DN (J.S.: 2000000-> DN50)", + "region": { + "emea": { + "values": { + "default": 2000000, + "DN125": "TBD", + "DN250": "TBD", + "DN300": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The net volume in ml that must flow in one direction for the forward arrow to be set", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 5000000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The net volume in ml that must flow in one direction for the forward arrow to be set", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 5000000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The net volume in ml that must flow in one direction for the forward arrow to be set", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 5000000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "FireBuffer1": { + "id": 30, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 1 to be used", + "version": { + "first": 64, + "last": 267 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 1 to be used", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 1 to be used", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 1 to be used", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 1 to be used", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "FireBuffer2": { + "id": 31, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 2 to be used", + "version": { + "first": 64, + "last": 267 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 2 to be used", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 2 to be used", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 2 to be used", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 2 to be used", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "FireBuffer3": { + "id": 32, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 3 to be used", + "version": { + "first": 64, + "last": 267 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 3 to be used", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 3 to be used", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 3 to be used", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 3 to be used", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "TriggerActive": { + "id": 33, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "WO", + "lvl2": "WO", + "lvl3": "WO", + "lvl4": "WO", + "lvl5": "WO", + "lvl6": "WO", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write 1 to put GenesisFlow in Active mode. This is the normal measurement mode", + "version": { + "first": 75, + "last": 267 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Active mode. This is the normal measurement mode", + "version": { + "first": 268, + "last": 306 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Active mode. This is the normal measurement mode", + "version": { + "first": 307, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "roland.drabesch@xylem.com" + ], + "remarks": "You will need this if you use TriggerIdle or TriggerTest", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Active mode. This is the normal measurement mode", + "version": { + "first": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Active mode. This is the normal measurement mode", + "version": { + "first": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Active mode. This is the normal measurement mode", + "version": { + "first": 601, + "last": 606 + }, + "statictype": "dynamic" + } + ] + }, + "TriggerIdle": { + "id": 34, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 0 to put GenesisFlow in Active mode, otherwise put GenesisFlow in Idle mode. Idle mode displays just the number written to TriggerIdle. No measurements are performed. Read returns the number written", + "version": { + "first": 75, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "roland.drabesch@xylem.com" + ], + "remarks": "This was asked for so the battery usage could be minimised in manufacture so I expect it'll be used there.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 0 to put GenesisFlow in Active mode, otherwise put GenesisFlow in Idle mode. Idle mode displays just the number written to TriggerIdle. No measurements are performed. Read returns the number written", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 0 to put GenesisFlow in Active mode, otherwise put GenesisFlow in Idle mode. Idle mode displays just the number written to TriggerIdle. No measurements are performed. Read returns the number written", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 0 to put GenesisFlow in Active mode, otherwise put GenesisFlow in Idle mode. Idle mode displays just the number written to TriggerIdle. No measurements are performed. Read returns the number written", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "MaxValidDeltaToF": { + "id": 35, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum delta time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 87, + "last": 267 + }, + "values": { + "default": 247390, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum delta time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 268, + "last": 322 + }, + "si_transform": { + "remarks": "Seconds: time in 2^-38 seconds ...", + "units": "s", + "scale_float_mult": 1.0, + "scale_power_2": -38, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 309237, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "247390 <-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "DN40": 247390, + "DN50": 247390, + "DN65": 402008, + "DN80": 494779, + "DN100": 618474, + "DN125": "TBD", + "DN150": 439804, + "DN200": 1236948, + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US1_5": 1855422, + "US2": 1855422, + "US3": 494779, + "US4": 618474, + "US6": 439804, + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum delta time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 309237, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum delta time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 309237, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum delta time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 309237, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "MaxValidToF": { + "id": 36, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum absolute time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 87, + "last": 267 + }, + "values": { + "default": 24739011, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum absolute time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 24739011, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "<-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "DN40": 24739011, + "DN50": 24739011, + "DN65": 32160714, + "DN80": 39582418, + "DN100": 49478022, + "DN125": "TBD", + "DN150": 46729244, + "DN200": 98956044, + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US1_5": 24739011, + "US2": 24739011, + "US3": 39582418, + "US4": 49478022, + "US6": 46729244, + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum absolute time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 24739011, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum absolute time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 24739011, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum absolute time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 24739011, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "MinValidToF": { + "id": 37, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The minimum absolute time of flight, below this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 87, + "last": 267 + }, + "values": { + "default": 13743895, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The minimum absolute time of flight, below this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 13743895, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "<-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "DN40": 13743895, + "DN50": 13743895, + "DN65": 13743895, + "DN80": 21990232, + "DN100": 27487790, + "DN125": "TBD", + "DN150": 30236569, + "DN200": 54975580, + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US1_5": 13743895, + "US2": 13743895, + "US3": 21990232, + "US4": 27487790, + "US6": 30236569, + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The minimum absolute time of flight, below this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 13743895, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The minimum absolute time of flight, below this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 13743895, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The minimum absolute time of flight, below this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 13743895, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "FirstHitPercent1": { + "id": 38, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 1", + "version": { + "first": 93, + "last": 267 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 1", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 1", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 1", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 1", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "FirstHitPercent2": { + "id": 39, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 2", + "version": { + "first": 93, + "last": 267 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 2", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 2", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 2", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 2", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "FirstHitPercent3": { + "id": 40, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 3", + "version": { + "first": 93, + "last": 267 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 3", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 3", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 3", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 3", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "FirstHitShift": { + "id": 41, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A value describing how long the amplitude is averaged over for calculating the first hit level. This is the amount each amplitude value is shifted down before being added to the moving average", + "version": { + "first": 93, + "last": 267 + }, + "values": { + "default": 4, + "minimum": 3, + "maximum": 8 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A value describing how long the amplitude is averaged over for calculating the first hit level. This is the amount each amplitude value is shifted down before being added to the moving average", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 4, + "minimum": 3, + "maximum": 8 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A value describing how long the amplitude is averaged over for calculating the first hit level. This is the amount each amplitude value is shifted down before being added to the moving average", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 4, + "minimum": 3, + "maximum": 8 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A value describing how long the amplitude is averaged over for calculating the first hit level. This is the amount each amplitude value is shifted down before being added to the moving average", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 4, + "minimum": 3, + "maximum": 8 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A value describing how long the amplitude is averaged over for calculating the first hit level. This is the amount each amplitude value is shifted down before being added to the moving average", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 4, + "minimum": 3, + "maximum": 8 + }, + "statictype": "static" + } + ] + }, + "FirstHitMinimum": { + "id": 42, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum absolute first hit level value", + "version": { + "first": 93, + "last": 267 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum absolute first hit level value", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "A limit for how small the first hit level can be set We don't expect this to change unless firled trials say it should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum absolute first hit level value", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum absolute first hit level value", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum absolute first hit level value", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "ToFErrorLimit": { + "id": 43, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of ToF errors to allow before resetting the first hit levels to FirstHitMinimum", + "version": { + "first": 93, + "last": 267 + }, + "values": { + "default": 16, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of ToF errors to allow before resetting the first hit levels to FirstHitMinimum", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 16, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "This allows us to avoid being stuck with a bad first hit level if conditions change. Not expecting to change it unless field trials show we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of ToF errors to allow before resetting the first hit levels to FirstHitMinimum", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 16, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of ToF errors to allow before resetting the first hit levels to FirstHitMinimum", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 16, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of ToF errors to allow before resetting the first hit levels to FirstHitMinimum", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 16, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "FirstHitUpdatePeriod": { + "id": 44, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The period (in seconds) between first hit level updates", + "version": { + "first": 99, + "last": 267 + }, + "values": { + "default": 10, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The period (in seconds) between first hit level updates", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 10, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The period (in seconds) between first hit level updates", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 10, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The period (in seconds) between first hit level updates", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 10, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The period (in seconds) between first hit level updates", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 10, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "PipeFillingDelay": { + "id": 45, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time (in seconds) to maintain zero flow after leaving empty pipe", + "version": { + "first": 119, + "last": 267 + }, + "values": { + "default": 30, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time (in seconds) to maintain zero flow after leaving empty pipe", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 30, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "The amount of time after empty pipe that we stay in zero flow mode. Same as iPerl, not expected to be changed but could be if field trials say we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time (in seconds) to maintain zero flow after leaving empty pipe", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 30, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time (in seconds) to maintain zero flow after leaving empty pipe", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 30, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time (in seconds) to maintain zero flow after leaving empty pipe", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 30, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "ToFTempOffset1": { + "id": 46, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 1. In units of 2^-38 seconds", + "version": { + "first": 124, + "last": 267 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 1. In units of 2^-38 seconds", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 1. In units of 2^-38 seconds", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 1. In units of 2^-38 seconds", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 1. In units of 2^-38 seconds", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "ToFTempOffset2": { + "id": 47, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 2. In units of 2^-38 seconds", + "version": { + "first": 124, + "last": 267 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 2. In units of 2^-38 seconds", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 2. In units of 2^-38 seconds", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 2. In units of 2^-38 seconds", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 2. In units of 2^-38 seconds", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "ToFTempOffset3": { + "id": 48, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 3. In units of 2^-38 seconds", + "version": { + "first": 124, + "last": 267 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 3. In units of 2^-38 seconds", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 3. In units of 2^-38 seconds", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 3. In units of 2^-38 seconds", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 3. In units of 2^-38 seconds", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "ToFTempCalibrate": { + "id": 49, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "WO", + "lvl2": "WO", + "lvl3": "WO", + "lvl4": "WO", + "lvl5": "WO", + "lvl6": "WO", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write the current temperature to this register to trigger a calibration step. In units of 2^-12 degrees celcius", + "version": { + "first": 124, + "last": 204 + }, + "values": { + "minimum": 0, + "maximum": 270336 + }, + "statictype": "dynamic" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write the current temperature to this register to trigger a calibration step. In units of 2^-12 degrees celcius", + "version": { + "first": 205, + "last": 322 + }, + "values": { + "minimum": 0, + "maximum": 286720 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write the current temperature to this register to trigger a calibration step. In units of 2^-12 degrees celcius", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "minimum": 0, + "maximum": 286720 + }, + "statictype": "dynamic" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write the current temperature to this register to trigger a calibration step. In units of 2^-12 degrees celcius", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "minimum": 0, + "maximum": 286720 + }, + "statictype": "dynamic" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write the current temperature to this register to trigger a calibration step. In units of 2^-12 degrees celcius", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "minimum": 0, + "maximum": 286720 + }, + "statictype": "dynamic" + } + ] + }, + "StoreConfiguration": { + "id": 50, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 141, + "last": 267 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 268, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "You do need to use this if you change any parameters in GENESISFLOW and want to keep them.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 601, + "last": 606 + }, + "statictype": "dynamic" + } + ] + }, + "SealDisplay": { + "id": 51, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to stop various display related registers being changed. Read back 1 for 'sealed' 0 for 'unsealed'", + "version": { + "first": 161, + "last": 267 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to stop various display related registers being changed. Read back 1 for 'sealed' 0 for 'unsealed'", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "roland.drabesch@xylem.com" + ], + "remarks": "Display should be sealed at end of manufacture (EMEA only). 251210 FieldTool modification enabled: The guidance was that CustTool is allowed to change legally relevant configuration in the field. So we do not require all legally relevant registers to be in the blacklist. This is because the restriction on changing legally relevant configuration in the field is only applied to customer-facing tools. CustTool is considered an internal �repair tool� that must be allowed to make such repairs to legally relevant configuration in the field.", + "region": { + "emea": { + "values": { + "default": 1 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to stop various display related registers being changed. Read back 1 for 'sealed' 0 for 'unsealed'", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to stop various display related registers being changed. Read back 1 for 'sealed' 0 for 'unsealed'", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to stop various display related registers being changed. Read back 1 for 'sealed' 0 for 'unsealed'", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "TriggerTest": { + "id": 52, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Test mode. This differs from normal measurement mode in that the volume is presented to 3 extra decimal places if possible. Read back 1 for Test mode, 0 otherwise", + "version": { + "first": 162, + "last": 267 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Test mode. This differs from normal measurement mode in that the volume is presented to 3 extra decimal places if possible. Read back 1 for Test mode, 0 otherwise", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Test mode. This differs from normal measurement mode in that the volume is presented to 3 extra decimal places if possible. Read back 1 for Test mode, 0 otherwise", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Test mode. This differs from normal measurement mode in that the volume is presented to 3 extra decimal places if possible. Read back 1 for Test mode, 0 otherwise", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Test mode. This differs from normal measurement mode in that the volume is presented to 3 extra decimal places if possible. Read back 1 for Test mode, 0 otherwise", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + } + ] + }, + "MaxValidAmplitude": { + "id": 53, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Maximum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 168, + "last": 267 + }, + "values": { + "default": 2936012800, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Maximum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 268, + "last": 322 + }, + "si_transform": { + "remarks": "Volts: voltage in 2^-22 millivolts ...", + "units": "v", + "scale_float_mult": 1.0, + "scale_power_2": -22, + "scale_power_10": -3, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 2936012800, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "629145600 <-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "default": 2936012800 + } + }, + "na": { + "values": { + "default": 2936012800 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Maximum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 2936012800, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Maximum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 2936012800, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Maximum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 2936012800, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "MinValidAmplitude": { + "id": 54, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 168, + "last": 267 + }, + "values": { + "default": 209715200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 209715200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "<-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "default": 629145600 + } + }, + "na": { + "values": { + "default": 629145600 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 209715200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 209715200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 209715200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "HardErrorLimit": { + "id": 55, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of hard errors to allow before declaring a fatal error", + "version": { + "first": 176, + "last": 267 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of hard errors to allow before declaring a fatal error", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "The number of hard errors before deciding a fatal error has occurred. This will probably only change in response to testing in the field.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of hard errors to allow before declaring a fatal error", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of hard errors to allow before declaring a fatal error", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of hard errors to allow before declaring a fatal error", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "Timeout": { + "id": 56, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The timeout for an ultrasonic measurement (0 - 128us, 1 - 256us, 2 - 1024us, 3 - 4096us)", + "version": { + "first": 273, + "last": 322 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "<-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "default": 1, + "DN100": [ + 1, + 2 + ], + "DN125": "TBD", + "DN200": 2, + "DN250": "TBD", + "DN300": 2 + } + }, + "na": { + "values": { + "default": 1, + "US4": "TBD", + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The timeout for an ultrasonic measurement (0 - 128us, 1 - 256us, 2 - 1024us, 3 - 4096us)", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The timeout for an ultrasonic measurement (0 - 128us, 1 - 256us, 2 - 1024us, 3 - 4096us)", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The timeout for an ultrasonic measurement (0 - 128us, 1 - 256us, 2 - 1024us, 3 - 4096us)", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "MaxDeltaToFDeviation": { + "id": 57, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum deviation of a valid delta tof from the recent mean. In 2^-38 seconds units", + "version": { + "first": 280, + "last": 322 + }, + "values": { + "default": 109951, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "0.4us for all meter sizes up to DN100, above that TBD. 0.4us is 109951 (0x1AD7F).", + "region": { + "emea": { + "values": { + "default": 109951, + "DN125": "TBD", + "DN200": "TBD", + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "default": 109951, + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum deviation of a valid delta tof from the recent mean. In 2^-38 seconds units", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 109951, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum deviation of a valid delta tof from the recent mean. In 2^-38 seconds units", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 109951, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum deviation of a valid delta tof from the recent mean. In 2^-38 seconds units", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 109951, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "MaxTempRange": { + "id": 58, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of temperatures between channels before one is rejected. In units of 2^-12 degrees celcius", + "version": { + "first": 289, + "last": 322 + }, + "values": { + "default": 8192, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 8192 + } + }, + "na": { + "values": { + "default": 8192 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of temperatures between channels before one is rejected. In units of 2^-12 degrees celcius", + "version": { + "first": 451, + "last": 463 + }, + "values": { + "default": 8192, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of temperatures between channels before one is rejected. In units of 2^-12 degrees celcius", + "version": { + "first": 504, + "last": 509 + }, + "values": { + "default": 8192, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of temperatures between channels before one is rejected. In units of 2^-12 degrees celcius", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 8192, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "MaxDeltaToFRange": { + "id": 59, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of delta time of flight between channels before one is rejected. In 2^-38 seconds units", + "version": { + "first": 289, + "last": 322 + }, + "values": { + "default": 137438, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "0.5us for all meter sizes. 0.5us is 137438 (0x218DE).", + "region": { + "emea": { + "values": { + "default": 137438 + } + }, + "na": { + "values": { + "default": 137438 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of delta time of flight between channels before one is rejected. In 2^-38 seconds units", + "version": { + "first": 451, + "last": 463 + }, + "values": { + "default": 137438, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of delta time of flight between channels before one is rejected. In 2^-38 seconds units", + "version": { + "first": 504, + "last": 509 + }, + "values": { + "default": 137438, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of delta time of flight between channels before one is rejected. In 2^-38 seconds units", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 137438, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "LookupFileCrc": { + "id": 60, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Read for the current loaded lookup table CRC, write to set the expected CRC.", + "version": { + "first": 295, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "mark.clemens@xylem.com" + ], + "remarks": "Will change with different releases - should be tracked elsewhere. meter_lut_202506270844_v0.19_crc_list.", + "region": { + "emea": { + "values": { + "DN40": 16549, + "DN50": 46338, + "DN65": 52673, + "DN80": 18061, + "DN100": 48372, + "DN125": 8134, + "DN150": 1637, + "DN200": 26376, + "DN250": 45341, + "DN300": 49157 + } + }, + "na": { + "values": { + "US1_5": 50785, + "US2": 58892, + "US3": 52036, + "US4": 50586, + "US6": 8010, + "US8": 52526, + "US10": 24406, + "US12": 11854 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + } + ] + }, + "DisplayLeadingZeros": { + "id": 61, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether to display leading zeros on row 2. If false leading zeros will be replaced with a space", + "version": { + "first": 302, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "This controls the temperature, pressure, flow rate readings on the smaller second row of digits. Previous code would display 012.3 C whereas with DisplayLeadingZeros set to 0 you�ll get _12.3 C (where the _ is actually just an empty space).", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + } + ] + }, + "InstallationCorrectionEnabled": { + "id": 62, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether the installation correction function is enabled or not", + "version": { + "first": 310, + "last": 318, + "exclude": [ + 315, + 316, + 317 + ] + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Installation detection / bend correction registers. Currently unreleased.", + "region": { + "emea": { + "values": { + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + } + ] + }, + "InstallationDetectionThreshold": { + "id": 63, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The threshold in ml for deciding on the meter installation", + "version": { + "first": 310, + "last": 318, + "exclude": [ + 315, + 316, + 317 + ] + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 10000000 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Installation detection / bend correction registers. Currently unreleased.", + "region": { + "emea": { + "values": { + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + } + ] + }, + "InstallationType": { + "id": 64, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The detected installation type, MS 16 bits is the type of installation, LS 16 bits is the proportion of correction to apply", + "version": { + "first": 310, + "last": 318, + "exclude": [ + 315, + 316, + 317 + ] + }, + "values": { + "minimum": 0, + "maximum": 163840 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Installation detection / bend correction registers. Currently unreleased.", + "region": { + "emea": { + "values": { + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "InstallationDetectionStatus": { + "id": 65, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Installation detection percentage complete, returns 100 if installation detection isn't running", + "version": { + "first": 310, + "last": 318, + "exclude": [ + 315, + 316, + 317 + ] + }, + "values": { + "minimum": 0, + "maximum": 100 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Installation detection / bend correction registers. Currently unreleased.", + "region": { + "emea": { + "values": { + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FractionalBars": { + "id": 66, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether to display bars above the fractional digits on the LCD (if supported)", + "version": { + "first": 311, + "last": 321, + "exclude": [ + 315, + 316, + 317, + 319, + 320 + ] + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Probably customer specific in EMEA should always be false in NA.", + "region": { + "emea": { + "values": { + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + } + ] + }, + "CalibrationCount": { + "id": 67, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "A count of the relevant calibration values, for internal use", + "version": { + "first": 313, + "last": 322 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Internal use only, ignore.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "DelayedLedOff": { + "id": 68, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "WO", + "lvl6": "WO", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write the number of seconds in the future to turn off the LED output. This countdown will be cancelled if LedMode is changed during the delay.", + "version": { + "first": 314, + "last": 322 + }, + "values": { + "minimum": 0, + "maximum": 28800 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Enhancement for ensuring LED is off after metrology testing, useful to add to test software for GenesisFlow versions 3.16 and newer (not released yet June 2024).", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "DisplayVolumeRow2": { + "id": 69, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether or not to display the fractional digits of the volume as part of the row 2 carousel. Be aware this could change the scaling of the volume calculation if more decimal places now need calculating", + "version": { + "first": 322, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "TBD", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + } + ] + } + }, + "status": { + "BAD_TEST": { + "id": 0 + }, + "BAD_CONFIG": { + "id": 1 + }, + "DID_NOT_STORE": { + "id": 2 + }, + "STORE_PENDING": { + "id": 3 + }, + "STORE_BUFFER_SIZE": { + "id": 4 + }, + "STRING_TOO_LONG": { + "id": 5 + }, + "BAD_DISPLAY_MODE": { + "id": 6 + }, + "GLASS_TOO_LONG": { + "id": 7 + }, + "SLOT_NOT_YOURS": { + "id": 8 + }, + "SUBLIST_TOO_LONG": { + "id": 9 + }, + "NO_TEMP_SENSOR": { + "id": 10 + }, + "UNDER_TEMP": { + "id": 11 + }, + "LOW_TEMP_WARNING": { + "id": 12 + }, + "HIGH_TEMP_WARNING": { + "id": 13 + }, + "OVER_TEMP": { + "id": 14 + }, + "MISMATCHING_LSB": { + "id": 15 + }, + "OUT_OF_RANGE_PWDIFF": { + "id": 16 + }, + "OUT_OF_RANGE_AMPLITUDE": { + "id": 17 + }, + "OUT_OF_RANGE_TOF": { + "id": 18 + }, + "OUT_OF_RANGE_DTOF": { + "id": 19 + }, + "TOF_TIMEOUT": { + "id": 20 + }, + "CAL_CHANGE": { + "id": 21 + }, + "OUT_OF_RANGE_INTERVAL": { + "id": 22 + }, + "VALIDATE_FAIL": { + "id": 23 + }, + "OUT_OF_RANGE_TEMP": { + "id": 24 + }, + "NOT_READY": { + "id": 25 + }, + "METROLOGY_ERROR": { + "id": 26 + }, + "GP30_ID_ERROR": { + "id": 27 + }, + "GP30_FLAG_ERROR": { + "id": 28 + }, + "GP30_TIMEOUT_ERROR": { + "id": 29 + }, + "GP30_REQUEST_ERROR": { + "id": 30 + }, + "GP30_SEQ_ERROR": { + "id": 31 + }, + "VALUE_SEALED": { + "id": 32 + }, + "IN_TEST_MODE": { + "id": 33 + }, + "UNKNOWN_STATE": { + "id": 34 + }, + "DISPLAY_INIT_SUCCEEDED": { + "id": 35 + }, + "DISPLAY_INIT_FAILED": { + "id": 36 + }, + "GP30_INIT_FAILED": { + "id": 37 + }, + "START_TIMER_SUCCEEDED": { + "id": 38 + }, + "START_TIMER_FAILED": { + "id": 39 + }, + "VOLUME_STORE_FAILED": { + "id": 40 + }, + "EMPTY_PIPE": { + "id": 41 + }, + "PARAMETER_ERROR": { + "id": 42 + }, + "GP30_INTERNAL_ERROR": { + "id": 43 + }, + "GLASS_TOO_SHORT": { + "id": 44 + }, + "STORE_CAL_FAILED": { + "id": 45 + }, + "STORE_CONF_FAILED": { + "id": 46 + }, + "MODE_CHANGE": { + "id": 47 + }, + "BAD_POW10": { + "id": 48 + }, + "BAD_DECIMAL_SEPARATOR": { + "id": 49 + }, + "BAD_UNITS": { + "id": 50 + }, + "BAD_ICONS": { + "id": 51 + }, + "BAD_THOUSAND_SEPARATOR": { + "id": 52 + }, + "NEW_LOCALE_REJECTED": { + "id": 53 + }, + "SET_ACCUMULATORS": { + "id": 54 + }, + "SEAL_OPENED": { + "id": 55 + }, + "CALIBRATION_RECALL_INCOMPLETE": { + "id": 56 + }, + "BAD_AMR_SETTINGS": { + "id": 57 + }, + "SUSPECT_CYCLE_SKIP": { + "id": 58 + }, + "LOOKUP_FILE_LOADED": { + "id": 59 + }, + "LOOKUP_FILE_METERSIZE_CHANGED": { + "id": 60 + }, + "LOOKUP_FILE_FAILURE": { + "id": 61 + }, + "LOOKUP_FILE_INVALID": { + "id": 62 + }, + "LOOKUP_CRC_MISMATCH": { + "id": 63 + }, + "LOOKUP_FILE_UNKNOWN_METERSIZE": { + "id": 64 + }, + "INSTALLATION_HIGH_TIME_DIFF": { + "id": 65 + }, + "INSTALLATION_LOW_FLOW_IGNORE": { + "id": 66 + }, + "INSTALLATION_BAD_CHANNELS": { + "id": 67 + }, + "INSTALLATION_FIXED": { + "id": 68 + } + } + }, + "HISTOGRAM": { + "id": 27, + "version": { + "first": 1, + "last": 4 + }, + "registers": {} + }, + "IRDA": { + "id": 20, + "version": { + "first": 10, + "last": 213 + }, + "registers": { + "PulseReportRate": { + "id": 0, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate at which pulse reports are sent to the IrDA pulse adapter", + "version": { + "first": 10, + "last": 97 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate at which pulse reports are sent to the IrDA pulse adapter", + "version": { + "first": 98, + "last": 136 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate at which pulse reports are sent to the IrDA pulse adapter", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "1 sec.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "AdapterPresenceLimit": { + "id": 1, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of 15 minute periods we have to have received no valid IrDA messages to assume there is no adapter present", + "version": { + "first": 18, + "last": 28 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of 15 minute periods we have to have received no valid IrDA messages to assume there is no adapter present", + "version": { + "first": 29, + "last": 97 + }, + "values": { + "default": 3, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of 15 minute periods we have to have received no valid IrDA messages to assume there is no adapter present", + "version": { + "first": 98, + "last": 136 + }, + "values": { + "default": 3, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of 15 minute periods we have to have received no valid IrDA messages to assume there is no adapter present", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "default": 3, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + }, + "na": { + "values": { + "default": 3 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PulseSequence": { + "id": 2, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The present sequence number used in pulse reports", + "version": { + "first": 26, + "last": 97 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The present sequence number used in pulse reports", + "version": { + "first": 98, + "last": 114 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The present sequence number used in pulse reports", + "version": { + "first": 115, + "last": 136 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The present sequence number used in pulse reports", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "StoreConfiguration": { + "id": 3, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 26, + "last": 97 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 98, + "last": 136 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 161, + "last": 213 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "You do need to use this if you change any parameters in IRDA and want to keep them.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + }, + "AMRDigits": { + "id": 4, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of digits to use for AMR", + "version": { + "first": 40, + "last": 52 + }, + "values": { + "default": 9, + "minimum": 0, + "maximum": 9 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of digits to use for AMR", + "version": { + "first": 53, + "last": 97 + }, + "values": { + "default": 9, + "minimum": 0, + "maximum": 9 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of digits to use for AMR", + "version": { + "first": 98, + "last": 136 + }, + "values": { + "default": 8, + "minimum": 0, + "maximum": 9 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of digits to use for AMR", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "default": 8, + "minimum": 0, + "maximum": 9 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "Cordonel NA can use a subset of the display digits for AMR readings. This is the number of digits to use.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "AMROffset": { + "id": 5, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The offset of the AMR smallest digit from the right (always negative)", + "version": { + "first": 40, + "last": 97 + }, + "values": { + "default": 0, + "minimum": -9, + "maximum": 0 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The offset of the AMR smallest digit from the right (always negative)", + "version": { + "first": 98, + "last": 136 + }, + "values": { + "default": 0, + "minimum": -9, + "maximum": 0 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The offset of the AMR smallest digit from the right (always negative)", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "default": 0, + "minimum": -9, + "maximum": 0 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "Cordonel NA can use a subset of the display digits for AMR readings. This is the offset (from the right).", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "UI1203Fields": { + "id": 6, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A bitfield of the optional fields being used for UI-1203", + "version": { + "first": 40, + "last": 97 + }, + "values": { + "default": 268, + "minimum": 0, + "maximum": 268 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A bitfield of the optional fields being used for UI-1203", + "version": { + "first": 98, + "last": 136 + }, + "values": { + "default": 268, + "minimum": 0, + "maximum": 268 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A bitfield of the optional fields being used for UI-1203", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "default": 268, + "minimum": 0, + "maximum": 268 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "These are the fields used in NA AMR reading strings.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "MfgDate": { + "id": 7, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A timestamp of meter manufacture in seconds since 1/1/2000 00:00:00 UTC", + "version": { + "first": 43, + "last": 136 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "time_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A timestamp of meter manufacture in seconds since 1/1/2000 00:00:00 UTC", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "Simple timestamp, should be filled in at the end of manufacture. Time now.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "DisplayAMRDigits": { + "id": 8, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether or not to display AMR digits on the screen", + "version": { + "first": 92, + "last": 97 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether or not to display AMR digits on the screen", + "version": { + "first": 98, + "last": 136 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether or not to display AMR digits on the screen", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "In NA the AMR digits should be displayed on the LCD periodically, in EMEA they shouldn't.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "AdapterID": { + "id": 9, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The serial number of the current pulse adapter", + "version": { + "first": 193, + "last": 213 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AdapterFwVersion": { + "id": 10, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The firmware version of the current pulse adapter", + "version": { + "first": 193, + "last": 213 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "ExtendedResolution": { + "id": 11, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Boolean controlled by UI-1236 to control resolution of cubic feet unit in some meter size", + "version": { + "first": 210, + "last": 213 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Internal use in firmware only.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "BAD_LENGTH": { + "id": 1 + }, + "OUT_OF_RANGE": { + "id": 2 + }, + "PENDING_STORE": { + "id": 3 + }, + "DID_NOT_STORE": { + "id": 4 + }, + "TOO_MANY_BYTES": { + "id": 5 + } + } + }, + "LOGGER": { + "id": 8, + "version": { + "first": 1, + "last": 19 + }, + "registers": { + "Quota": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A quota in bytes for the log. The Logger does not apply any policy to how the quota is allocated, this is left as a restriction to be applied on a product by product basis.", + "version": { + "first": 1, + "last": 19 + }, + "values": { + "default": 4096, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Drive": { + "id": 1, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The drive to write to.", + "version": { + "first": 1, + "last": 19 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TriggerLogFlush": { + "id": 2, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Writing TRUE will force a log flush", + "version": { + "first": 7, + "last": 19 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "StoreConfiguration": { + "id": 3, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 16, + "last": 19 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "You do need to use this if you change any parameters in LOGGER and want to keep them.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "id": 0 + }, + "RESTARTED": { + "id": 1 + }, + "BLOCK_LISTING": { + "id": 2 + }, + "PENDING_STORE": { + "id": 3 + }, + "DID_NOT_STORE": { + "id": 4 + } + } + }, + "METROLOGYASST": { + "id": 18, + "version": { + "first": 4, + "last": 118 + }, + "registers": { + "ILoopMaxFlowRate": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The flow rate that gives max output on the current loop", + "version": { + "first": 5, + "last": 36 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The flow rate that gives max output on the current loop", + "version": { + "first": 82, + "last": 118 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Ignore, no current loop.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "StoreConfiguration": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Writing TRUE to this register stores the values of the other registers to the non-volatile memory", + "version": { + "first": 7, + "last": 81 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Writing TRUE to this register stores the values of the other registers to the non-volatile memory", + "version": { + "first": 82, + "last": 118 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "You do need to use this if you change any parameters in METROLOGYASST and want to keep them.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + }, + "PulseWeight": { + "id": 2, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Volume represented by one pulse in ml. If this is zero pulse output will not be enabled", + "version": { + "first": 7, + "last": 81 + }, + "values": { + "default": 1000, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Volume represented by one pulse in ml. If this is zero pulse output will not be enabled", + "version": { + "first": 82, + "last": 101 + }, + "values": { + "default": 1000, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Volume represented by one pulse. Units of (2^-5)ml. If this is zero pulse output will not be enabled", + "version": { + "first": 102, + "last": 118 + }, + "values": { + "default": 32000, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "G01 Pulse value (100 l/Imp., ...). Customer specific.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PulseMode": { + "id": 3, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The way pulses are output on the two available channels. This is an enum of type pulse_mode_t.", + "version": { + "first": 7, + "last": 81 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The way pulses are output on the two available channels. This is an enum of type pulse_mode_t.", + "version": { + "first": 82, + "last": 97 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The way pulses are output on the two available channels. This is an enum of type pulse_mode_t.", + "version": { + "first": 98, + "last": 118 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 7 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "G02 Pulse type (Netted Imp./Tamp. (-), �). Customer specific.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PulseLength": { + "id": 4, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The length of a pulse. This is an enum of type pulse_length_t.", + "version": { + "first": 7, + "last": 72 + }, + "values": { + "default": 5, + "minimum": 0, + "maximum": 8 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The length of a pulse. This is an enum of type pulse_length_t.", + "version": { + "first": 73, + "last": 81 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 8 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The length of a pulse. This is an enum of type pulse_length_t.", + "version": { + "first": 82, + "last": 118 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 10 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "G03 Pulse length (500ms, �). Customer specific.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "FlowUnits": { + "id": 5, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The units of flow rate to display on the LCD. An enum of type displayflowunits_t", + "version": { + "first": 8, + "last": 81 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 8 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The units of flow rate to display on the LCD. An enum of type displayflowunits_t", + "version": { + "first": 82, + "last": 118 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 8 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "C05 unit (m�, kl, US-Gall./Imp.-Gall, Barrel, ...)", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "FlowPoint": { + "id": 6, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Position of the decimal point on the LCD for flow rate. An enum of type displayflowpoint_t", + "version": { + "first": 8, + "last": 81 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 4 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Position of the decimal point on the LCD for flow rate. An enum of type displayflowpoint_t", + "version": { + "first": 82, + "last": 118 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 4 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Counter size and unit. See FlowPoint.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "ILoopRate": { + "id": 7, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The update rate for the current loop", + "version": { + "first": 9, + "last": 36 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The update rate for the current loop", + "version": { + "first": 82, + "last": 118 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Ignore, no current loop.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "TemperatureUnits": { + "id": 8, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Units for displaying temperature on the LCD. 0 is Celcius, 1 is Fahrenheit.", + "version": { + "first": 13, + "last": 81 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Units for displaying temperature on the LCD. 0 is Celcius, 1 is Fahrenheit.", + "version": { + "first": 82, + "last": 118 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "�C - EMEA/China / �F - USA.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 1 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureUnits": { + "id": 9, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Units for displaying pressure on the LCD. 0 is Mpa, 1 is PSI.", + "version": { + "first": 13, + "last": 81 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Units for displaying pressure on the LCD. 0 is Mpa, 1 is PSI.", + "version": { + "first": 82, + "last": 118 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Mpa - EMEA/China / PSI - USA / Bar - USA.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "custom": [ + 1, + 2 + ] + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureRate": { + "id": 10, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time between pressure measurements in milliseconds", + "version": { + "first": 13, + "last": 71 + }, + "values": { + "default": 300000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time between pressure measurements in milliseconds", + "version": { + "first": 72, + "last": 81 + }, + "values": { + "default": 60000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time between pressure measurements in milliseconds", + "version": { + "first": 82, + "last": 118 + }, + "values": { + "default": 60000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 60000 + } + }, + "na": { + "values": { + "default": 60000 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureOffset": { + "id": 11, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Value in Pa to subtract from measured value to correct for atmospheric pressure", + "version": { + "first": 13, + "last": 58 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Value in Pa to subtract from measured value to correct for atmospheric pressure", + "version": { + "first": 59, + "last": 79 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Value in Pa to subtract from measured value to correct for atmospheric pressure", + "version": { + "first": 80, + "last": 81 + }, + "values": { + "default": 0, + "minimum": -2000000, + "maximum": 2000000 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Value in Pa to subtract from measured value to correct for atmospheric pressure", + "version": { + "first": 82, + "last": 118 + }, + "values": { + "default": 0, + "minimum": -2000000, + "maximum": 2000000 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "-> 0", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressurePresent": { + "id": 12, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether there is a pressure sensor present", + "version": { + "first": 63, + "last": 70 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether there is a pressure sensor present", + "version": { + "first": 71, + "last": 118 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "B09 Housing option (D,Y). Variant specific.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureMeasure": { + "id": 13, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write TRUE to trigger a pressure measurement, Read to get the latest measured value in Pa", + "version": { + "first": 65, + "last": 118 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "LatestFlowRate": { + "id": 14, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Returns the latest flow rate. Write 0 to change scaling to internal scaling, 1 to change to display scaling", + "version": { + "first": 92, + "last": 118 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "GenerateFwdPulses": { + "id": 15, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Generate some artificial pulses, used for testing", + "version": { + "first": 97, + "last": 118 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "For use in testing.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "GenerateRevPulses": { + "id": 16, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Generate some artificial pulses, used for testing", + "version": { + "first": 97, + "last": 118 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "For use in testing.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PulseEvenDistribution": { + "id": 17, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Boolean value for whether pulse output is to space the pulses evenly (TRUE) or grouped (FALSE)", + "version": { + "first": 98, + "last": 118 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 1, + "DN300": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PulseResolution": { + "id": 18, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The number of bits of fractional resolution in a pulse event", + "version": { + "first": 98, + "last": 118 + }, + "values": { + "minimum": 0, + "maximum": 7 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "Read only.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "PressureCalibration": { + "id": 19, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Value in Pa to add to measured value after recalibration to correct for sensor drift over time", + "version": { + "first": 108, + "last": 111 + }, + "values": { + "default": 0, + "minimum": -1000000, + "maximum": 1000000 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Value in Pa to add to measured value after recalibration to correct for sensor drift over time", + "version": { + "first": 112, + "last": 118 + }, + "values": { + "default": 0, + "minimum": -4000000, + "maximum": 4000000 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "DisplayEnable": { + "id": 20, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bitfield of the items to show on the display. 1 - flowrate, 2 - temperature, 4 - pressure. Note, disabling flowrate requires reboot for it to take effect.", + "version": { + "first": 116, + "last": 118 + }, + "values": { + "default": 7, + "minimum": 0, + "maximum": 7 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Customer specific, controls display of items on row 2. NOTE: In 1.4 stream this can be used to work around bug where pressure is displayed with no pressure sensor (CORDHW-3065).", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureFlowRateCorrectionA": { + "id": 21, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Pressure readings must be corrected due to the water flow rate. This is the correction factor that is applied to the flow rate squared (units Pa / (ml/s)^2). Write 0x80000000 to fall back to the internal lookup table based on meter size. The number read back is the value being used either from the intenal lookup or having been written to this register.", + "version": { + "first": 118, + "last": 118 + }, + "values": { + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "TBD", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureFlowRateCorrectionB": { + "id": 22, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Pressure readings must be corrected due to the water flow rate. This is the correction factor that is applied to the flow rate (units Pa / (ml/s)). Write 0x80000000 to fall back to the internal lookup table based on meter size. The number read back is the value being used either from the intenal lookup or having been written to this register.", + "version": { + "first": 118, + "last": 118 + }, + "values": { + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "TBD", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "DID_NOT_STORE": { + "id": 1 + }, + "PENDING_STORE": { + "id": 2 + } + } + }, + "NA2WALARMS": { + "id": 23, + "version": { + "first": 41, + "last": 102 + }, + "registers": { + "StoreConfiguration": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 41, + "last": 102 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "You do need to use this if you change any parameters in NA2WALARMS and want to keep them.", + "region": { + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + }, + "PredefEnable": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bitmask of enabled predefined alarms", + "version": { + "first": 41, + "last": 102 + }, + "values": { + "default": 561047, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "NA has a series of alarms called 'predefined' these are the ones that should be enabled.", + "region": { + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + } + }, + "status": { + "SENSOR_INVALID": { + "id": 0 + }, + "UNKNOWN_PARAMETER": { + "id": 1 + }, + "ALARM_INVALID": { + "id": 2 + }, + "UNIMPLEMENTED": { + "id": 3 + }, + "UNCONFIGURED": { + "id": 4 + }, + "CONFIG_INVALID": { + "id": 5 + }, + "NO_LATEST": { + "id": 6 + }, + "FIXED_TYPE": { + "id": 7 + }, + "PREDEF_SET": { + "id": 8 + }, + "USERDEF_VOLUME_SET": { + "id": 9 + }, + "USERDEF_TEMPERATURE_SET": { + "id": 10 + }, + "USERDEF_PRESSURE_SET": { + "id": 11 + }, + "PREDEF_CLEAR": { + "id": 12 + }, + "USERDEF_VOLUME_CLEAR": { + "id": 13 + }, + "USERDEF_TEMPERATURE_CLEAR": { + "id": 14 + }, + "USERDEF_PRESSURE_CLEAR": { + "id": 15 + }, + "DID_NOT_STORE": { + "id": 16 + }, + "STORE_PENDING": { + "id": 17 + }, + "PREDEF_BACKUP_FAILED": { + "id": 18 + }, + "PREDEF_RESTORE_FAILED": { + "id": 19 + }, + "USERDEF_BACKUP_FAILED": { + "id": 20 + }, + "USERDEF_RESTORE_FAILED": { + "id": 21 + }, + "USERDEF_UNSUPPORTED_TYPE_FOR_SENSOR": { + "id": 22 + } + } + }, + "NA2WLOGGER": { + "id": 22, + "version": { + "first": 1, + "last": 200 + }, + "registers": { + "StoreConfiguration": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Store all configuration items in non-volatile memory.", + "version": { + "first": 147, + "last": 200 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + }, + "LimitLogSize": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Override the maximum number of entries per log (0 keeps default)", + "version": { + "first": 147, + "last": 200 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "id": 1 + }, + "NOT_MAIN_LOOP": { + "id": 2 + }, + "LOG_INVALID": { + "id": 3 + }, + "LOG_OPEN_FAILED": { + "id": 4 + }, + "LOG_CLOSE_FAILED": { + "id": 5 + }, + "LOG_REMOVE_FAILED": { + "id": 6 + }, + "LOG_FLUSH_FAILED": { + "id": 7 + }, + "LOG_CLEAR_FAILED": { + "id": 8 + }, + "LOG_BAD_REQUEST": { + "id": 9 + }, + "LOG_BAD_LIMIT": { + "id": 10 + }, + "LOG_BUSY": { + "id": 11 + }, + "QUERY_FAILED": { + "id": 12 + }, + "QUERY_UNKNOWN_SENSOR": { + "id": 13 + }, + "QUERY_UNKNOWN_LOGFILE": { + "id": 14 + }, + "QUERY_BAD_ARGS": { + "id": 15 + }, + "QUERY_NOT_ENOUGH_SPACE": { + "id": 16 + }, + "QUERY_NO_RECORDS_FOUND": { + "id": 17 + }, + "QUERY_FILE_READ_PROBLEM": { + "id": 18 + }, + "SETTINGS_STORE_FAILED": { + "id": 19 + }, + "SETTINGS_BAD_SENSORID": { + "id": 20 + }, + "SETTINGS_BAD_PERIOD": { + "id": 21 + }, + "SETTINGS_BAD_CHECKSUM": { + "id": 22 + }, + "SETTINGS_BAD_TIMESTAMP": { + "id": 23 + }, + "FILING_BAD": { + "id": 24 + }, + "BAD_RECORD": { + "id": 25 + }, + "RANGE_SENSORID_BAD": { + "id": 26 + }, + "STORE_PENDING": { + "id": 27 + }, + "DID_NOT_STORE": { + "id": 28 + } + } + }, + "NFC": { + "id": 21, + "version": { + "first": 1, + "last": 65 + }, + "registers": { + "EraseRMA": { + "id": 0, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RW" + }, + "description": "Writing TRUE to this register erases the RMA area", + "version": { + "first": 7, + "last": 65 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "You may wish to do this at the end of manufacture to clear all the old data out.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "ForceUpdate": { + "id": 1, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write to this to force an update of some data. 0 - NDEF readings, 1 - NDEF details, 2 - RMA details", + "version": { + "first": 49, + "last": 65 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "NDEF_WRITE_FAIL": { + "id": 1 + }, + "NDEF_VERIFY_FAIL": { + "id": 2 + }, + "NDEF_UPDATE_FAIL": { + "id": 3 + }, + "RMA_WRITE_FAIL": { + "id": 4 + }, + "RMA_VERIFY_FAIL": { + "id": 5 + }, + "RMA_BAD_ENTRY": { + "id": 6 + }, + "INIT_FAIL": { + "id": 7 + }, + "NDEF_CONFIG_FAIL": { + "id": 8 + }, + "RMA_CONFIG_FAIL": { + "id": 9 + }, + "NDEF_START_FAIL": { + "id": 10 + }, + "RMA_START_FAIL": { + "id": 11 + } + } + }, + "OPTICALINTERFACE": { + "id": 256, + "version": { + "first": 1, + "last": 366 + }, + "builds": { + "emea": [ + { + "id": 230, + "fw": "106E" + }, + { + "id": 230, + "fw": "106F" + }, + { + "id": 257, + "fw": "1107" + }, + { + "id": 257, + "fw": "1108" + }, + { + "id": 278, + "fw": "1247" + }, + { + "id": 318, + "fw": "130A" + }, + { + "id": 330, + "fw": "130B" + }, + { + "id": 331, + "fw": "13F3" + }, + { + "id": 346, + "fw": "1310" + }, + { + "id": 350, + "fw": "1416" + }, + { + "id": 351, + "fw": "14E0" + }, + { + "id": 358, + "fw": "14E1" + }, + { + "id": 359, + "fw": "14E2" + }, + { + "id": 360, + "fw": "14E3" + }, + { + "id": 361, + "fw": "1417" + }, + { + "id": 362, + "fw": "1420" + }, + { + "id": 363, + "fw": "1421" + }, + { + "id": 364, + "fw": "1422" + }, + { + "id": 365, + "fw": "1423" + }, + { + "id": 366, + "fw": "1424" + } + ], + "na": [ + { + "id": 278, + "fw": "1228" + }, + { + "id": 310, + "fw": "2002" + }, + { + "id": 324, + "fw": "2006" + }, + { + "id": 352, + "fw": "2013" + } + ] + } + }, + "OPTICALPORT": { + "id": 5, + "version": { + "first": 1, + "last": 55 + }, + "registers": { + "BaudRateCapabilities": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Bitmask of supported rates on the given hardware.", + "version": { + "first": 2, + "last": 55 + }, + "statictype": "static" + } + ] + }, + "PacketSizeCapabilities": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Bitmask of supported packet sizes.", + "version": { + "first": 2, + "last": 55 + }, + "values": { + "default": 64 + }, + "statictype": "static" + } + ] + }, + "ProtocolVersion": { + "id": 2, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Version number as fixed point 16.16 format BCD.", + "version": { + "first": 2, + "last": 55 + }, + "statictype": "static" + } + ] + }, + "BaudRateSelected": { + "id": 3, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Baud rate in bits per second.", + "version": { + "first": 2, + "last": 55 + }, + "statictype": "dynamic" + } + ] + }, + "PacketSizeSelected": { + "id": 4, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Packet size in bytes.", + "version": { + "first": 2, + "last": 55 + }, + "statictype": "dynamic" + } + ] + }, + "ExternalUartControl": { + "id": 5, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "WO", + "lvl2": "WO", + "lvl3": "WO", + "lvl4": "WO", + "lvl5": "WO", + "lvl6": "WO", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Surrenders the UART to another application", + "version": { + "first": 49, + "last": 55 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "PAYLOAD_COUNT": { + "id": 0 + }, + "INVALID_SUBREASON": { + "id": 1 + }, + "INVALID_BAUDRATE": { + "id": 2 + }, + "INVALID_BUFFERSIZE": { + "id": 3 + }, + "CRCFAILURE": { + "id": 4 + }, + "UNRECOGNISEDCMD": { + "id": 5 + }, + "FRAMING": { + "id": 6 + }, + "OVERFLOW": { + "id": 7 + }, + "PACKETTIMEOUT": { + "id": 8 + }, + "INVALIDESCAPE": { + "id": 9 + }, + "UNKNOWN_PARAMETER": { + "id": 10 + }, + "TRAINING_FAILED": { + "id": 11 + }, + "NOBREAK": { + "id": 12 + } + } + }, + "PERIODICLOG": { + "id": 17, + "version": { + "first": 1, + "last": 78 + }, + "registers": { + "DataLogContents": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit Mask of the items to store in LOG memory", + "version": { + "first": 10, + "last": 77 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 201335811 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "This is a copy of DataLogContents from SENSUSRADIO. Don't modify here.", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 206906379, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please set the desired content in SENSUSRADIO and wait 22 seconds for storage.", + "region": { + "emea": { + "values": { + "default": 206906379 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "DataLogPeriod": { + "id": 1, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Storage Period of the LOG memory in minutes", + "version": { + "first": 10, + "last": 77 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A Copy from SENSUSRADIO. Storage Period in minutes of the LOG memory in minutes. Don't modify here.", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please set the desired content in SENSUSRADIO and wait 22 seconds for storage.", + "region": { + "emea": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "AverageFlowPeriod": { + "id": 2, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Averiging period for the Min/Max calculation of LOG&FDR memory", + "version": { + "first": 10, + "last": 77 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 5 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A Copy from SENSUSRADIO. Averaging period in minutes. It is calculated automatically in SENSURADIO. Don't modify.", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 5 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FixedDateReadingContents": { + "id": 3, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit Mask of the items to store in FDR memory", + "version": { + "first": 10, + "last": 77 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 201335811 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A Copy from SENSUSRADIO. Bit Mask of the FDR items to be logged. Don't modify here. Set this parameter in SENSUSRADIO and wait 22 sec for storage in PERIODICLOG", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 206906379, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 206906379 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "FixedDateDayOfMonth": { + "id": 4, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The day of month the FDR storage will take place at 00:00", + "version": { + "first": 10, + "last": 77 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 1 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A Copy from SENSUSRADIO. The day of month where FDR storage will take place at 00:00. Don't modify here.", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please set the desired content in SENSUSRADIO and wait 22 seconds for storage.", + "region": { + "emea": { + "values": { + "default": 1 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PeriodicLogLifeTimeCounter": { + "id": 5, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A counter used for internal purposes", + "version": { + "first": 15, + "last": 78 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "ResetCounter": { + "id": 6, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A counter to monitor the application resets", + "version": { + "first": 20, + "last": 78 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + } + }, + "status": { + "FOPEN": { + "action": "Perform a FOPEN to any of the logging files logdata, fdrdata, evtdata ... ", + "description": "FOPEN action failed due to any reason (means fopen error)", + "id": 0 + }, + "BAD_CONFIG": { + "action": "Handle the internal dual logging file access by SensusRfRadio and by PeriodicLogging", + "description": "Mutual Exclude file access failed due to a wrong internal status order", + "id": 1 + }, + "STRING_TOO_LONG": { + "action": "Currently unused or not define action", + "description": "Currently not generated or returned", + "id": 2 + }, + "FILES_IN_USE": { + "action": "Handle the internal dual logging file access by SensusRfRadio and by PeriodicLogging", + "description": "File access denied because the other party has currently access to the file(s)", + "id": 3 + } + } + }, + "POWERMON": { + "id": 1, + "version": { + "first": 17, + "last": 72 + }, + "registers": { + "BatteryVoltage": { + "id": 0, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Measured battery terminal voltage in 1mV units.", + "version": { + "first": 17, + "last": 72 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "BatteryManufacturer": { + "id": 1, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "String describing the battery brand.", + "version": { + "first": 17, + "last": 72 + }, + "values": { + "default": "Tadiran" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "BatterySize": { + "id": 2, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "One of: 0 = battery absent; 1 = built in; 2 = other; 3 = AA; 4 = AAA; 5 = C; 6 = D; 255 = unknown", + "version": { + "first": 17, + "last": 72 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "uwe.brehm@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 6 + } + }, + "na": { + "values": { + "default": 6 + } + } + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "BatteryQuantity": { + "id": 4, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The number of installed batteries.", + "version": { + "first": 17, + "last": 59 + }, + "values": { + "default": 1 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of installed batteries.", + "version": { + "first": 60, + "last": 72 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "uwe.brehm@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 2 + } + }, + "na": { + "values": { + "default": 2 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "BatteryRatedVoltage": { + "id": 5, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Datasheet terminal voltage in 100mV units as manufactured.", + "version": { + "first": 17, + "last": 72 + }, + "values": { + "default": 36, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "uwe.brehm@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "BatteryVoltageMinThreshold": { + "id": 7, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Datasheet terminal voltage in 100mV units below which the cell is considered empty.", + "version": { + "first": 17, + "last": 72 + }, + "values": { + "default": 28, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "uwe.brehm@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "BatterySelection": { + "id": 8, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Chosen manufacturer from the internal lookup table of known batteries.", + "version": { + "first": 20, + "last": 72 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "uwe.brehm@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TotalUsedCharge": { + "id": 9, + "details": [ + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Accumulated charge used in uAs.", + "version": { + "first": 24, + "last": 72 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "TotalUsedSeconds": { + "id": 10, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Elapsed time since manufacture in seconds.", + "version": { + "first": 39, + "last": 72 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "WarnFromClamp": { + "id": 11, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time in seconds for which the projected end time cannot exceed.", + "version": { + "first": 39, + "last": 72 + }, + "values": { + "default": 473040000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "This should be set to the expected life of the meter. In the early days the expected lifetime will be this. Set to 22 years to include warehouse storage time.", + "region": { + "emea": { + "values": { + "default": 694224000 + } + }, + "na": { + "values": { + "default": 694224000 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "BatteryMilliAHrRating": { + "id": 12, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Datasheet capacity in mAh units as manufactured.", + "version": { + "first": 45, + "last": 72 + }, + "values": { + "default": 19000, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "uwe.brehm@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "StoreConfiguration": { + "id": 13, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 61, + "last": 72 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "You do need to use this if you change any parameters in POWERMON and want to keep them.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + }, + "CriticalRepeatLimit": { + "id": 14, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of 15 minute periods of consecutive low battery voltage required for the battery to be deemed critically low", + "version": { + "first": 66, + "last": 72 + }, + "values": { + "default": 96, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "RemainingSeconds": { + "id": 15, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "", + "version": { + "first": 69, + "last": 72, + "exclude": [ + 70 + ] + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "" + ], + "remarks": "Read-only value for remaining battery lifetime, not useful in manufacture, ignore", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + } + }, + "status": { + "TABLE_FULL": { + "id": 0 + }, + "UNKNOWN_PARAMETER": { + "id": 1 + }, + "OUT_OF_RANGE": { + "id": 2 + }, + "STOP_CYCLING": { + "id": 3 + }, + "TEMPERATURE_LIMIT": { + "id": 4 + }, + "BATTERY_STATUS_CHANGED": { + "id": 5 + }, + "BATTERY_CRITICAL": { + "id": 6 + }, + "PENDING_STORE": { + "id": 7 + }, + "DID_NOT_STORE": { + "id": 8 + } + } + }, + "SENSUSRADIO": { + "id": 16, + "version": { + "first": 100, + "last": 554 + }, + "registers": { + "TxInterval": { + "id": 0, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The SensusRF transmission interval in seconds for the BUPs", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 15 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "OmTxInterval": { + "id": 1, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The Open Metering transmission interval in seconds", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 3600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 900 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "LatInterval": { + "id": 2, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The Listen After Talk interval as number 'n'. After every 'n' BUPs follows a BUP-LAT", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "WakeupInterval": { + "id": 3, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The Wake Up interval in seconds 's'. Every 's' seconds will the meter sniff for a WakeUp tone. 's' == 0 means active sending and no sniffing", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "MbusState": { + "id": 4, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The internal MBus state (Open Metering). A bit oriented value. Do not write if you do not know details", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 7, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": true, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 7 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "FrequencyIndicator": { + "id": 5, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A number that shows the radio frequency used. Normally 433 or 868", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 433, + "minimum": 433, + "maximum": 868 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Constant, do not change.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "FrequencyOffset": { + "id": 6, + "details": [ + { + "type": "int16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A radio frequency calibration parameter", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": -32768, + "maximum": 32767 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PowerLevel": { + "id": 7, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A parameter for controling the radio power", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 127 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "SystemState": { + "id": 9, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The internal System State of the Radio", + "version": { + "first": 100, + "last": 544 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Set to 0xFF at the end of parameterization to trigger shipping mode.", + "region": { + "emea": null + } + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The internal System State of the Radio", + "version": { + "first": 545, + "last": 554 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Set to 0xFF at the end of parameterization to trigger shipping mode.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "RadioAddress": { + "id": 10, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The radio address used by the meter", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Set final radio address.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "UtcTimeOffset": { + "id": 11, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The offset the between meter time and UTC for time correction", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "SentBytesCounter": { + "id": 12, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of bytes sent during meter lifetime", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "ReceivedBytesCounter": { + "id": 13, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of bytes received during meter lifetime", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "ResetCounter": { + "id": 14, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of resets the application SensusRfRadio has performed over lifetime", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "BootLoaderState": { + "id": 15, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An internal temporary state (enum) regarding the firmwware update", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "LeakFlowThreshold": { + "id": 16, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The flow value of the leakage (low flow) detection", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 25, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "LeakFlowTimeThreshold": { + "id": 17, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time in minutes of the leakage (low flow) detection threshold", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 360, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "BrokenPipeFlowThreshold": { + "id": 18, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The flow value of the broken pipe (high flow) detection", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 2500, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "BrokenPipeFlowTimeThreshold": { + "id": 19, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time in Minutes of the broken pipe (high flow) detection threshold", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 180, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureMaxThreshold": { + "id": 20, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The pressure value of the maximum (high) pressure alarm", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 160, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureMinThreshold": { + "id": 21, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The pressure value of the minimum (low) pressure alarm", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureLimitTimeMaxThreshold": { + "id": 22, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time in seconds of the maximum (high) pressure alarm threshold", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureLimitTimeMinThreshold": { + "id": 23, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time in seconds of the minimum (low) pressure alarm threshold", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureMeasurePeriod": { + "id": 24, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The period in seconds with which the pressure is measured (fix 60 sec)", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 60, + "minimum": 60, + "maximum": 60 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureUnit": { + "id": 25, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An enum respresenting the unit of pressure (0= no pressure sensor, 1= MPas, 2= PSI, 3= Bar)", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 3 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureGaugeOffset": { + "id": 26, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The gauge offset of the pressure sensor value in mBar", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "TemperatureMaxThreshold": { + "id": 27, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The temperature value of the maximum (high) temperature alarm", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 50, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureMinThreshold": { + "id": 28, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The temperature value of the minimum (low) temperature alarm", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureTimeMaxThreshold": { + "id": 29, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time in Minutes of the maximum (high) temperature alarm threshold", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureTimeMinThreshold": { + "id": 30, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time in Minutes of the minimum (low) temperature alarm threshold", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureMeasurePeriod": { + "id": 31, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The period in seconds with which the temperature is measured (only 60 is valid)", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 60, + "minimum": 60, + "maximum": 60 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureUnit": { + "id": 32, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An enum respresenting the unit of temperature (1= Celsius, 2= Fahrenheit)", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PulseOutWidth": { + "id": 33, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An enumerator defining the currently active PulseWidth (0 ... 8 for non testmode values and 9 ... 15 for testmode)", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 15 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PulseOutDivisor": { + "id": 34, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A number representing the pulse weight multiplicator 1, 10, 100 or 1000", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1000 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PulseOutMode": { + "id": 35, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An enum (0 to 3) representing the pulse output mode (0= deactivated, ...)", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 3 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "CurrentLoopMax": { + "id": 36, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A parameter regarding the non existing current loop output", + "version": { + "first": 100, + "last": 554 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Not used anymore.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "CurrentLoopSource": { + "id": 37, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A parameter regarding the non existing current loop output", + "version": { + "first": 100, + "last": 554 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Not used anymore.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "MainAlarmMask": { + "id": 38, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A byte value representing a mask of currently active (1) main alarms. These are the flow and genreral alarms", + "version": { + "first": 100, + "last": 544 + }, + "values": { + "default": 207, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at CUSTOMER APP.", + "region": { + "emea": null + } + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A byte value representing a mask of currently active (1) main alarms. These are the flow and genreral alarms", + "version": { + "first": 545, + "last": 554 + }, + "values": { + "default": 207, + "minimum": 128, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at CUSTOMER APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "ExtendedAlarmMask": { + "id": 39, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A byte value representing a mask of currently active (1) extended alarms. These are the temperature and pressure related alarms", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at CUSTOMER APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "HistoricalAlarmsDays": { + "id": 40, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A number of days (0 = off) after which alarms are cleared from the alarm byte values when they are no longer active", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 29, + "minimum": 0, + "maximum": 250 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 29 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TestModeTime": { + "id": 43, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A value in minutes that defines the time the meter will stay in testmode after that mode was started", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Runtime value.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "EncryptionKey": { + "id": 44, + "details": [ + { + "type": "uint128_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The SensusRF encryption key (16 bytes) of the meter", + "version": { + "first": 100, + "last": 554 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "D05 radio key (Sensus (standard), �)", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Authentification": { + "id": 45, + "details": [ + { + "type": "uint96_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The SensusRF Authentification PINs (3 PINs of 4 byte each) of the meter", + "version": { + "first": 100, + "last": 554 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "UpgFWVersion": { + "id": 46, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The version of the complete Meter firmware package as represented by application FlexNetVersion", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "CustomerText": { + "id": 47, + "details": [ + { + "type": "uint72_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An array of 9 bytes of freely programmable SensusRF customer Text", + "version": { + "first": 100, + "last": 554 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Customer specific.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "RadioLastReadTime": { + "id": 48, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An uint32_t value representing the meter's system DateTime when the radio had last time sent a telegram", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "LowBatDateTime": { + "id": 49, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An uint32_t value representing the meter's system DateTime when the radio had detected first the low-battery status", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "VeryLowBatDateTime": { + "id": 50, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A copy of the LowBatDateTime time stamp", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Unit": { + "id": 51, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A byte value representing the currently active volume unit used by radio", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Dependant on territory setting acc SAP order.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "ExtendedUnitFlags": { + "id": 52, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A byte value representing additional information regarding the unit derived from the volume unit when used for flow or alternate volume, 0x1x= liter per sec, 0xx1= kiloLiter", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 17 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": "custom", + "vako": true, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Customer specific. Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "OTAControlFlags": { + "id": 53, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A byte value normaly never changed regarding general behavior of the firmware related to Over The Air updates", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "1: if OTA update is allowed.", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Tfx_Structure": { + "id": 54, + "details": [ + { + "type": "uint88_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A complex structure of 84 bytes related to the Tfx mode of the meter respectively the volume channel", + "version": { + "first": 100, + "last": 549 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "uint672_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A complex structure of 84 bytes related to the Tfx mode of the meter respectively the volume channel", + "version": { + "first": 550, + "last": 554 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "Dewa_Structure": { + "id": 55, + "details": [ + { + "type": "uint64_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A structure of 4 uint16_t values used for the customer DEWA", + "version": { + "first": 100, + "last": 554 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "DataLogContents": { + "id": 56, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A 4 byte bit mask representing whether the individual data items are logged in the periodic logging (1) or not (0)", + "version": { + "first": 100, + "last": 553 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "32 Bit Mask of the items to be logged. Minimum items: 0x0C002003 (201344787 - can not be cleared)", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 206906379, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please wait 22 seconds after writing for storage in PERIODICLOG.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "DataLogPeriod": { + "id": 57, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A number in seconds representing the time period for storing data records into the periodic logging file (memory)", + "version": { + "first": 100, + "last": 553 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "number of minutes representing the time period for storing data records into the periodic log file", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please wait 22 seconds after writing for storage in PERIODICLOG.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "AverageFlowPeriod": { + "id": 58, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A number derived automatically from the DataLogPeriod that determines averaging periods in mimutes for min and max calculations", + "version": { + "first": 100, + "last": 553 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A number minutes that was automatically calculated from the DataLogPeriod for the averaging period and min and max calculations", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is calulated automatically", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FixedDateReadingContents": { + "id": 59, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A 4 byte bit mask representing whether the individual data items are logged in the fixed date logging (1) or not (0)", + "version": { + "first": 100, + "last": 553 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "32 bit mask defining FDR logging items. Minimum items: 0x0C002003 (201344787 - can not be cleared) ", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 206906379, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "After setting wait 22 seconds for storage in PERIODICLOG", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "FixedDateDayOfMonth": { + "id": 60, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The day of the month (0 = every day) on which at 00:00 the fixed date logging takes place", + "version": { + "first": 100, + "last": 553 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The day of the month (0 = every day) on which at 00:00 the fixed date logging takes place", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "After setting wait 22 seconds for storage in PERIODICLOG", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "MetroRadioLifeTimeCounter": { + "id": 61, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An uint32_t counter used originally for debugging during development. Meanwhile out of use", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PowerLevelOption": { + "id": 62, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An uint8_t value related to the power level used by the radio when an Irda module is present", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 127 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "ImpedanceCodeNew": { + "id": 63, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An uint16_t value used for adjusting the antenna impedance", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 32767 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "ImpedanceCodeOption": { + "id": 64, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An uint16_t value used for adjusting the antenna impedance if an Irda module is present", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 32767 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "IrDAModulePresent": { + "id": 65, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A parameter of type bool that signals the presence of an Irda module. The value is controlled by the meter", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignor because is set up at CUSTOMER APP?", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "StoreConfiguration": { + "id": 66, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 100, + "last": 554 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + }, + "LifeTimeSeconds": { + "id": 67, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of seconds since the radio left the production (Set to 0 at the end of the production proccess)", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "DutyCycleCredit": { + "id": 68, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A value (counter) used only during development for release testing", + "version": { + "first": 412, + "last": 554 + }, + "values": { + "default": 4320000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "ActivityCredit": { + "id": 69, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A counter used to control the radio activity which must not exceed certain regulatory limits", + "version": { + "first": 412, + "last": 554 + }, + "values": { + "default": 1000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PersistenceGroup1": { + "id": 70, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Storage item for HistoricalErrorLimitCounters Reverse(1, hi) and Leak(0, lo)", + "version": { + "first": 437, + "last": 554 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PersistenceGroup2": { + "id": 71, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Storage item for HistoricalErrorLimitCounters Magnet(3, hi) and Air(2, lo)", + "version": { + "first": 437, + "last": 554 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PersistenceGroup3": { + "id": 72, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Storage item for HistoricalErrorLimitCounters PressureMin(5, hi) and PressureMax(4, lo)", + "version": { + "first": 437, + "last": 554 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PersistenceGroup4": { + "id": 73, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Storage item for HistoricalErrorLimitCounters TempMin(7, hi) and TempMax(6, lo)", + "version": { + "first": 437, + "last": 554 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PressureCalibration": { + "id": 74, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "int8_t value to add an offset to the measured pressure in 10mBar resolution (for value from -1270 to +1270 mBar for field calibration purposes). -128 is an invalid value", + "version": { + "first": 483, + "last": 554 + }, + "values": { + "default": 0, + "minimum": -127, + "maximum": 127 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "TfxSecondaryChannelInfo_1": { + "id": 75, + "details": [ + { + "type": "uint48_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "a 6 bytes big complex structure for the Tfx settings of the secondary channel 1 (temperature)", + "version": { + "first": 494, + "last": 554 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "TfxSecondaryChannelInfo_2": { + "id": 76, + "details": [ + { + "type": "uint48_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "a 6 bytes big complex structure for the Tfx settings of the secondary channel 2 (pressure)", + "version": { + "first": 494, + "last": 554 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "OmsLastMessageCounter": { + "id": 77, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An unit32_t value used to support/control the MB_MODE3_OMSv4B transmission uinque MCR", + "version": { + "first": 499, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PersistenceGroup5": { + "id": 78, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Storage item for HistoricalErrorLimitCounters NoFlowAlarm(7, hi) and Metrology Failure(6, lo)", + "version": { + "first": 536, + "last": 554 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PersistenceGroup6": { + "id": 79, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Storage item for HistoricalErrorLimitCounters Reboot Alarm(7, hi) and reserved(6, lo)", + "version": { + "first": 536, + "last": 554 + }, + "values": { + "default": 16711680, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "Gradient_Alarm_Telegram_Persistence": { + "id": 80, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Alarm persistence in Minutes for both pressure Gardient Alarm types", + "version": { + "first": 550, + "last": 554 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "action": "According to the source code no action assigned to this error code", + "description": "It appears to be not used", + "id": 0 + }, + "BAD_CONFIG": { + "action": "Writing a new LOG or FDR content to Radio for forwarding to PeriodicLog", + "description": "A bit mask is written which is not valid (e.g. not all mandatory bits are equal to 1)", + "id": 1 + }, + "NO_CHANGE": { + "action": "Writing a new parameter value so several functions (e.g. Set HistoricalErrorLimitDays)", + "description": "The new value has no effect: New value == Old value)", + "id": 2 + }, + "STORE_PENDING": { + "action": "Writing SENSUSRADIO_STORECONFIGURATION to 1 ...", + "description": "The initiated storing action is still ongoing and the file system is busy. The final status is pending", + "id": 3 + }, + "DID_NOT_STORE": { + "action": "Writing SENSUSRADIO_STORECONFIGURATION to 1 ...", + "description": "This is a final status. The initiated storing action failed. An alternate status would be 'OK'", + "id": 4 + } + } + }, + "SYSTEM": { + "id": 0, + "version": { + "first": 141, + "last": 541 + }, + "registers": { + "TriggerUpgrade": { + "id": 0, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Writing TRUE to this register internally calls SysTriggerUpgrade() then returns the result.", + "version": { + "first": 141, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "CheckPresence": { + "id": 1, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Writing an application id number allows the version number of that application to be read back.", + "version": { + "first": 150, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Useful for checking the firmware that is loaded.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PCBSerialNumber": { + "id": 2, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "A string reporting the PCB serial number, this string must be set using production equipment.", + "version": { + "first": 169, + "last": 541 + }, + "values": { + "default": "" + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "CustomerSerialNumber0": { + "id": 3, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A string reported relating to the customer, this string can be written only once after manufacture. If subsequent changes are needed CUSTOMERSERIALNUMBER1 must be used.", + "version": { + "first": 170, + "last": 541 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "CustomerSerialNumber1": { + "id": 4, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A string reported relating to the customer, this string can be written only once after manufacture. If subsequent changes are needed CUSTOMERSERIALNUMBER2 must be used.", + "version": { + "first": 170, + "last": 541 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "CustomerSerialNumber2": { + "id": 5, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A string reported relating to the customer, this string can be written only once after manufacture. If subsequent changes are needed CUSTOMERSERIALNUMBER3 must be used.", + "version": { + "first": 170, + "last": 541 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "CustomerSerialNumber3": { + "id": 6, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A string reported relating to the customer, this string can be written only once after manufacture. This is the last customer serial number change slot.", + "version": { + "first": 170, + "last": 541 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "MonotonicSeconds": { + "id": 7, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The number of seconds since reboot.", + "version": { + "first": 176, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "CalendarSeconds": { + "id": 8, + "details": [ + { + "type": "time_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of seconds since 01-Jan-2000.", + "version": { + "first": 176, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "Time now. Write the current time during manufacture.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "CoreRevision": { + "id": 9, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "A string reporting the product version string held in the system core binary.", + "version": { + "first": 196, + "last": 541 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "This is effectively another application version number but for the Breeze Core and is worth looking at.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "DriveCapacity": { + "id": 10, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Writing a drive number returns the drive capacity in bytes, or 0 if the drive is not ready, or an error if the driver is not configured to be present.", + "version": { + "first": 233, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "ExitReason": { + "id": 11, + "details": [ + { + "type": "status_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Writing an application id number allows the exit error number of that application to be read back.", + "version": { + "first": 258, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "CorePlatform": { + "id": 12, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Reports the instruction set of the hosting microprocessor in b8-15 and allocated platform number in b0-7.", + "version": { + "first": 265, + "last": 541 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "CRC": { + "id": 13, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Writing an application id number allows the CRC of that application to be read back.", + "version": { + "first": 279, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Useful for checking the firmware that is loaded.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "UpgradePermissions": { + "id": 14, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bitfield of permissions releated to firmware upgrade", + "version": { + "first": 470, + "last": 541 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "Set fix as final step at production.", + "region": { + "emea": { + "values": { + "default": 254 + } + }, + "na": { + "values": { + "default": 255 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "CRC32": { + "id": 15, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Writing an application id number allows the 32 bit CRC of that application to be read back.", + "version": { + "first": 529, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Useful for checking the firmware that is loaded.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + } + }, + "status": { + "OK": { + "id": 0 + }, + "ZERO_APPS": { + "id": 1 + }, + "NO_MEMORY": { + "id": 2 + }, + "NOT_IMPLEMENTED": { + "id": 3 + }, + "BLOCK_NOT_FOUND": { + "id": 4 + }, + "NO_SUCH_VAR": { + "id": 5 + }, + "NO_CLIB": { + "id": 6 + }, + "KEY_FAILURE": { + "id": 7 + }, + "NO_SLOTS_FREE": { + "id": 8 + }, + "VECTOR_OUT_OF_RANGE": { + "id": 9 + }, + "BAD_VECTOR_RELEASE": { + "id": 10 + }, + "DRIVER_BUSY": { + "id": 11 + }, + "OUT_OF_RANGE": { + "id": 12 + }, + "CANT_CANCEL_TICK": { + "id": 13 + }, + "ID_OUT_OF_RANGE": { + "id": 14 + }, + "HANDLE_OUT_OF_RANGE": { + "id": 15 + }, + "INCAPABLE_HARDWARE": { + "id": 16 + }, + "ALREADY_OPEN": { + "id": 17 + }, + "STRING_TOO_LONG": { + "id": 18 + }, + "CORRUPT_CONFIGURATION": { + "id": 19 + }, + "TIMEOUT": { + "id": 20 + }, + "NO_PRIVILEGE": { + "id": 21 + }, + "DEVICE_DORMANT": { + "id": 22 + }, + "MEDIA_FAILURE": { + "id": 23 + }, + "BUFFER_OVERFLOW": { + "id": 24 + }, + "UPGRADE_SYNTAX_ERROR": { + "id": 25 + }, + "UPGRADE_DEPENDENCY_NOT_MET": { + "id": 26 + }, + "UPGRADE_MISSING": { + "id": 27 + }, + "UPGRADE_FRAGMENTED_BY_CLIB": { + "id": 28 + }, + "TRUNCATED": { + "id": 29 + }, + "INVALID_HEADER": { + "id": 30 + }, + "WONT_DELETE_CLIB": { + "id": 31 + }, + "BAD_REGISTER_VALUE": { + "id": 32 + }, + "NO_CHANGE_MADE": { + "id": 33 + }, + "NOT_ATOMIC": { + "id": 34 + }, + "CALENDAR_CHANGED": { + "id": 35 + }, + "WORM_FIELD": { + "id": 36 + }, + "CONVERSION_UNSUPPORTED": { + "id": 37 + }, + "CPU_PERMISSION_FAULT": { + "id": 38 + }, + "CPU_SOFTWARE_FAULT": { + "id": 39 + }, + "CPU_DECODE_FAULT": { + "id": 40 + }, + "CPU_ADDRESS_ACCESS_FAULT": { + "id": 41 + }, + "CPU_UNCAUGHT_FAULT": { + "id": 42 + }, + "ACCURACY_LOST": { + "id": 43 + }, + "EXIT_FAILURE": { + "id": 44 + }, + "CANT_CANCEL_CALLBACK": { + "id": 45 + }, + "RECOVERED_SPACE": { + "id": 46 + }, + "DRIVE_FULL": { + "id": 47 + }, + "NO_FILE_HANDLES_AVAILABLE": { + "id": 48 + }, + "EXCESSIVE_RESTARTS": { + "id": 49 + }, + "MPU_SETUP_FAILED": { + "id": 50 + }, + "DEVICE_NOT_OPEN": { + "id": 51 + }, + "NO_RESPONSE": { + "id": 52 + }, + "EXIT_WATCHDOG": { + "id": 53 + }, + "WONT_DELETE_SPECIAL": { + "id": 54 + }, + "WONT_UPGRADE_SPECIAL": { + "id": 55 + } + } + }, + "TESTMANAGER": { + "id": 98, + "version": { + "first": 0, + "last": 36 + }, + "registers": { + "OutputFile": { + "id": 0, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Access the test log filename.", + "version": { + "first": 0, + "last": 36 + }, + "statictype": null + } + ] + }, + "TestNumber": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Access the test sequence number.", + "version": { + "first": 0, + "last": 36 + }, + "statictype": null + } + ] + }, + "TestStatus": { + "id": 2, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Access the Test Manager state variable.", + "version": { + "first": 0, + "last": 36 + }, + "statictype": null + } + ] + }, + "TrapError": { + "id": 3, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Access the last recorded error code.", + "version": { + "first": 0, + "last": 36 + }, + "statictype": null + } + ] + }, + "TestParameter": { + "id": 4, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Access the test parameter variable.", + "version": { + "first": 0, + "last": 36 + }, + "statictype": null + } + ] + } + }, + "status": { + "FAIL": { + "id": 0 + }, + "UNKNOWN_PARAMETER": { + "id": 1 + }, + "READ_ONLY_PARAMETER": { + "id": 2 + }, + "BUSY": { + "id": 3 + }, + "STRING_TOO_LONG": { + "id": 4 + }, + "FOPEN_FAIL": { + "id": 5 + }, + "FSEEK_FAIL": { + "id": 6 + }, + "FWRITE_FAIL": { + "id": 7 + }, + "FCLOSE_FAIL": { + "id": 8 + }, + "MALFORMED_FILENAME": { + "id": 9 + }, + "UNKNOWN_ACTION": { + "id": 10 + }, + "FILEREMOVE_FAIL": { + "id": 11 + }, + "FREAD_FAIL": { + "id": 12 + } + } + } +} diff --git a/GenesisCordonelInterface/RuntimePackage/Package/log4net.dll b/GenesisCordonelInterface/RuntimePackage/Package/log4net.dll new file mode 100644 index 000000000..8646b6fcd Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/log4net.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/log4net.xml b/GenesisCordonelInterface/RuntimePackage/Package/log4net.xml new file mode 100644 index 000000000..dee43d645 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/log4net.xml @@ -0,0 +1,32450 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Prepare entire database command object to be executed. + + The command to prepare. + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Ansi code to reset terminal + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Supports type-safe iteration over a . + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Allow subclasses to avoid our default constructors + + + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Defaults to %logger + + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. + For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Syslog port 514 + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Send the email message + + the body text to include in the mail + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + trims leading and trailing commas or semicolons + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
+ The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
+
+ Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
+ + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
+ + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Supports type-safe iteration over a . + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Allow subclasses to avoid our default constructors + + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + The logger that this object is wrapping + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + returns a stack frame item from a stack frame. This + + + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + The global context properties instance + + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format modifierleft justifyminimum widthmaximum widthcomment
%20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
%-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
%.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
%20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
%-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
+
+ + Note about caller location information.
+ The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
+ + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
+ + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
+ + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Initializes a new instance of the class. + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Supports type-safe iteration over a . + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Allow subclasses to avoid our default constructors + + + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + + + + + + + + + + + + + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + Total number of bytes written. + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + The singleton instance of the . + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + See + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Format + + + + + Args + + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + diff --git a/GenesisCordonelInterface/RuntimePackage/Package/magflux_api.dll b/GenesisCordonelInterface/RuntimePackage/Package/magflux_api.dll new file mode 100644 index 000000000..68af23df3 Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/magflux_api.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/meterconfig.json b/GenesisCordonelInterface/RuntimePackage/Package/meterconfig.json new file mode 100644 index 000000000..955bd390b --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/meterconfig.json @@ -0,0 +1,10 @@ +{ + "UseRegisterWatchService": true, + "RegisterWatchServiceUrl": "http://sla12iis01/MeterProcessState/api/RegisterWatch/", + "UseMinMaxCheck": true, + "UseErrorLogger": false, + "ErrorLoggerServiceUrl": "http://sla12iis01/MeterProcessState/api/GenesisMeter/", + "UseCalibrationLogger": false, + "CalibrationLoggerServiceUrl": "http://sla12iis01/MeterProcessState/api/GenesisMeter/", + "AutoUpdateFiles":true +} \ No newline at end of file diff --git a/GenesisCordonelInterface/RuntimePackage/Package/nlog.config b/GenesisCordonelInterface/RuntimePackage/Package/nlog.config new file mode 100644 index 000000000..b065c5314 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/nlog.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GenesisCordonelInterface/RuntimePackage/Package/shared_code.dll b/GenesisCordonelInterface/RuntimePackage/Package/shared_code.dll new file mode 100644 index 000000000..06436ccaf Binary files /dev/null and b/GenesisCordonelInterface/RuntimePackage/Package/shared_code.dll differ diff --git a/GenesisCordonelInterface/RuntimePackage/Package/status.json b/GenesisCordonelInterface/RuntimePackage/Package/status.json new file mode 100644 index 000000000..89f645713 --- /dev/null +++ b/GenesisCordonelInterface/RuntimePackage/Package/status.json @@ -0,0 +1,250 @@ +{ + "OK": {"id": 0}, + "ERROR_ZERO_APPS": {"id": 1}, + "ERROR_NO_MEMORY": {"id": 2}, + "ERROR_NOT_IMPLEMENTED": {"id": 3}, + "ERROR_BLOCK_NOT_FOUND": {"id": 4}, + "ERROR_NO_SUCH_VAR": {"id": 5}, + "ERROR_NO_CLIB": {"id": 6}, + "ERROR_KEY_FAILURE": {"id": 7}, + "ERROR_NO_SLOTS_FREE": {"id": 8}, + "ERROR_VECTOR_OUT_OF_RANGE": {"id": 9}, + "ERROR_BAD_VECTOR_RELEASE": {"id": 10}, + "ERROR_DRIVER_BUSY": {"id": 11}, + "ERROR_OUT_OF_RANGE": {"id": 12}, + "ERROR_CANT_CANCEL_TICK": {"id": 13}, + "ERROR_ID_OUT_OF_RANGE": {"id": 14}, + "ERROR_HANDLE_OUT_OF_RANGE": {"id": 15}, + "ERROR_INCAPABLE_HARDWARE": {"id": 16}, + "ERROR_ALREADY_OPEN": {"id": 17}, + "ERROR_STRING_TOO_LONG": {"id": 18}, + "ERROR_CORRUPT_CONFIGURATION": {"id": 19}, + "ERROR_TIMEOUT": {"id": 20}, + "ERROR_NO_PRIVILEGE": {"id": 21}, + "ERROR_DEVICE_DORMANT": {"id": 22}, + "ERROR_MEDIA_FAILURE": {"id": 23}, + "ERROR_BUFFER_OVERFLOW": {"id": 24}, + "ERROR_UPGRADE_SYNTAX_ERROR": {"id": 25}, + "ERROR_UPGRADE_DEPENDENCY_NOT_MET": {"id": 26}, + "ERROR_UPGRADE_MISSING": {"id": 27}, + "ERROR_UPGRADE_FRAGMENTED_BY_CLIB": {"id": 28}, + "ERROR_TRUNCATED": {"id": 29}, + "ERROR_INVALID_HEADER": {"id": 30}, + "ERROR_WONT_DELETE_CLIB": {"id": 31}, + "ERROR_BAD_REGISTER_VALUE": {"id": 32}, + "ERROR_NO_CHANGE_MADE": {"id": 33}, + "ERROR_NOT_ATOMIC": {"id": 34}, + "ERROR_CALENDAR_CHANGED": {"id": 35}, + "ERROR_WORM_FIELD": {"id": 36}, + "ERROR_CONVERSION_UNSUPPORTED": {"id": 37}, + "ERROR_CPU_PERMISSION_FAULT": {"id": 38}, + "ERROR_CPU_SOFTWARE_FAULT": {"id": 39}, + "ERROR_CPU_DECODE_FAULT": {"id": 40}, + "ERROR_CPU_ADDRESS_ACCESS_FAULT": {"id": 41}, + "ERROR_CPU_UNCAUGHT_FAULT": {"id": 42}, + "ERROR_ACCURACY_LOST": {"id": 43}, + "ERROR_EXIT_FAILURE": {"id": 44}, + "ERROR_CANT_CANCEL_CALLBACK": {"id": 45}, + "ERROR_RECOVERED_SPACE": {"id": 46}, + "ERROR_DRIVE_FULL": {"id": 47}, + "ERROR_NO_FILE_HANDLES_AVAILABLE": {"id": 48}, + "ERROR_EXCESSIVE_RESTARTS": {"id": 49}, + "ERROR_MPU_SETUP_FAILED": {"id": 50}, + "ERROR_DEVICE_NOT_OPEN": {"id": 51}, + "ERROR_NO_RESPONSE": {"id": 52}, + "ERROR_EXIT_WATCHDOG": {"id": 53}, + "ERROR_WONT_DELETE_SPECIAL": {"id": 54}, + "ERROR_WONT_UPGRADE_SPECIAL": {"id": 55}, + "ERROR_POWERMON_TABLE_FULL": {"id": 256}, + "ERROR_POWERMON_UNKNOWN_PARAMETER": {"id": 257}, + "ERROR_POWERMON_OUT_OF_RANGE": {"id": 258}, + "ERROR_POWERMON_STOP_CYCLING": {"id": 259}, + "ERROR_POWERMON_TEMPERATURE_LIMIT": {"id": 260}, + "ERROR_POWERMON_BATTERY_STATUS_CHANGED": {"id": 261}, + "ERROR_POWERMON_BATTERY_CRITICAL": {"id": 262}, + "ERROR_CONFIGEX_LOCKED_OUT": {"id": 1024}, + "ERROR_CONFIGEX_AUTHENTICATION_FAILURE": {"id": 1025}, + "ERROR_CONFIGEX_ACCESS_DENIED": {"id": 1026}, + "ERROR_CONFIGEX_UNKNOWN_PARAMETER": {"id": 1027}, + "ERROR_CONFIGEX_IN_USE": {"id": 1028}, + "ERROR_CONFIGEX_SIZES_DONT_MATCH": {"id": 1029}, + "ERROR_CONFIGEX_CANT_READ_CONFIG_FILE": {"id": 1030}, + "ERROR_CONFIGEX_USER_NOT_KNOWN": {"id": 1031}, + "ERROR_CONFIGEX_CANT_CREATE_CONFIG_FILE": {"id": 1032}, + "ERROR_CONFIGEX_STORE_DIDNT_STORE": {"id": 1033}, + "ERROR_CONFIGEX_STORE_CORRUPT": {"id": 1034}, + "ERROR_CONFIGEX_EXPECTED_WRITE": {"id": 1035}, + "ERROR_CONFIGEX_EXPECTED_READ": {"id": 1036}, + "ERROR_CONFIGEX_STOP_CYCLING": {"id": 1037}, + "ERROR_CONFIGEX_TOO_MANY_OPEN": {"id": 1038}, + "ERROR_CONFIGEX_NEVER_OPENED": {"id": 1039}, + "ERROR_CONFIGEX_FILE_PROTECTED": {"id": 1040}, + "ERROR_CONFIGEX_PARTIAL_RECALL": {"id": 1041}, + "ERROR_CONFIGEX_DEFAULT_PASSWORD_USED": {"id": 1042}, + "ERROR_OPTICALPORT_PAYLOAD_COUNT": {"id": 1280}, + "ERROR_OPTICALPORT_INVALID_SUBREASON": {"id": 1281}, + "ERROR_OPTICALPORT_INVALID_BAUDRATE": {"id": 1282}, + "ERROR_OPTICALPORT_INVALID_BUFFERSIZE": {"id": 1283}, + "ERROR_OPTICALPORT_CRCFAILURE": {"id": 1284}, + "ERROR_OPTICALPORT_UNRECOGNISEDCMD": {"id": 1285}, + "ERROR_OPTICALPORT_FRAMING": {"id": 1286}, + "ERROR_OPTICALPORT_OVERFLOW": {"id": 1287}, + "ERROR_OPTICALPORT_PACKETTIMEOUT": {"id": 1288}, + "ERROR_OPTICALPORT_INVALIDESCAPE": {"id": 1289}, + "ERROR_OPTICALPORT_UNKNOWN_PARAMETER": {"id": 1290}, + "ERROR_OPTICALPORT_TRAINING_FAILED": {"id": 1291}, + "ERROR_OPTICALPORT_NOBREAK": {"id": 1292}, + "ERROR_LOGGER_UNKNOWN_PARAMETER": {"id": 2048}, + "ERROR_LOGGER_RESTARTED": {"id": 2049}, + "ERROR_LOGGER_BLOCK_LISTING": {"id": 2050}, + "ERROR_CUSTOMER_REBOOT,": {"id": 2304}, + "ERROR_CUSTOMER_REBOOT_STOP,": {"id": 2305}, + "ERROR_CUSTOMER_LOW_BATTERY,": {"id": 2306}, + "ERROR_CUSTOMER_LOW_BATTERY_STOP,": {"id": 2307}, + "ERROR_CUSTOMER_VERY_LOW_BATTERY,": {"id": 2308}, + "ERROR_CUSTOMER_VERY_LOW_BATTERY_STOP,": {"id": 2309}, + "ERROR_CUSTOMER_CONFIG_ERROR,": {"id": 2310}, + "ERROR_CUSTOMER_CONFIG_ERROR_STOP,": {"id": 2311}, + "ERROR_CUSTOMER_EMPTY_PIPE,": {"id": 2312}, + "ERROR_CUSTOMER_EMPTY_PIPE_STOP,": {"id": 2313}, + "ERROR_CUSTOMER_MAGNETIC_TAMPER,": {"id": 2314}, + "ERROR_CUSTOMER_MAGNETIC_TAMPER_STOP,": {"id": 2315}, + "ERROR_CUSTOMER_REVERSE_FLOW,": {"id": 2316}, + "ERROR_CUSTOMER_REVERSE_FLOW_STOP,": {"id": 2317}, + "ERROR_CUSTOMER_SUSPECT_LEAK,": {"id": 2318}, + "ERROR_CUSTOMER_SUSPECT_LEAK_STOP,": {"id": 2319}, + "ERROR_CUSTOMER_BROKEN_PIPE,": {"id": 2320}, + "ERROR_CUSTOMER_BROKEN_PIPE_STOP,": {"id": 2321}, + "ERROR_CUSTOMER_LOW_PRESSURE,": {"id": 2322}, + "ERROR_CUSTOMER_LOW_PRESSURE_STOP,": {"id": 2323}, + "ERROR_CUSTOMER_HIGH_PRESSURE,": {"id": 2324}, + "ERROR_CUSTOMER_HIGH_PRESSURE_STOP,": {"id": 2325}, + "ERROR_CUSTOMER_LOW_TEMPERATURE,": {"id": 2326}, + "ERROR_CUSTOMER_LOW_TEMPERATURE_STOP,": {"id": 2327}, + "ERROR_CUSTOMER_HIGH_TEMPERATURE,": {"id": 2328}, + "ERROR_CUSTOMER_HIGH_TEMPERATURE_STOP,": {"id": 2329}, + "ERROR_CUSTOMER_RADIO_ERROR,": {"id": 2330}, + "ERROR_CUSTOMER_RADIO_ERROR_STOP,": {"id": 2331}, + "ERROR_CUSTOMER_METROLOGY_PARAMS,": {"id": 2332}, + "ERROR_CUSTOMER_METROLOGY_PARAMS_STOP,": {"id": 2333}, + "ERROR_CUSTOMER_METROLOGY_MEASURE,": {"id": 2334}, + "ERROR_CUSTOMER_METROLOGY_MEASURE_STOP,": {"id": 2335}, + "ERROR_CUSTOMER_UNALLOCATED_6,": {"id": 2336}, + "ERROR_CUSTOMER_UNALLOCATED_6_STOP,": {"id": 2337}, + "ERROR_CUSTOMER_UNALLOCATED_7,": {"id": 2338}, + "ERROR_CUSTOMER_UNALLOCATED_7_STOP,": {"id": 2339}, + "ERROR_CUSTOMER_UNALLOCATED_8,": {"id": 2340}, + "ERROR_CUSTOMER_UNALLOCATED_8_STOP,": {"id": 2341}, + "ERROR_CUSTOMER_UNALLOCATED_9,": {"id": 2342}, + "ERROR_CUSTOMER_UNALLOCATED_9_STOP,": {"id": 2343}, + "ERROR_CUSTOMER_UNALLOCATED_10,": {"id": 2344}, + "ERROR_CUSTOMER_UNALLOCATED_10_STOP,": {"id": 2345}, + "ERROR_CUSTOMER_UNALLOCATED_11,": {"id": 2346}, + "ERROR_CUSTOMER_UNALLOCATED_11_STOP,": {"id": 2347}, + "ERROR_CUSTOMER_UNALLOCATED_12,": {"id": 2348}, + "ERROR_CUSTOMER_UNALLOCATED_12_STOP,": {"id": 2349}, + "ERROR_CUSTOMER_UNALLOCATED_13,": {"id": 2350}, + "ERROR_CUSTOMER_UNALLOCATED_13_STOP,": {"id": 2351}, + "ERROR_CUSTOMER_UNALLOCATED_14,": {"id": 2352}, + "ERROR_CUSTOMER_UNALLOCATED_14_STOP,": {"id": 2353}, + "ERROR_CUSTOMER_UNALLOCATED_15,": {"id": 2354}, + "ERROR_CUSTOMER_UNALLOCATED_15_STOP,": {"id": 2355}, + "ERROR_CUSTOMER_UNALLOCATED_16,": {"id": 2356}, + "ERROR_CUSTOMER_UNALLOCATED_16_STOP,": {"id": 2357}, + "ERROR_CUSTOMER_UNALLOCATED_17,": {"id": 2358}, + "ERROR_CUSTOMER_UNALLOCATED_17_STOP,": {"id": 2359}, + "ERROR_CUSTOMER_UNALLOCATED_18,": {"id": 2360}, + "ERROR_CUSTOMER_UNALLOCATED_18_STOP,": {"id": 2361}, + "ERROR_CUSTOMER_UNALLOCATED_19,": {"id": 2362}, + "ERROR_CUSTOMER_UNALLOCATED_19_STOP,": {"id": 2363}, + "ERROR_CUSTOMER_UNALLOCATED_20,": {"id": 2364}, + "ERROR_CUSTOMER_UNALLOCATED_20_STOP,": {"id": 2365}, + "ERROR_CUSTOMER_UNALLOCATED_21,": {"id": 2366}, + "ERROR_CUSTOMER_UNALLOCATED_21_STOP,": {"id": 2367}, + "ERROR_CUSTOMER_UNKNOWN_PARAMETER,": {"id": 2368}, + "ERROR_CUSTOMER_LOCALE_UNDEFINED,": {"id": 2369}, + "ERROR_CUSTOMER_NO_SUCH_ALARM,": {"id": 2370}, + "ERROR_CUSTOMER_OUT_OF_RANGE,": {"id": 2371}, + "ERROR_CUSTOMER_NOT_IMPLEMENTED,": {"id": 2372}, + "ERROR_CUSTOMER_BAD_CONFIG,": {"id": 2373}, + "ERROR_CUSTOMER_DID_NOT_STORE,": {"id": 2374}, + "ERROR_CUSTOMER_STORE_PENDING,": {"id": 2375}, + "ERROR_GENESISFLOW_BAD_TEST": {"id": 3840}, + "ERROR_GENESISFLOW_BAD_CONFIG": {"id": 3841}, + "ERROR_GENESISFLOW_DID_NOT_STORE": {"id": 3842}, + "ERROR_GENESISFLOW_STORE_PENDING": {"id": 3843}, + "ERROR_GENESISFLOW_STORE_BUFFER_SIZE": {"id": 3844}, + "ERROR_GENESISFLOW_STRING_TOO_LONG": {"id": 3845}, + "ERROR_GENESISFLOW_BAD_DISPLAY_MODE": {"id": 3846}, + "ERROR_GENESISFLOW_GLASS_TOO_LONG": {"id": 3847}, + "ERROR_GENESISFLOW_SLOT_NOT_YOURS": {"id": 3848}, + "ERROR_GENESISFLOW_SUBLIST_TOO_LONG": {"id": 3849}, + "ERROR_GENESISFLOW_NO_TEMP_SENSOR": {"id": 3850}, + "ERROR_GENESISFLOW_UNDER_TEMP": {"id": 3851}, + "ERROR_GENESISFLOW_LOW_TEMP_WARNING": {"id": 3852}, + "ERROR_GENESISFLOW_HIGH_TEMP_WARNING": {"id": 3853}, + "ERROR_GENESISFLOW_OVER_TEMP": {"id": 3854}, + "ERROR_GENESISFLOW_MISMATCHING_LSB": {"id": 3855}, + "ERROR_GENESISFLOW_OUT_OF_RANGE_PWDIFF": {"id": 3856}, + "ERROR_GENESISFLOW_OUT_OF_RANGE_AMPLITUDE": {"id": 3857}, + "ERROR_GENESISFLOW_OUT_OF_RANGE_TOF": {"id": 3858}, + "ERROR_GENESISFLOW_OUT_OF_RANGE_DTOF": {"id": 3859}, + "ERROR_GENESISFLOW_TOF_TIMEOUT": {"id": 3860}, + "ERROR_GENESISFLOW_CAL_CHANGE": {"id": 3861}, + "ERROR_GENESISFLOW_OUT_OF_RANGE_INTERVAL": {"id": 3862}, + "ERROR_GENESISFLOW_VALIDATE_FAIL": {"id": 3863}, + "ERROR_GENESISFLOW_OUT_OF_RANGE_TEMP": {"id": 3864}, + "ERROR_GENESISFLOW_NOT_READY": {"id": 3865}, + "ERROR_GENESISFLOW_METROLOGY_ERROR": {"id": 3866}, + "ERROR_GENESISFLOW_GP30_ID_ERROR": {"id": 3867}, + "ERROR_GENESISFLOW_GP30_FLAG_ERROR": {"id": 3868}, + "ERROR_GENESISFLOW_GP30_TIMEOUT_ERROR": {"id": 3869}, + "ERROR_GENESISFLOW_GP30_REQUEST_ERROR": {"id": 3870}, + "ERROR_GENESISFLOW_GP30_SEQ_ERROR": {"id": 3871}, + "ERROR_GENESISFLOW_VALUE_SEALED": {"id": 3872}, + "ERROR_GENESISFLOW_IN_TEST_MODE": {"id": 3873}, + "ERROR_GENESISFLOW_UNKNOWN_STATE": {"id": 3874}, + "ERROR_GENESISFLOW_DISPLAY_INIT_SUCCEEDED": {"id": 3875}, + "ERROR_GENESISFLOW_DISPLAY_INIT_FAILED": {"id": 3876}, + "ERROR_GENESISFLOW_GP30_INIT_FAILED": {"id": 3877}, + "ERROR_GENESISFLOW_START_TIMER_SUCCEEDED": {"id": 3878}, + "ERROR_GENESISFLOW_START_TIMER_FAILED": {"id": 3879}, + "ERROR_GENESISFLOW_VOLUME_STORE_FAILED": {"id": 3880}, + "ERROR_GENESISFLOW_EMPTY_PIPE": {"id": 3881}, + "ERROR_GENESISFLOW_PARAMETER_ERROR": {"id": 3882}, + "ERROR_GENESISFLOW_GP30_INTERNAL_ERROR": {"id": 3883}, + "ERROR_GENESISFLOW_GLASS_TOO_SHORT": {"id": 3884}, + "ERROR_GENESISFLOW_STORE_CAL_FAILED": {"id": 3885}, + "ERROR_GENESISFLOW_STORE_CONF_FAILED": {"id": 3886}, + "ERROR_GENESISFLOW_MODE_CHANGE": {"id": 3887}, + "ERROR_GENESISFLOW_BAD_POW10": {"id": 3888}, + "ERROR_GENESISFLOW_BAD_DECIMAL_SEPARATOR": {"id": 3889}, + "ERROR_GENESISFLOW_BAD_UNITS": {"id": 3890}, + "ERROR_GENESISFLOW_BAD_ICONS": {"id": 3891}, + "ERROR_GENESISFLOW_BAD_THOUSAND_SEPARATOR": {"id": 3892}, + "ERROR_GENESISFLOW_NEW_LOCALE_REJECTED": {"id": 3893}, + "ERROR_GENESISFLOW_SET_ACCUMULATORS": {"id": 3894}, + "ERROR_GENESISFLOW_SEAL_OPENED": {"id": 3895}, + "ERROR_GENESISFLOW_CALIBRATION_RECALL_INCOMPLETE": {"id": 3896}, + "ERROR_METROLOGYASST_BAD_CONFIG": {"id": 4608}, + "ERROR_METROLOGYASST_DID_NOT_STORE": {"id": 4609}, + "ERROR_METROLOGYASST_PENDING_STORE": {"id": 4610}, + "ERROR_IRDA_BAD_CONFIG": {"id": 5120}, + "ERROR_IRDA_BAD_LENGTH": {"id": 5121}, + "ERROR_NA2WALARMS_SENSOR_INVALID": {"id": 5888}, + "ERROR_NA2WALARMS_UNKNOWN_PARAMETER": {"id": 5889}, + "ERROR_NA2WALARMS_ALARM_INVALID": {"id": 5890}, + "ERROR_NA2WALARMS_UNIMPLEMENTED": {"id": 5891}, + "ERROR_NA2WALARMS_UNCONFIGURED": {"id": 5892}, + "ERROR_NA2WALARMS_CONFIG_INVALID": {"id": 5893}, + "ERROR_NA2WALARMS_NO_LATEST": {"id": 5894}, + "ERROR_NA2WALARMS_FIXED_TYPE": {"id": 5895}, + "ERROR_NA2WALARMS_PREDEF_SET": {"id": 5896}, + "ERROR_NA2WALARMS_USERDEF_VOLUME_SET": {"id": 5897}, + "ERROR_NA2WALARMS_USERDEF_TEMPERATURE_SET": {"id": 5898}, + "ERROR_NA2WALARMS_USERDEF_PRESSURE_SET": {"id": 5899}, + "ERROR_NA2WALARMS_PREDEF_CLEAR": {"id": 5900}, + "ERROR_NA2WALARMS_USERDEF_VOLUME_CLEAR": {"id": 5901}, + "ERROR_NA2WALARMS_USERDEF_TEMPERATURE_CLEAR": {"id": 5902}, + "ERROR_NA2WALARMS_USERDEF_PRESSURE_CLEAR": {"id": 5903} +} \ No newline at end of file diff --git a/GenesisCordonelInterface/bin/Debug/GMH3x32E.dll b/GenesisCordonelInterface/bin/Debug/GMH3x32E.dll new file mode 100644 index 000000000..28b685563 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/GMH3x32E.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/GenesisCordonelInterface.exe b/GenesisCordonelInterface/bin/Debug/GenesisCordonelInterface.exe new file mode 100644 index 000000000..39536264c Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/GenesisCordonelInterface.exe differ diff --git a/GenesisCordonelInterface/bin/Debug/GenesisCordonelInterface.exe.config b/GenesisCordonelInterface/bin/Debug/GenesisCordonelInterface.exe.config new file mode 100644 index 000000000..47e7230cd --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/GenesisCordonelInterface.exe.config @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GenesisCordonelInterface/bin/Debug/GenesisCordonelInterface.pdb b/GenesisCordonelInterface/bin/Debug/GenesisCordonelInterface.pdb new file mode 100644 index 000000000..2ab1e6138 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/GenesisCordonelInterface.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Logic.ProductionToProductMapper.dll b/GenesisCordonelInterface/bin/Debug/Logic.ProductionToProductMapper.dll new file mode 100644 index 000000000..39861edde Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Logic.ProductionToProductMapper.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Logic.ProductionToProductMapper.dll.config b/GenesisCordonelInterface/bin/Debug/Logic.ProductionToProductMapper.dll.config new file mode 100644 index 000000000..c764f5323 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Logic.ProductionToProductMapper.dll.config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/GenesisCordonelInterface/bin/Debug/Logic.ProductionToProductMapper.pdb b/GenesisCordonelInterface/bin/Debug/Logic.ProductionToProductMapper.pdb new file mode 100644 index 000000000..18af7a487 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Logic.ProductionToProductMapper.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/MeterFilesEraseRestore.json b/GenesisCordonelInterface/bin/Debug/MeterFilesEraseRestore.json new file mode 100644 index 000000000..47413deb6 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/MeterFilesEraseRestore.json @@ -0,0 +1,15 @@ +{ + "Erase": [ + "1\\tstfile", + "1\\fdrdata", + "1\\logdata", + "1\\blklist", + "1\\pulsedbg", + "1\\upg*", + "1\\img*" + ], + "Restore": [ + { + } + ] +} \ No newline at end of file diff --git a/GenesisCordonelInterface/bin/Debug/NLog.dll b/GenesisCordonelInterface/bin/Debug/NLog.dll new file mode 100644 index 000000000..d519ffc52 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/NLog.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/NLog.xml b/GenesisCordonelInterface/bin/Debug/NLog.xml new file mode 100644 index 000000000..65f7343a4 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/NLog.xml @@ -0,0 +1,28513 @@ + + + + NLog + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + A task that completes in the state when completes. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Support implementation of + + + + + + + + + + + + + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without waiting) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + + + + + + + + + + String Conversion Helpers + + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + Output value + Default value + Returns false if the input value could not be parsed + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + The type of the enum + Output value. Null if parse failed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + Enables to extract extra context details for + + + + + Name of context + + + + + The current LogFactory next to LogManager + + + + + NLog internal logger. + + Writes to file, console or custom text writer (see ) + + + Don't use as that can lead to recursive calls - stackoverflow + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Event written to the internal log. + + + EventHandler will only be triggered for events, where severity matches the configured . + + Avoid using/calling NLog Logger-objects when handling these internal events, as it will lead to deadlock / stackoverflow. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Create log line with timestamp, exception message etc (if configured) + + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled for given LogLevel + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Determine if logging is enabled. + + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + A message to write. + + Works when property set to true. + The is used in Debug and Release configuration. + The works only in Debug configuration and this is reason why is replaced by . + in DEBUG + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A message has been written to the internal logger + + + + + The rendered message + + + + + The log level + + + + + The exception. Could be null. + + + + + The type that triggered this internal log event, for example the FileTarget. + This property is not always populated. + + + + + The context name that triggered this internal log event, for example the name of the Target. + This property is not always populated. + + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the capacity of the buffer + + + + + Gets the number of items in the buffer + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Marks the class as containing condition methods. + + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Condition message expression (represented by the exception keyword). + + + + + + + + Evaluates the current . + + Evaluation context. + The object. + + + + Base class for representing nodes in condition expression trees. + + Documentation on NLog Wiki + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + + + + Evaluates the expression by rendering the formatted output from + the + + Evaluation context. + The output rendered from the layout. + + + + Condition level expression (represented by the level keyword). + + + + + + + + Evaluates to the current log level. + + Evaluation context. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + + + + Evaluates the expression. + + Evaluation context. Ignored. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Gets the method parameters + + + + + + + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + + + + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + + + + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparison, e.g. parse a string to int. + + + + + + + Promotes to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparison. + + + index, 0 to max int. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + + Implementors must have the [ThreadAgnostic] attribute + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properties are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + + + + Provides logging interface and utility functions. + + + + + An assembly is trying to load. + + + + + Initializes a new instance of the class. + + Assembly that have been loaded + + + + The assembly that is trying to load. + + + + + Class for providing Nlog configuration xml code from app.config + to + + + + + Overriding base implementation to just store + of the relevant app.config section. + + The XmlReader that reads from the configuration file. + true to serialize only the collection key properties; otherwise, false. + + + + Override base implementation to return a object + for + instead of the instance. + + + A instance, that has been deserialized from app.config. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets the factory. + + + + + Gets the factory. + + + + + Gets the factory. + + + + + Gets the ambient property factory. + + + + + Gets the factory. + + + + + Gets the factory. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Gets the factory. + + The filter factory. + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Gets or sets the JSON serializer to use with + + + + + Gets or sets the string serializer to use with + + + + + Gets or sets the parameter converter to use with or + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in using late-bound types, so that we don't need a reference to the dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Dynamic filtering with a positive list of enabled levels + + + + + Dynamic filtering with a minlevel and maxlevel range + + + + + Format of the exception output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Appends the from the application or the object that caused the error. + + + + + Appends the from the application or the object that caused the error. + + + + + Appends any additional properties that specific type of Exception might have. + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The assembly name for the types. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + + + + + + + + + + + + + Factory specialized for s. + + + + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Factory of named items (such as , , , etc.). + + + + + Factory of named items (such as , , , etc.). + + + + + Registers type-creation from type-alias + + + + + Create type-instance from type-alias + + + + + Include context properties + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + Did the Initialize Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Interface for accessing configuration details + + + + + Name of this configuration element + + + + + Configuration Key/Value Pairs + + + + + Child configuration elements + + + + + Interface for loading NLog + + + + + Finds and loads the NLog configuration + + LogFactory that owns the NLog configuration + Name of NLog.config file (optional) + NLog configuration (or null if none found) + + + + Notifies when LoggingConfiguration has been successfully applied + + LogFactory that owns the NLog configuration + NLog Config + + + + Get file paths (including filename) for the possible NLog config files. + + Name of NLog.config file (optional) + The file paths to the possible config file + + + + Level enabled flags for each LogLevel ordinal + + + + + Converts the filter into a simple + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during install/uninstall. + + Log event info object. + + + + Convert object-value into specified type + + + + + Parses the input value and converts into the wanted type + + Input Value + Wanted Type + Format to use when parsing + Culture to use when parsing + Output value with wanted type + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingRules for LoggingConfiguration + + + + + LoggingRule being built + + + + + Interface for fluent setup of target for LoggingRule + + + + + LoggingConfiguration being built + + + + + LogFactory under configuration + + + + + Collection of targets that should be written to + + + + + Interface for fluent setup of LogFactory options for extension loading + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for enabling NLog + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingConfiguration for LogFactory + + + + + LogFactory under configuration + + + + + LoggingConfiguration being built + + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for logevent serialization + + + + + LogFactory under configuration + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Encapsulates and the logic to match the actual logger name + All subclasses defines immutable objects. + Concrete subclasses defines various matching rules through + + + + + Creates a concrete based on . + + + Rules used to select the concrete implementation returned: + + if is null => returns (never matches) + if doesn't contains any '*' nor '?' => returns (matches only on case sensitive equals) + if == '*' => returns (always matches) + if doesn't contain '?' + + if contains exactly 2 '*' one at the beginning and one at the end (i.e. "*foobar*) => returns + if contains exactly 1 '*' at the beginning (i.e. "*foobar") => returns + if contains exactly 1 '*' at the end (i.e. "foobar*") => returns + + + returns + + + + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + A concrete + + + + Returns the argument passed to + + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Defines a that never matches. + Used when pattern is null + + + + + Defines a that always matches. + Used when pattern is '*' + + + + + Defines a that matches with a case-sensitive Equals + Used when pattern is a string without wildcards '?' '*' + + + + + Defines a that matches with a case-sensitive StartsWith + Used when pattern is a string like "*foobar" + + + + + Defines a that matches with a case-sensitive EndsWith + Used when pattern is a string like "foobar*" + + + + + Defines a that matches with a case-sensitive Contains + Used when pattern is a string like "*foobar*" + + + + + Defines a that matches with a complex wildcards combinations: + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + used when pattern is a string containing any number of '?' or '*' in any position + i.e. "*Server[*].Connection[?]" + + + + + Keeps logging configuration and provides simple API to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the variables defined in the configuration or assigned from API + + Name is case insensitive. + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Inserts NLog Config Variable without overriding NLog Config Variable assigned from API + + + + + Lookup NLog Config Variable Layout + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule object. + + rule object to add + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for all loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Lookup the logging rule with matching + + The name of the logging rule to be found. + Found logging rule or when not found. + + + + Removes the specified named logging rule with matching + + The name of the logging rule to be removed. + Found one or more logging rule to remove, or when not found. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Allow this new configuration to capture state from the old configuration + + Old config that is about to be replaced + Checks KeepVariablesOnReload and copies all NLog Config Variables assigned from API into the new config + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Validates the configuration. + + + + + Replace a simple variable with a value. The original value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the optional boolean attribute value. + + + Name of the attribute. + Default value to return if the attribute is not found or if there is a parse error + Boolean attribute value or default. + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Enables loading of NLog configuration from a file + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads NLog configuration from + + + + + Constructor + + + + + + Loads NLog configuration from provided config section + + + Directory where the NLog-config-file was loaded from + + + + Builds list with unique keys, using last value of duplicates. High priority keys placed first. + + + + + + + Parse loglevel, but don't throw if exception throwing is disabled + + Name of attribute for logging. + Value of parse. + Used if there is an exception + + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + + + + Parse boolean + + Name of the property for logging. + value to parse + Default value to return if the parse failed + Boolean attribute value or default. + + + + Config element that's validated and having extra context + + + + + Explicit cast because NET35 doesn't support covariance. + + + + + Arguments for . + + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + The exception during configuration reload. + + + + Gets a value indicating whether configuration reload has succeeded. + + A value of true if succeeded; otherwise, false. + + + + Gets the exception which occurred during configuration reload. + + The exception. + + + + Enables FileWatcher for the currently loaded NLog Configuration File, + and supports automatic reload on file modification. + + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or to enable logging. + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Target to be written to when the rule matches. + + + + Rule identifier to allow rule lookup + + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any following rules when this one matches. + + + + + Gets or sets the whether to quit processing any following rules when lower severity and this one matches. + + + Loggers matching will be restricted to specified minimum level for following rules. + + + + + Gets or sets logger name pattern. + + + Logger name pattern used by to check if a logger name matches this rule. + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + + + + Gets the collection of log levels enabled by this rule. + + + + + Default action if none of the filters match + + + + + Default action if none of the filters match + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to be disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + + + Checks whether the particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the . + + String to be matched. + A value of when the name matches, otherwise. + + + + Default filtering with static level config + + + + + Factory for locating methods. + + + + + Initializes a new instance of the class. + + + + + Scans the assembly for classes marked with expected class + and methods marked with expected and adds them + to the factory. + + The types to scan. + The assembly name for the type. + The item name prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Scans a type for relevant methods with their symbolic names + + Include types that are marked with this attribute + Include methods that are marked with this attribute + Class Type to scan + Collection of methods with their symbolic names + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a type-alias for an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The type-alias for use in NLog configuration. + + + + Gets the name of the type-alias + + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Failed to resolve the interface of service type + + + + + Typed we tried to resolve + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Special attribute we could ignore + + + + + Default implementation of + + + + + Singleton instance of the serializer. + + + + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Interface to register available configuration objects type + + + + + Registers instance of singleton object for use in NLog + + Type of service + Instance of service + + + + Gets the service object of the specified type. + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Registers singleton-object as implementation of specific interface. + + + If the same single-object implements multiple interfaces then it must be registered for each interface + + Type of interface + The repo + Singleton object to use for override + + + + Registers the string serializer to use with + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Initializes a new instance of the class. + + + + + Registered service type in the service repository + + + + + Initializes a new instance of the class. + + Type of service that have been registered + + + + Type of service-interface that has been registered + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + No Stack trace needs to be captured. + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers + + + + + Capture also filenames and linenumbers + + + + + Capture the location of the call + + + + + Capture the class name for location of the call + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers. + + + + + Stack trace should be captured including filenames and linenumbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + XML reader to read from. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + NLog configuration as XML string. + Name of the XML file. + The to which to apply any applicable configuration values. + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + NLog LogFactory + + + + Gets the default object by parsing + the application configuration file (app.exe.config). + + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Updates the current logical context with multiple items in single operation + + . + >An that can be used to remove the item from the current logical context (null if no items). + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwards-compatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + stores state in the async thread execution context. All LogEvents created + within a scope can include the scope state in the target output. The logical context scope supports + both scope-properties and scope-nested-state-stack (Similar to log4j2 ThreadContext) + + + (MDLC), (MDC), (NDLC) + and (NDC) have been deprecated and replaced by . + + .NetCore (and .Net46) uses AsyncLocal for handling the thread execution context. Older .NetFramework uses System.Runtime.Remoting.CallContext + + + + + Pushes new state on the logical context scope stack together with provided properties + + Value to added to the scope stack + Properties being added to the scope dictionary + A disposable object that pops the nested scope state on dispose (including properties). + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + Skips casting of to check for scope-properties + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Clears all the entire logical context scope, and removes any properties and nested-states + + + + + Retrieves all properties stored within the logical context scopes + + Collection of all properties + + + + Lookup single property stored within the logical context scopes + + Name of property + When this method returns, contains the value associated with the specified key + Returns true when value is found with the specified key + Scope dictionary keys are case-insensitive + + + + Retrieves all nested states inside the logical context scope stack + + Array of nested state objects. + + + + Peeks the top value from the logical context scope stack + + Value from the top of the stack. + + + + Peeks the inner state (newest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Peeks the outer state (oldest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Special bookmark that can restore original parent, after scopes has been collapsed + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language. + + Documentation on NLog Wiki + + + + Gets or sets the condition expression. + + + + + + + + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + + + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + + + + Matches the provided filter-method + + + + + Initializes a new instance of the class. + + + + + + + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A global logging class using caller info to find the logger. + + + + + Starts building a log event with the specified . + + The log level. + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Trace level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Debug level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Info level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Warn level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Error level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Fatal level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition delegate is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Extensions for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. When not + for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Exception level. + + The logger to write the log event to. + The exception information of the logging event. + The for the log event. Defaults to when not specified. + for chaining calls. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Interface for fakeable of the current AppDomain. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Abstract calls for the application environment + + + + + Gets current process name (excluding filename extension, if any). + + + + + Process exit event. + + + + + Abstract calls to FileSystem + + + + Determines whether the specified file exists. + The file to check. + + + Returns the content of the specified file + The file to load. + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Interface for the wrapper around System.Configuration.ConfigurationManager. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Format a log message + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Get the Raw, unformatted value without stringify + + + Implementors must has the [ThreadAgnostic] attribute + + + + + Get the raw value + + + The value + RawValue supported? + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports rendering as string value with limited or no allocations (preferred) + + + Implementors must not have the [AppDomainFixedOutput] attribute + + + + + Renders the value of layout renderer in the context of the specified log event + + + null if not possible or unknown + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Helpers for . + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Forward declare of system delegate type for use by other classes + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Memory optimized filtering + + Passing state too avoid delegate capture and memory-allocations. + + + + Ensures that IDictionary.GetEnumerator returns DictionaryEntry values + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Has property been captured from message-template ? + + + + + The properties of the logEvent + + + + + The properties extracted from the message-template + + + + + Wraps the list of message-template-parameters as IDictionary-interface + + Message-template-parameters + + + + Transforms the list of event-properties into IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The dictionary that initially contains no message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Special property-key for lookup without being case-sensitive + + + + + Property-Key equality-comparer that uses string-hashcode from OrdinalIgnoreCase + Enables case-insensitive lookup using + + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Internal configuration manager used to read .NET configuration files. + Just a wrapper around the BCL ConfigurationManager, but used to enable + unit testing. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + Target Object context of the exception. + Target Method context of the exception. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + FormatProvider that renders an exception-object as $"{ex.GetType()}: {ex.Message}" + + + + + Object construction helper. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appender is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this file-appender instance. + + + + + Closes this file-appender instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appender. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + If larger than 0 then it will be used instead of the default BufferSize for the FileStream. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the mutually-exclusive lock for archiving files. + + The mutex for archiving. + + + + + + + Creates a mutex that is sharable by more than one process. + + The prefix to use for the name of the mutex. + A object which is sharable by multiple processes. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class which creates objects. + + + + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialization as it is an + internal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Should manual simple detection of file deletion be enabled? + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Provides a multi process-safe atomic file appends while + keeping the files open. + + + On Unix you can get all the appends to be atomic, even when multiple + processes are trying to write to the same file, because setting the file + pointer to the end of the file and appending can be made one operation. + On Win32 we need to maintain some synchronization between processes + (global named mutex is used for this) + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Provides a multi process-safe atomic file append while + keeping the files open. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Creates or opens a file in a special mode, so that writes are automatically + as atomic writes at the file end. + See also "UnixMultiProcessFileAppender" which does a similar job on *nix platforms. + + File to create or open + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid file names char array to avoid memory allocation every time Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Watches multiple files at the same time and raises an event whenever + a single change is detected in any of those files. + + + + + The types of changes to watch for. + + + + + Occurs when a change is detected in one of the monitored files. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Stops watching all files. + + + + + Stops watching the specified file. + + + + + + Watches the specified files for changes. + + The file names. + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Supports mocking of SMTP Client code. + + + + + Specifies how outgoing email messages will be handled. + + + + + Gets or sets the name or IP address of the host used for SMTP transactions. + + + + + Gets or sets the port used for SMTP transactions. + + + + + Gets or sets a value that specifies the amount of time after which a synchronous Send call times out. + + + + + Gets or sets the credentials used to authenticate the sender. + + + + + Sends an e-mail message to an SMTP server for delivery. These methods block while the message is being transmitted. + + + System.Net.Mail.MailMessage + MailMessage + A MailMessage that contains the message to send. + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + The MessageFormatter delegate + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + The String Builder destination. + Parameters for the holes. + + + + Detects the platform the NLog is running on. + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Will creating a mutex succeed runtime? + + + + + Supports mocking of SMTP Client code. + + + Disabled Error CS0618 'SmtpClient' is obsolete: 'SmtpClient and its network of types are poorly designed, + we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead' + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + URL that determines the network sender to be created. + The maximum queue size. + The overflow action when reaching maximum queue size. + The maximum message size. + SSL protocols for TCP + KeepAliveTime for TCP + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes the on completion. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Initializes resources for the protocol specific implementation. + + + + + Closes resources for the protocol specific implementation. + + The continuation. + + + + Performs the flush and invokes the on completion. + + The continuation. + + + + Sends the payload using the protocol specific implementation. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + + + + Parses the URI into an IP address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + + + + A base class for network senders that can block or send out-of-order + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The host address. + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The IP address. + Implementation of to use. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Configuration Reflection Helper + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + + Object Path to check + + + + + Converts object into a List of property-names and -values using reflection + + + + + Try get value from , using , and set into + + + + + Scans properties for name (Skips string-compare and value-lookup until finding match) + + + + + Scans properties for name (Skips property value lookup until finding match) + + + + + Scans properties for name + + + + + Binder for retrieving value of + + + + + + + + Reflection helpers for accessing properties. + + + + + Get property info + + Configuration Reflection Helper + object which could have property + property name on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + Attempt to reuse the HashSet.Comparer from the original HashSet-object (Ex. StringComparer.OrdinalIgnoreCase) + + + + + Reflection helpers. + + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: https://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + Optimized delegate for calling a constructor + + Complete list of parameters that matches the constructor, including optional/default parameters. Could be null for no parameters. + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Creates an optimized delegate for calling the constructors using Expression-Trees + + Constructor to optimize + Optimized delegate for invoking the constructor + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Unknown operating system. + + + + + Unix/Linux operating systems. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Macintosh Mac OSX + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state for ScopeContext Mapped Context (MDLC) + + + + + Immutable state for ScopeContext Nested State (NDLC) + + + + + Immutable state for ScopeContext Single Property (MDLC) + + + + + Immutable state for ScopeContext Multiple Properties (MDLC) + + + + + Immutable state for ScopeContext handling legacy MDLC + NDLC operations + + + + + + + + + + + + + + Collection of targets that should be written to + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid assembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + format string. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + NLog string.Format interface + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - https://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Convert DateTime into UTC and format to yyyy-MM-ddTHH:mm:ss.fffffffZ - ISO 8601 Compliant Date Format (Round-Trip-Time) + + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle characters to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Append a numeric type (byte, int, double, decimal) as string + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Replace string with + + + + + + The same reference of nothing has been replaced. + + + Concatenates all the elements of a string array, using the specified separator between each element. + The string to use as a separator. is included in the returned string only if has more than one element. + An collection that contains the elements to concatenate. + A string that consists of the elements in delimited by the string. If is an empty array, the method returns . + + is . + + + + Split a string + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + Default action if none of the filters match. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Default action if none of the filters match. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Prevents the Xamarin linker from linking the target. + + + By applying this attribute all of the members of the target will be kept as if they had been referenced by the code. + + + + + Ensures that all members of this type are preserved + + + + + Flags the method as a method to preserve during linking if the container class is pulled in. + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Pretest, small text and not escape needed + + + + + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + XML elements must follow these naming rules: + - Element names are case-sensitive + - Element names must start with a letter or underscore + - Element names can contain letters, digits, hyphens, underscores, and periods + - Element names cannot contain spaces + + + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Check and remove unusual unicode characters from the result string. + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Interface for handling object transformation + + + + + Takes a dangerous (or massive) object and converts into a safe (or reduced) object + + + Null if unknown object, or object cannot be handled + + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the AppDomain.Id, the second the second the AppDomain.FriendlyName + This string is used in + + + + + + + + + + + + + + + Application setting. + + + Use this layout renderer to insert the value of an application setting + stored in the application's App.config or Web.config file. + + + ${appsetting:item=mysetting:default=mydefault} - produces "mydefault" if no appsetting + + + + + The AppSetting item-name + + + + + + The AppSetting item-name + + + + + The default value to render if the AppSetting value is null. + + + + + + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + + + + + + The default value to render if the Version is not available + + + + + + Gets or sets the custom format of the assembly version output. + + + Supported placeholders are 'major', 'minor', 'build' and 'revision'. + The default .NET template for version numbers is 'major.minor.build.revision'. See + https://docs.microsoft.com/en-gb/dotnet/api/system.version?view=netframework-4.7.2#remarks + for details. + + + + + + + + + + + + + + + Gets the assembly specified by , or entry assembly otherwise + + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets the product version, extracted from the additional version information. + + + + + Thread identity information (username). + + + + + Gets or sets a value indicating whether username should be included. + + + + + + Gets or sets a value indicating whether domain name should be included. + + + + + + Gets or sets the default value to be used when the User is not set. + + + + + + Gets or sets the default value to be used when the Domain is not set. + + + + + + + + + The information about the garbage collector. + + + + + Gets or sets the property to retrieve. + + + + + + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + The identifier of the current process. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + The information about the running process. + + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Marks class as layout-renderer and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + The call site source file name. Full callsite + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site (class name, method name and source information). + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + Gets or sets whether to render StackFrames in reverse order + + + + + + + + + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Get or set if empty values should be included. + + A value is empty when null or in case of a string, null or empty string. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets the keys to exclude from the output. If omitted, none are excluded. + + + + + + Enables capture of ScopeContext-properties from active thread context + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Log event context data. See . + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Gets or sets whether to perform case-sensitive property-name lookup + + + + + + + + Render a Global Diagnostics Context item. See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + + + + Render a Mapped Diagnostic Context item, See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Mapped Diagnostic Logical Context item (based on CallContext). + See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Nested Diagnostic Context item. + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + + + + Render a Nested Diagnostic Logical Context item (Async scope) + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the indent token. + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Gets or sets how to format each nested state. Ex. like JSON = @ + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Renders specified property-item from + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + When Format has not been specified, then it will render TimeSpan.TotalMilliseconds + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + A renderer that puts into log a System.Diagnostics trace correlation id. + + + + + + + + A counter value (increases on each layout rendering). + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + + + + Globally-unique identifier (GUID). + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + + + + The sequence ID + + + + + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The Ticks value of current date and time. + + + + + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + DB null for a database + + + + + + + + The current application domain's base directory. + + + + + cached + + + + + Use base dir of current process. Alternative one can just use ${processdir} + + + + + + Fallback to the base dir of current process, when AppDomain.BaseDirectory is Temp-Path (.NET Core 3 - Single File Publish) + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the base directory. + + + + + + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + + + + The directory where NLog.dll is located. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + + + + The executable directory from the FileName, + using the current process + + + + + Gets or sets the name of the file to be Path.Combine()'d with the process directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the process directory. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • CommonApplicationData - application data for all users.
  • +
  • ApplicationData - roaming application data for current user.
  • +
  • LocalApplicationData - non roaming application data for current user
  • +
  • UserProfile - Profile folder for current user
  • +
  • DesktopDirectory - Desktop-directory for current user
  • +
  • MyDocuments - My Documents-directory for current user
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + The OS dependent directory separator + + + + + + + + Render information of + for the exception passed to the logger call + + + + + Gets or sets the key to search the exception Data for + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Gets or sets whether to collapse exception tree using + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the application source of an Exception to the specified . + + The to append the rendered data to. + The Exception whose source should be appended. + + + + Appends the HResult of an Exception to the specified . + + The to append the rendered data to. + The Exception whose HResult should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Appends all the additional properties of an Exception like Data key-value-pairs + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + This public property will be removed in NLog 5. + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Render the value for this log event + + The logging event. + The value. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Thread identity information (name and authentication information). + + + + + Gets or sets the separator to be used when concatenating + parts of identity information. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.Name. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.AuthenticationType. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.IsAuthenticated. + + + + + + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Value formatter + + + + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + + + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the value of layout renderer in the context of the specified log event into . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + Renderer with callback func + + + + Resolves the interface service-type from the service-repository + + + + + Format of the ${level} layout renderer output. + + + + + Render the LogLevel standard name. + + + + + Render the first character of the level. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + Render the LogLevel full name, expanding Warn / Info abbreviations + + + + + Render the LogLevel as 3 letter abbreviations (Trc, Dbg, Inf, Wrn, Err, Ftl) + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + + + + A string literal with a fixed raw value + + + + + Initializes a new instance of the class. + + The literal text value. + + Fixed raw value + This is used by the layout compiler. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + + + + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + + + + The host name that the process is running on. + + + + + + + + Gets the host name and falls back to computer name if not available + + + + + Tries the lookup value. + + The lookup function. + Type of the lookup. + + + + + + + + The IP address from the network interface card (NIC) on the local machine + + + Skips loopback-adapters and tunnel-interfaces. Skips devices without any MAC-address + + + + + Get or set whether to prioritize IPv6 or IPv4 (default) + + + + + + + + + + + + + + + The machine name that the process is running on. + + + + + + + + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + + + + A newline literal. + + + + + + + + The identifier of the current thread. + + + + + + + + The name of the current thread. + + + + + + + + Render a NLog Configuration variable assigned from API or loaded from config-file + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Gets the configuration variable layout matching the configured Name + + Mostly relevant for the scanning of active NLog Layouts (Ex. CallSite capture) + + + + + + + Try lookup the configuration variable layout matching the configured Name + + + + + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Gets or sets a value indicating how many seconds the value should stay cached until it expires + + + + + + + + + + + + + + + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Gets or sets whether output should be encoded with Json-string escaping. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + Left part of a text + + + + + Gets or sets the length in characters. + + + + + + Same as -property, so it can be used as ambient property. + + + ${message:truncate=80} + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:tolower} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Render the non-raw value of an object. + + For performance and/or full (formatted) control of the output. + + + + Gets or sets a value indicating whether to disable the IRawValue-interface + + A value of true if IRawValue-interface should be ignored; otherwise, false. + + + + + + + + + + + Render a single property of a object + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + Shortcut for + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Lookup property-value from source object based on + + Could resolve property-value? + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + If is not found, print this layout. + + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + ${onhasproperties:, Properties\: ${all-event-properties}} + + + + + If is not found, print this layout. + + + + + + + + + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + + + + + + + + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + + + + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Right part of a text + + + + + Gets or sets the length in characters. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See https://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Substring the result + + + ${substring:${level}:start=2:length=2} + ${substring:${level}:start=-2:length=2} + ${substring:Inner=${level}:start=2:length=2} + + + + + Gets or sets the start index. + + Index + + + + + Gets or sets the length in characters. If null, then the whole string + + Index + + + + + + + + + + + Calculate start position + + 0 or positive number + + + + Calculate needed length + + 0 or positive number + + + + Trims the whitespace from the result of another layout renderer. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:toupper} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + + + + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Gets or sets whether output should be encoded with Xml-string escaping. + + Ensures always valid XML, but gives a performance hit + + + + + Gets or sets a value indicating whether to transform newlines (\r\n) into ( ) + + + + + + + + + + + + A layout containing one or more nested layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + + + + + + + + + + + + + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Gets or sets the override of Quoting mode + + + and are faster than the default + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + + + If is set, then the header generation with column names will be disabled. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + + + + + + + + + + Get the headers with the column names. + + + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + + + + + + + + + + + + + Specifies CSV quoting modes. + + + + + Quote all column (Fast) + + + + + Quote nothing (Very fast) + + + + + Quote only whose values contain the quote symbol or the separator (Slow) + + + + + A specialized layout that renders LogEvent as JSON-Array + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets the array of items to include in JSON-Array + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + + + + + + + + + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded as Json-String-Property, or be treated as valid json. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Auto indent and create new lines + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to exclude null/empty properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + + + + + + + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of .' + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + Whether should be thrown on parse errors (false = replace unrecognized tokens with a space). + Instance of . + + + + Create a from a lambda method. + + Method that renders the layout. + Tell if method is safe for concurrent threading. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doesn't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders formatted output using the log event as context. + + Inside a , is preferred for performance reasons. + The logging event. + The formatted output as string. + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the formatted output to target + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + The rendered layout. + + + + Renders formatted output using the log event as context. + + The logging event. + Appends the formatted output to target + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders formatted output using the log event as context. + + The logging event. + The formatted output. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Try get value + + + rawValue if return result is true + false if we could not determine the rawValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur + + + + Marks class as Layout and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The Layout type-alias for use in NLog configuration. + + + + Parses layout strings. + + + + + Add to + + + + + + + Options available for + + + + + Default options + + + + + Layout renderer method can handle concurrent threads + + + + + Layout renderer method is agnostic to current thread context. This means it will render the same result independent of thread-context. + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + + + + + + + A specialized layout that renders Log4j-compatible XML events. + + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + + + + + + + Represents a string with embedded placeholders that can render contextual information. + + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + Whether should be thrown on parse errors. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Is the message a simple formatted string? (Can skip StringBuilder) + + + + + Gets a collection of objects that make up this layout. + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + + + + + + + + + + + + + + + + + + + Typed Layout for easy conversion from NLog Layout logic to a simple value (ex. integer or enum) + + + + + + Is fixed value? + + + + + Fixed value + + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + Format used for parsing string-value into result value type + Culture used for parsing string-value into result value type + + + + Initializes a new instance of the class. + + Fixed value + + + + Render Value + + Log event for rendering + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Renders the value and converts the value into string format + + + Only to implement abstract method from , and only used when calling + + + + + + + + + + + + + + + + + + + + + + + Implements Equals using + + + + + + + + Converts a given value to a . + + Text to be converted. + + + + Converts a given text to a . + + Text to be converted. + + + + Implements the operator == using + + + + + Implements the operator != using + + + + + Provides access to untyped value without knowing underlying generic type + + + + + Typed Value that is easily configured from NLog.config file + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout that will render the result value + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets the fallback value should be null (instead of default value of ) when result value is not available + + + + + + Gets or sets format used for parsing parameter string-value for type-conversion + + + + + + Gets or sets the culture used for parsing parameter string-value for type-conversion + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + XML attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with xml-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-attribute-value + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A XML Element + + + + + + + + + + + Name of the element + + + + + + Value inside the element + + + + + + Value inside the element + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-element-value + + + + + + A specialized layout that renders XML-formatted events. + + + + + Initializes a new instance of the class. + + The name of the top XML node + The value of the top XML node + + + + Name of the XML element + + Upgrade to private protected when using C# 7.2 + + + + Value inside the XML element + + Upgrade to private protected when using C# 7.2 + + + + Auto indent and create new lines + + + + + + Gets the array of xml 'elements' configurations. + + + + + + Gets the array of 'attributes' configurations for the element + + + + + + Gets or sets whether a ElementValue with empty value should be included in the output + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + List of property names to exclude when is true + + + + + + XML element name to use when rendering properties + + + Support string-format where {0} means property-key-name + + Skips closing element tag when having configured + + + + + + XML attribute name to use when rendering property-key + + When null (or empty) then key-attribute is not included + + + Will replace newlines in attribute-value with + + + + + + XML attribute name to use when rendering property-value + + When null (or empty) then value-attribute is not included and + value is formatted as XML-element-value + + + Skips closing element tag when using attribute for value + + Will replace newlines in attribute-value with + + + + + + XML element name to use for rendering IList-collections items + + + + + + How far should the XML serializer follow object references before backing off + + + + + + + + + + + + + + + write attribute, only if is not empty + + + + + rendered + + + + + + + A specialized layout that renders XML-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + + + + Name of the root XML element + + + + + + Value inside the root XML element + + + + + + Determines whether or not this attribute will be Xml encoded. + + + + + + Extensions for NLog . + + + + + Renders the logevent into a result-value by using the provided layout + + Inside a , is preferred for performance reasons. + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + A fluent builder for logging events to NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The log level. LogEvent is only created when is enabled for + + + + The logger to write the log event to + + + + + Logging event that will be written + + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + + + + Sets the information of the logging event. + + The exception information of the logging event. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + + + + Sets the log message on the logging event. + + A to be written. + + + + Sets the log message and parameters for formatting for the logging event. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + A containing format items. + The first argument to format. + The second argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing format items. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + A containing format items. + Arguments to format. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the log event to the underlying logger. + + The class of the caller to the method. This is captured by the NLog engine when necessary + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + The log level. Optional but when assigned to then it will discard the LogEvent. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + Type of custom Logger wrapper. + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + Already parsed message template parameters. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message. + List of event-properties + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace (Negative means NLog should skip stackframes from System-assemblies). + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Specialized LogFactory that can return instances of custom logger types. + + Use this only when a custom Logger type is defined. + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the full name of the current class (so namespace and class name) and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Initializes static members of the LogManager class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Initializes a new instance of the class. + + The config loader + The custom AppEnvironmnet override + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + The logger with type . + Type of the logger + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The type of the logger to create. The type must inherit from + The logger of type . + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flushes any pending log messages on all appenders. + + Config containing Targets to Flush + Flush completed notification (success / timeout) + Optional timeout that guarantees that completed notification is called. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Raises the event when the configuration is reloaded. + + Event arguments + + + + Currently this is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Dispose all targets, and shutdown logging. + + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the candidates paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Loops through all cached loggers and removes dangling loggers that have been garbage collected. + + + + + Internal for unit tests + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Collection of context properties for the Logger. The logger will append it for all log events + + + It is recommended to use for modifying context properties + when same named logger is used at multiple locations or shared by different thread contexts. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Creates new logger that automatically appends the specified property to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Property Name + Property Value + New Logger object that automatically appends specified property + + + + Creates new logger that automatically appends the specified properties to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Collection of key-value pair properties + New Logger object that automatically appends specified properties + + + + Updates the specified context property for the current logger. The logger will append it for all log events. + + With property, all properties can be enumerated (or updated). + + + It is highly recommended to ONLY use for modifying context properties. + This method will affect all locations/contexts that makes use of the same named logger object. And can cause + unexpected surprises at multiple locations and other thread contexts. + + Property Name + Property Value + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Gets the filter result. + + The filter chain. + The log event. + default result if there are no filters, or none of the filters decides. + The result of the filter. + + + + Defines available log levels. + + + Log levels ordered by severity:
+ - (Ordinal = 0) : Most verbose level. Used for development and seldom enabled in production.
+ - (Ordinal = 1) : Debugging the application behavior from internal events of interest.
+ - (Ordinal = 2) : Information that highlights progress or application lifetime events.
+ - (Ordinal = 3) : Warnings about validation issues or temporary failures that can be recovered.
+ - (Ordinal = 4) : Errors where functionality has failed or have been caught.
+ - (Ordinal = 5) : Most critical level. Application is about to abort.
+
+
+ + + Trace log level (Ordinal = 0) + + + Most verbose level. Used for development and seldom enabled in production. + + + + + Debug log level (Ordinal = 1) + + + Debugging the application behavior from internal events of interest. + + + + + Info log level (Ordinal = 2) + + + Information that highlights progress or application lifetime events. + + + + + Warn log level (Ordinal = 3) + + + Warnings about validation issues or temporary failures that can be recovered. + + + + + Error log level (Ordinal = 4) + + + Errors where functionality has failed or have been caught. + + + + + Fatal log level (Ordinal = 5) + + + Most critical level. Application is about to abort. + + + + + Off log level (Ordinal = 6) + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + + + + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + LogManager wraps a singleton instance of . + + + + + Internal for unit tests + + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The logger class. This class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The logger class. This class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Convert, Render or serialize a value, with optionally backwards-compatible with + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serializing a scalar (string, int, NULL) or simple type (IFormattable) + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + format string of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + TraceListener which routes all messages through NLog. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the log factory to use when outputting messages (null - use LogManager). + + + + + Gets or sets the default log level. + + + + + Gets or sets the log which should be always used regardless of source level. + + + + + Gets or sets a value indicating whether flush calls from trace sources should be ignored. + + + + + Gets a value indicating whether the trace listener is thread safe. + + + true if the trace listener is thread safe; otherwise, false. The default is false. + + + + Gets or sets a value indicating whether to use auto logger name detected from the stack trace. + + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message to write. + + + + When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. + + A message to write. + + + + When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output. + + + + + Emits an error message. + + A message to emit. + + + + Emits an error message and a detailed error message. + + A message to emit. + A detailed message to emit. + + + + Flushes the output (if is not true) buffer with the default timeout of 15 seconds. + + + + + Writes trace information, a data object and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace data to emit. + + + + Writes trace information, an array of data objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of objects to emit as data. + + + + Writes trace and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + + + + Writes trace information, a formatted array of objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + + + Writes trace information, a message, and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A message to write. + + + + Writes trace information, a message, a related activity identity and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + A numeric identifier for the event. + A message to write. + A object identifying a related activity. + + + + Gets the custom attributes supported by the trace listener. + + + A string array naming the custom attributes supported by the trace listener, or null if there are no custom attributes. + + + + + Translates the event type to level from . + + Type of the event. + Translated log level. + + + + Process the log event + The log level. + The name of the logger. + The log message. + The log parameters. + The event id. + The event type. + The related activity id. + + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Extension methods to setup LogFactory options + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + + + + Gets the specified named logger. + + + + + Configures general options for NLog LogFactory before loading NLog config + + + + + Configures loading of NLog extensions for Targets and LayoutRenderers + + + + + Configures the output of NLog for diagnostics / troubleshooting + + + + + Configures serialization and transformation of LogEvents + + + + + Loads NLog config created by the method + + + + + Loads NLog config provided in + + + + + Loads NLog config from filename if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Explicit configuration file to be read (Default NLog.config from candidates paths) + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from file-paths if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Candidates file paths (including filename) where to scan for NLog config files + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from XML in + + + + + Loads NLog config located in embedded resource from main application assembly. + + Fluent interface parameter. + Assembly for the main Application project with embedded resource + Name of the manifest resource for NLog config XML + + + + Reloads the current logging configuration and activates it + + Logevents produced during the configuration-reload can become lost, as targets are unavailable while closing and initializing. + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Registers NLog extensions from the assembly. + + + + + Registers NLog extensions from the assembly type name + + + + + Register a custom NLog Configuration Type. + + Type of the NLog configuration item + Fluent interface parameter. + + + + Register a custom NLog Target. + + Type of the Target. + Fluent interface parameter. + The target type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Target. + + Type of the Target. + Fluent interface parameter. + The factory method for creating instance of NLog Target + The target type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Target. + + Fluent interface parameter. + Type name of the Target + The target type-alias for use in NLog configuration + + + + Register a custom NLog Layout. + + Type of the layout renderer. + Fluent interface parameter. + The layout type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Layout. + + Type of the layout renderer. + Fluent interface parameter. + The factory method for creating instance of NLog Layout + The layout type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Layout. + + Fluent interface parameter. + Type of the layout. + The layout type-alias for use in NLog configuration + + + + Register a custom NLog LayoutRenderer. + + Type of the layout renderer. + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }'. Will extract from class-attribute when unassigned. + + + + Register a custom NLog LayoutRenderer. + + Type of the layout renderer. + Fluent interface parameter. + The factory method for creating instance of NLog LayoutRenderer + The layout-renderer type-alias for use in NLog configuration - without '${ }'. Will extract from class-attribute when unassigned. + + + + Register a custom NLog LayoutRenderer. + + Fluent interface parameter. + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function + + Fluent interface parameter. + LayoutRenderer instance with type-alias and callback-method. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + MethodInfo extracted by reflection - typeof(MyClass).GetMethod("MyFunc", BindingFlags.Static). + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register (or replaces) singleton-object for the specified service-type + + Service interface type + Fluent interface parameter. + Implementation of interface. + + + + Register (or replaces) singleton-object for the specified service-type + + Fluent interface parameter. + Service interface type. + Implementation of interface. + + + + Register (or replaces) external service-repository for resolving dependency injection + + Fluent interface parameter. + External dependency injection repository + + + + Extension methods to setup NLog options + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configure the InternalLogger properties from Environment-variables and App.config using + + + Recognizes the following environment-variables: + + - NLOG_INTERNAL_LOG_LEVEL + - NLOG_INTERNAL_LOG_FILE + - NLOG_INTERNAL_LOG_TO_CONSOLE + - NLOG_INTERNAL_LOG_TO_CONSOLE_ERROR + - NLOG_INTERNAL_LOG_TO_TRACE + - NLOG_INTERNAL_INCLUDE_TIMESTAMP + + Legacy .NetFramework platform will also recognizes the following app.config settings: + + - nlog.internalLogLevel + - nlog.internalLogFile + - nlog.internalLogToConsole + - nlog.internalLogToConsoleError + - nlog.internalLogToTrace + - nlog.internalLogIncludeTimestamp + + + + + Extension methods to setup NLog + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Logger name pattern to check which names matches this rule + Rule identifier to allow rule lookup + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Restrict minimum LogLevel for names that matches this rule + Logger name pattern to check which names matches this rule + Rule identifier to allow rule lookup + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Override the name for the target created + + + + Apply fast filtering based on . Include LogEvents with same or worse severity as . + + Fluent interface parameter. + Minimum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with same or less severity as . + + Fluent interface parameter. + Maximum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity that equals . + + Fluent interface parameter. + Single loglevel that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity between and . + + Fluent interface parameter. + Minimum level that this rule matches + Maximum level that this rule matches + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Filter for controlling whether to write + Default action if none of the filters match + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + Default action if none of the filters match + + + + Dynamic filtering of LogEvent, where it will be ignored when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will on match also be ignored by following logging-rules + + + + Dynamic filtering of LogEvent, where it will be logged when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will not be evaluated by following logging-rules + + + + Move the to the top, to match before any of the existing + + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Discard output from matching , so it will not reach any following . + + Fluent interface parameter. + Only discard output from matching Logger when below minimum LogLevel + + + + Returns first target registered + + + + + Returns first target registered with the specified type + + Type of target + + + + Write to + + Fluent interface parameter. + Method to call on logevent + Layouts to render object[]-args before calling + + + + Write to + + Fluent interface parameter. + Override the default Layout for output + Override the default Encoding for output (Ex. UTF8) + Write to stderr instead of standard output (stdout) + Skip overhead from writing to console, when not available (Ex. running as Windows Service) + Enable batch writing of logevents, instead of Console.WriteLine for each logevent (Requires ) + + + + Write to + + + Override the default Layout for output + Force use independent of + + + + Write to + + + Override the default Layout for output + + + + Write to (when DEBUG-build) + + + Override the default Layout for output + + + + Write to + + Fluent interface parameter. + + Override the default Layout for output + Override the default Encoding for output (Default = UTF8) + Override the default line ending characters (Ex. without CR) + Keep log file open instead of opening and closing it on each logging event + Activate multi-process synchronization using global mutex on the operating system + Size in bytes where log files will be automatically archived. + Maximum number of archive files that should be kept. + Maximum days of archive files that should be kept. + + + + Applies target wrapper for existing + + Fluent interface parameter. + Factory method for creating target-wrapper + + + + Applies for existing for asynchronous background writing + + Fluent interface parameter. + Action to take when queue overflows + Queue size limit for pending logevents + Batch size when writing on the background thread + + + + Applies for existing for throttled writing + + Fluent interface parameter. + Buffer size limit for pending logevents + Timeout for when the buffer will flush automatically using background thread + Restart timeout when logevent is written + Action to take when buffer overflows + + + + Applies for existing for flushing after conditional event + + Fluent interface parameter. + Method delegate that controls whether logevent should force flush. + Only flush when triggers (Ignore config-reload and config-shutdown) + + + + Applies for existing for retrying after failure + + Fluent interface parameter. + Number of retries that should be attempted on the wrapped target in case of a failure. + Time to wait between retries + + + + Applies for existing to fallback on failure. + + Fluent interface parameter. + Target to use for fallback + Whether to return to the first target after any successful write + + + + Extension methods to setup general option before loading NLog LoggingConfiguration + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Configures the global time-source used for all logevents to use + + + + + Configures the global time-source used for all logevents to use + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Sets whether to automatically call on AppDomain.Unload or AppDomain.ProcessExit + + + + + Sets the default culture info to use as . + + + + + Sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets a value indicating whether should be thrown on configuration errors + + + + + Mark Assembly as hidden, so Assembly methods are excluded when resolving ${callsite} from StackTrace + + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Overrides the active with a new custom implementation + + + + + Overrides the active with a new custom implementation + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : AsyncTaskTarget + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private async Task SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + How many milliseconds to delay the actual write operation to optimize for batching + + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + + How many attempts to retry the same Task, before it is aborted + + + + + + How many milliseconds to wait before next retry (will double with each retry) + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + + + + Override this to provide async task for writing a single logevent. + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Override this to provide async task for writing a batch of logevents. + + A batch of logevents. + The cancellation token + + + + + Handle cleanup after failed write operation + + Exception from previous failed Task + The cancellation token + Number of retries remaining + Time to sleep before retrying + Should attempt retry + + + + Block for override. Instead override + + + + + Block for override. Instead override + + + + + + + + Write to queue without locking + + + + + + Block for override. Instead override + + + + + LogEvent is written to target, but target failed to successfully initialize + + Enqueue logevent for later processing when target failed to initialize because of unresolved service dependency. + + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation between task-completion and timeout + Signals whether previousTask completed an almost full BatchSize + + + + Generates recursive task-chain to perform retry of writing logevents with increasing retry-delay + + + + + Creates new task to handle the writing of the input + + LogEvents to write + New Task created [true / false] + + + + Handles that scheduled task has completed (successfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Color formatting for using ANSI Color Codes + + + + + Not using bold to get light colors, as it has to be cleared + + + + + Not using bold to get light colors, as it has to be cleared (And because it only works for text, and not background) + + + + + Resets both foreground and background color. + + + + + ANSI have 8 color-codes (30-37) by default. The "bright" (or "intense") color-codes (90-97) are extended values not supported by all terminals + + + + + Color formatting for using + and + + + + + Writes log messages to the console with customizable coloring. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to use default row highlighting rules. + + + The default rules are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionForeground ColorBackground Color
level == LogLevel.FatalRedNoChange
level == LogLevel.ErrorYellowNoChange
level == LogLevel.WarnMagentaNoChange
level == LogLevel.InfoWhiteNoChange
level == LogLevel.DebugGrayNoChange
level == LogLevel.TraceDarkGrayNoChange
+
+ +
+ + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available. + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-check if the console has been redirected to file + - Disables coloring logic when System.Console.IsOutputRedirected = true + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Enables output using ANSI Color Codes + + + + + + Gets the row highlighting rules. + + + + + + Gets the word highlighting rules. + + + + + + + + + + + + + + + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Gets or sets whether to activate internal buffering to allow batch writing, instead of using + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + + + + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Gets or sets the condition that must be met before scanning the row for highlight of words + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + Outputs log messages through + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Outputs the rendered logging event through + + The logging event. + + + + Mock target - useful for testing. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialization options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized successfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + all options + JSON escaped string + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ASCII characters be encoded + + JSON escaped string + + + + Writes log message to the Event Log. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Max size in characters (limitation of the EventLog API). + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the machine on which Event Log service is running. + + + + + + Gets or sets the layout that renders event ID. + + + + + + Gets or sets the layout that renders event Category. + + + + + + Optional entry type. When not set, or when not convertible to then determined by + + + + + + Gets or sets the value to be used as the event Source. + + + By default this is the friendly name of the current AppDomain. + + + + + + Gets or sets the name of the Event Log to write to. This can be System, Application or any user-defined name. + + + + + + Gets or sets the message length limit to write to the Event Log. + + MaxMessageLength cannot be zero or negative + + + + + Gets or sets the maximum Event log size in kilobytes. + + + MaxKilobytes cannot be less than 64 or greater than 4194240 or not a multiple of 64. + If null, the value will not be specified while creating the Event log. + + + + + + Gets or sets the action to take if the message is larger than the option. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + + + + + + + Get the entry type for logging the message. + + The logging event - for rendering the + + + + Get the source, if and only if the source is fixed. + + null when not + Internal for unit tests + + + + (re-)create an event source, if it isn't there. Works only with fixed source names. + + The source name. If source is not fixed (see , then pass null or . + always throw an Exception when there is an error + + + + A wrapper for Windows event log. + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + Indicates whether an event log instance is associated. + + + + + A wrapper for the method . + + + + + Creates a new association with an instance of the event log. + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + The implementation of , that uses Windows . + + + + + Creates a new association with an instance of Windows . + + + + + Action that should be taken if the message is greater than + the max message size allowed by the Event Log. + + + + + Truncate the message before writing to the Event Log. + + + + + Split the message and write multiple entries to the Event Log. + + + + + Discard of the message. It will not be written to the Event Log. + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The beginning position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. + + When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Default clean up period of the initialized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + This value disables file archiving based on the size. + + + + + Holds the initialized files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialized files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The maximum days of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + KeepFileOpen = true gives the best performance, and ensure the file-lock is not lost to other applications.
+ KeepFileOpen = false gives the best compability, but slow performance and lead to file-locking issues with other applications. +
+ +
+ + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. Zero or negative means disabled. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. Zero or negative means disabled. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files. + + Defaults to true for UTF-16 and UTF-32 + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value of the file size threshold to archive old log file on startup. + + + This option won't work if is set to false + Default value is 0 which means that the file is archived as soon as archival on + startup is enabled. + + + + + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + + Notice when combined with then it will attempt to append to any existing + archive file if grown above size multiple times. New archive file will be created when using + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the maximum days of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether file creation calls should be synchronized by a system global mutex. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occurring day of the week to return a DateTime for. + The DateTime of the next occurring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Closes any active file-appenders that matches the input filenames. + File-appender is requested to invalidate/close its filehandle, but keeping its archive-mutex alive + + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Check if archive operation should check previous filename, because FileAppenderCache tells us current filename no longer exists + + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialize a file to be used by the instance. Based on the number of initialized + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Decision logic whether to archive logfile on startup. + and properties. + + File name to be written. + Decision whether to archive or not. + + + + Invokes the archiving and clean up of older archive file based on the values of + and + properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formatting and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + The name of the file inside the archive. + + + + Controls the text and color formatting for + + + + + Creates a TextWriter for the console to start building a colored text message + + Active console stream + Optional StringBuilder to optimize performance + TextWriter for the console + + + + Releases the TextWriter for the console after having built a colored text message (Restores console colors) + + Colored TextWriter + Active console stream + Original foreground color for console (If changed) + Original background color for console (If changed) + Flush TextWriter + + + + Changes foreground color for the Colored TextWriter + + Colored TextWriter + New foreground color for the console + Old previous backgroundColor color for the console + Old foreground color for the console + + + + Changes backgroundColor color for the Colored TextWriter + + Colored TextWriter + New backgroundColor color for the console + Old previous backgroundColor color for the console + Old backgroundColor color for the console + + + + Restores console colors back to their original state + + Colored TextWriter + Original foregroundColor color for the console + Original backgroundColor color for the console + + + + Writes multiple characters to console in one operation (faster) + + Colored TextWriter + Output Text + Start Index + End Index + + + + Writes single character to console + + Colored TextWriter + Output Text + + + + Writes whole string and completes with newline + + Colored TextWriter + Output Text + + + + Default row highlight rules for the console printer + + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Options for JSON serialization + + + + + Add quotes around object keys? + + + + + Format provider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Insert null terminator (ASCII 0) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + + + + + + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + + + + + + + Sends log messages by email using SMTP protocol. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ Mail target works best when used with BufferingWrapper target + which lets you send multiple log messages in single mail +

+

+ To set up the buffered mail target in the configuration file, + use the following syntax: +

+ +

+ To set up the buffered mail target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the mailSettings/smtp configuration from app.config in cases when we need those configuration. + E.g when UseSystemNetMailSettings is enabled and we need to read the From attribute from system.net/mailSettings/smtp + + Internal for mocking + + + + Gets or sets sender's email address (e.g. joe@domain.com). + + + + + + Gets or sets recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets a value indicating whether to add new lines between log entries. + + A value of true if new lines should be added; otherwise, false. + + + + + Gets or sets the mail subject. + + + + + + Gets or sets mail message body (repeated for each log message send in one mail). + + Alias for the Layout property. + + + + + Gets or sets encoding to be used for sending e-mail. + + + + + + Gets or sets a value indicating whether to send message as HTML instead of plain text. + + + + + + Gets or sets SMTP Server to be used for sending. + + + + + + Gets or sets SMTP Authentication mode. + + + + + + Gets or sets the username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets the password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets a value indicating whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + . + + + + Gets or sets the port number that SMTP Server is listening on. + + + + + + Gets or sets a value indicating whether the default Settings from System.Net.MailSettings should be used. + + + + + + Specifies how outgoing email messages will be handled. + + + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + + Gets or sets the priority used for sending mails. + + + + + + Gets or sets a value indicating whether NewLine characters in the body should be replaced with
tags. +
+ Only happens when is set to true. + +
+ + + Gets or sets a value indicating the SMTP client timeout. + + Warning: zero is not infinite waiting + + + + + Gets the array of email headers that are transmitted with this email message + + + + + + + + + + + + + + + Create mail and send with SMTP + + event printed in the body of the event + + + + Create buffer for body + + all events + first event for header + last event for footer + + + + + Set properties of + + last event for username/password + client to set properties on + Configure not at , as the properties could have layout renderers. + + + + Handle if it is a virtual directory. + + + + + + + Create key for grouping. Needed for multiple events in one mail message + + event for rendering layouts + string to group on + + + + Create the mail message with the addresses, properties and body. + + + + + Render and add the addresses to + + Addresses appended to this list + layout with addresses, ; separated + event for rendering the + added a address? + + + + Writes log messages to in memory for programmatic retrieval. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Gets or sets the max number of items to have in memory + + + + + + + + + + + + Renders the logging event message and adds to + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Arguments for events. + + + + + + + + + + + + + + + + + Creates new instance of NetworkTargetLogEventDroppedEventArgs + + + + + The reason why log was dropped + + + + + The reason why log event was dropped by + + + + + Discarded LogEvent because message is bigger than + + + + + Discarded LogEvent because message queue was bigger than + + + + + Discarded LogEvent because attempted to open more than connections + + + + + Discarded LogEvent because of network communication error + + + + + Sends log messages over the network. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6)
  • +
  • tcp4://host:port - force TCP/IPv4
  • +
  • tcp6://host:port - force TCP/IPv6
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6)
  • +
  • udp4://host:port - force UDP/IPv4
  • +
  • udp6://host:port - force UDP/IPv6
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. On limit breach then action is activated. + + + + + + Gets or sets the maximum simultaneous connections. Requires = false + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more connections than . + + + + + + Gets or sets the maximum queue size for a single connection. Requires = true + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more pending messages than . + + + + + + Occurs when LogEvent has been dropped. + + + - When internal queue is full and set to
+ - When connection-list is full and set to
+ - When message is too big and set to
+
+
+ + + Gets or sets the size of the connection cache (number of connections which are kept alive). Requires = true + + + + + + Gets or sets the action that should be taken if the message is larger than + + + For TCP sockets then means no-limit, as TCP sockets + performs splitting automatically. + + For UDP Network sender then means splitting the message + into smaller chunks. This can be useful on networks using DontFragment, which drops network packages + larger than MTU-size (1472 bytes). + + + + + + Gets or sets the encoding to be used. + + + + + + Gets or sets the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP. + + + + + + The number of seconds a connection will remain idle before the first keep-alive probe is sent + + + + + + Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes. + + + + + Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + Type of compression for protocol payload + + + + + No compression + + + + + GZip optimal compression + + + + + GZip fastest compression + + + + + The action to be taken when there are more connections then the max. + + + + + Allow new connections when reaching max connection limit + + + + + Just allow it. + + + + + Discard new messages when reaching max connection limit + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. Only relevant for UDP sockets, as TCP sockets does it automatically. + + + Udp-Network-Sender will split the message into smaller chunks that matches . + This can avoid network-package-drop when network uses DontFragment and message is larger than MTU-size (1472 bytes). + + + + + Discard the entire message. + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + Sends log messages to the remote instance of NLog Viewer. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the separator for operation-states-stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + SMTP authentication modes. + + + + + No authentication. + + + + + Basic - username and password. + + + + + NTLM Authentication. + + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + NLog Layout are by default threadsafe, so multiple threads can be rendering logevents at the same time. + This ensure high concurrency with no lock-congestion for the application-threads, especially when using + or AsyncTaskTarget. + + But if using custom or that are not + threadsafe, then this option can enabled to protect against thread-concurrency-issues. Allowing one + to update to NLog 5.0 without having to fix custom/external layout-dependencies. + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + LogEvent is written to target, but target failed to successfully initialize + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target before writing starts + + + + + Closes the target to release any initialized resources + + + + + Flush any pending log messages + + The asynchronous continuation parameter must be called on flush completed + The asynchronous continuation to be called on flush completed. + + + + Writes logging event to the target destination + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the logevent into a string-result using the provided layout + + The layout. + The logevent info. + String representing log event. + + + + Renders the logevent into a result-value by using the provided layout + + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Should the exception be rethrown? + + Upgrade to private protected when using C# 7.2 + + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Marks class as logging target and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The target type-alias for use in NLog configuration. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the type of the property. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Represents target that supports context capture of Properties + Nested-states + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : TargetWithContext + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override void Write(LogEventInfo logEvent) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private void SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + List of property names to exclude when is true + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Optional prefilled dictionary + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Creates combined dictionary of all configured properties for logEvent + + + Optional prefilled dictionary + Dictionary with all collected properties for logEvent + + + + Generates a new unique name, when duplicate names are detected + + LogEvent that triggered the duplicate name + Duplicate item name + Item Value + Dictionary of context values + New (unique) value (or null to skip value). If the same value is used then the item will be overwritten + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of dictionary for the + + + Dictionary with ScopeContext properties if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDC context if any, else null + + + + Returns the captured snapshot of nested states from for the + + + Collection of nested state objects if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Takes snapshot of dictionary for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with ScopeContext properties if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from dictionary + + Log event + ScopeContext Dictionary key + ScopeContext Dictionary value + Snapshot of ScopeContext property-value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of nested states from for the + + + Collection with stack items if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from nested states + + Log event + nested state value + Snapshot of stack item value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of properties-dictionary + + + Internal Layout that allows capture of nested-states-stack + + + + Represents target that supports string formatting using layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the layout used to format log messages. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the text to be rendered. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Force use independent of + + + + + + Forward to (Instead of ) + + + Trace.Fail can have special side-effects, and give fatal exceptions, message dialogs or Environment.FailFast + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + + See NLog Wiki + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the value of the User-agent HTTP header. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + Changing ProxyType on Net5 (or newer) will turn off Http-connection-pooling + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + + + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + Write from input to output. Fix the UTF-8 bom + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see https://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Occurs when LogEvent has been dropped, because internal queue is full and set to + + + + + Occurs when internal queue size is growing, because internal queue is full and set to + + + + + Raise event when queued element was dropped because of queue overflow + + Dropped queue item + + + + Raise event when RequestCount overflow + + current requests count + + + + Provides asynchronous, buffered execution of target writes. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queuing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. (1 or less means trigger on new activity) + + + + + + Occurs when LogEvent has been dropped, because internal queue is full and set to + + + + + Occurs when internal queue size is growing, because internal queue is full and set to + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of batches of to write before yielding into + + + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + + + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent satisfies the . + If condition isn't set, flushes on each write. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + If not explicitly set, then disabled by default for and AsyncTaskTarget + + + + + + Only flush when LogEvent matches condition. Ignore explicit-flush, config-reload-flush and shutdown-flush + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The action to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + + + + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Concurrent Asynchronous request queue based on + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + Only for debugging purposes + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides fallback-on-error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + Gets or sets whether to enable batching, but fallback will be handled individually + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Gets or sets the filter. Log events who evaluates to will be discarded + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Identifier to perform group-by + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + Group by identifier. + + + + + + + + + + Limits the number of messages written per timespan to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + LogEvent that have been dropped + + + + Instance of that was dropped by + + + + + Raises by when + queue is full + and set to + By default queue doubles it size. + + + + + Initializes a new instance of the class. + + Required queue size + Current queue size + + + + New queue size + + + + + Current requests count + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + + See NLog Wiki + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Evaluate all the rules to get the filtering condition + + + + + + + Sends log messages to a randomly selected target. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Gets or sets whether to enable batching, and only apply single delay when a whole batch fails + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + + + + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Builtin IFileCompressor implementation utilizing the .Net4.5 specific + and is used as the default value for on .Net4.5. + So log files created via can be zipped when archived + w/o 3rd party zip library when run on .Net4.5 or higher. + + + + + Implements using the .Net4.5 specific + + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + The Time type-alias for use in NLog configuration. + + + + Indicates that the value of the marked element could be null sometimes, + so checking for null is required before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element can never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + public void Foo([ItemNotNull]List<string> books) + { + foreach (var book in books) { + if (book != null) // Warning: Expression is always true + Console.WriteLine(book.ToUpper()); + } + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + public void Foo([ItemCanBeNull]List<string> books) + { + foreach (var book in books) + { + // Warning: Possible 'System.NullReferenceException' + Console.WriteLine(book.ToUpper()); + } + } + + + + + Indicates that the marked method builds string by the format pattern and (optional) arguments. + The parameter, which contains the format string, should be given in the constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as the format string + + + + + Indicates that the marked parameter is a message template where placeholders are to be replaced by the following arguments + in the order in which they appear + + + void LogInfo([StructuredMessageTemplate]string message, params object[] args) { /* do something */ } + + void Foo() { + LogInfo("User created: {username}"); // Warning: Non-existing argument in format string + } + + + + + Use this annotation to specify a type that contains static or const fields + with values for the annotated property/field/parameter. + The specified type will be used to improve completion suggestions. + + + namespace TestNamespace + { + public class Constants + { + public static int INT_CONST = 1; + public const string STRING_CONST = "1"; + } + + public class Class1 + { + [ValueProvider("TestNamespace.Constants")] public int myField; + public void Foo([ValueProvider("TestNamespace.Constants")] string str) { } + + public void Test() + { + Foo(/*try completion here*/);// + myField = /*try completion here*/ + } + } + } + + + + + Indicates that the integral value falls into the specified interval. + It's allowed to specify multiple non-intersecting intervals. + Values of interval boundaries are inclusive. + + + void Foo([ValueRange(0, 100)] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the integral value never falls below zero. + + + void Foo([NonNegativeValue] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the function argument should be a string literal and match + one of the parameters of the caller function. This annotation is used for parameters + like 'string paramName' parameter of the constructor. + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If the method has a single input parameter, its name could be omitted.
+ Using halt (or void/nothing, which is the same) for the method output + means that the method doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by the semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by the analysis engine.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("null <= param:null")] // reverse condition syntax + public string GetName(string surname) + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates whether the marked element should be localized. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will be ignored by usage-checking inspections.
+ You can use and + to configure how this attribute is applied. +
+ + [UsedImplicitly] + public class TypeConverter {} + + public class SummaryData + { + [UsedImplicitly(ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature)] + public SummaryData() {} + } + + [UsedImplicitly(ImplicitUseTargetFlags.WithInheritors | ImplicitUseTargetFlags.Default)] + public interface IService {} + +
+ + + Can be applied to attributes, type parameters, and parameters of a type assignable from . + When applied to an attribute, the decorated attribute behaves the same as . + When applied to a type parameter or to a parameter of type , + indicates that the corresponding type is used implicitly. + + + + + Specifies the details of implicitly used symbol when it is marked + with or . + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specifies what is considered to be used implicitly when marked + with or . + + + + Members of the type marked with the attribute are considered used. + + + Inherited entities are considered used. + + + Entity marked with the attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API, + which should not be removed and so is treated as used. + + + + + Tells the code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate can only be invoked during method execution + (the delegate can be invoked zero or multiple times, but not stored to some field and invoked later, + when the containing method is no longer on the execution stack). + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + If is true, the attribute will only takes effect if the method invocation is located under the 'await' expression. + + + + + Require the method invocation to be used under the 'await' expression for this attribute to take effect on code analysis engine. + Can be used for delegate/enumerable parameters of 'async' methods. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Warning: Return value of pure method is not used + } + + + + + Indicates that the return value of the method invocation must be used. + + + Methods decorated with this attribute (in contrast to pure methods) might change state, + but make no sense without using their return value.
+ Similarly to , this attribute + will help to detect usages of the method when the return value is not used. + Optionally, you can specify a message to use when showing warnings, e.g. + [MustUseReturnValue("Use the return value to...")]. +
+
+ + + This annotation allows to enforce allocation-less usage patterns of delegates for performance-critical APIs. + When this annotation is applied to the parameter of delegate type, IDE checks the input argument of this parameter: + * When lambda expression or anonymous method is passed as an argument, IDE verifies that the passed closure + has no captures of the containing local variables and the compiler is able to cache the delegate instance + to avoid heap allocations. Otherwise the warning is produced. + * IDE warns when method name or local function name is passed as an argument as this always results + in heap allocation of the delegate instance. + + + In C# 9.0 code IDE would also suggest to annotate the anonymous function with 'static' modifier + to make use of the similar analysis provided by the language/compiler. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value of that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by code completion + as a 'Source Template'. When the extension method is completed over some expression, its source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + Indicates how method, constructor invocation, or property access + over collection type affects the contents of the collection. + When applied to a return value of a method indicates if the returned collection + is created exclusively for the caller (CollectionAccessType.UpdatedContent) or + can be read/updated from outside (CollectionAccessType.Read | CollectionAccessType.UpdatedContent) + Use to specify the access type. + + + Using this attribute only makes sense if all collection methods are marked with this attribute. + + + public class MyStringCollection : List<string> + { + [CollectionAccess(CollectionAccessType.Read)] + public string GetFirstString() + { + return this.ElementAt(0); + } + } + class Test + { + public void Foo() + { + // Warning: Contents of the collection is never updated + var col = new MyStringCollection(); + string x = col.GetFirstString(); + } + } + + + + + Provides a value for the to define + how the collection method invocation affects the contents of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts the control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that the method is a pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable passed as a parameter is not enumerated. + Use this annotation to suppress the 'Possible multiple enumeration of IEnumerable' inspection. + + + static void ThrowIfNull<T>([NoEnumeration] T v, string n) where T : class + { + // custom check for null but no enumeration + } + + void Foo(IEnumerable<string> values) + { + ThrowIfNull(values, nameof(values)); + var x = values.ToList(); // No warnings about multiple enumeration + } + + + + + Indicates that the marked parameter, field, or property is a regular expression pattern. + + + + + Language of injected code fragment inside marked by string literal. + + + + + Indicates that the marked parameter, field, or property is accepting a string literal + containing code fragment in a language specified by the . + + + void Foo([LanguageInjection(InjectedLanguage.CSS, Prefix = "body{", Suffix = "}")] string cssProps) + { + // cssProps should only contains a list of CSS properties + } + + + + Specify a language of injected code fragment. + + + Specify a string that "precedes" injected string literal. + + + Specify a string that "follows" injected string literal. + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns. + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + +
+
diff --git a/GenesisCordonelInterface/bin/Debug/Newtonsoft.Json.dll b/GenesisCordonelInterface/bin/Debug/Newtonsoft.Json.dll new file mode 100644 index 000000000..341d08fc8 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Newtonsoft.Json.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Newtonsoft.Json.xml b/GenesisCordonelInterface/bin/Debug/Newtonsoft.Json.xml new file mode 100644 index 000000000..2c981abf5 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Newtonsoft.Json.xml @@ -0,0 +1,11363 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from Unix epoch time + + + + + Gets or sets a value indicating whether the dates before Unix epoch + should converted to and from JSON. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 64. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 64. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + The default value is . + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 64. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + using values copied from the passed in . + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when cloning JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag that indicates whether to copy annotations when cloning a . + The default value is true. + + + A flag that indicates whether to copy annotations when cloning a . + + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A object to configure cloning settings. + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this converter. + + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets a value indicating whether has a value specified. + + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/GenesisCordonelInterface/bin/Debug/NlogConfig.xml b/GenesisCordonelInterface/bin/Debug/NlogConfig.xml new file mode 100644 index 000000000..0210ced7a --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/NlogConfig.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GenesisCordonelInterface/bin/Debug/PdfSharp.dll b/GenesisCordonelInterface/bin/Debug/PdfSharp.dll new file mode 100644 index 000000000..4fcde52f1 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/PdfSharp.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/PdfSharp.xml b/GenesisCordonelInterface/bin/Debug/PdfSharp.xml new file mode 100644 index 000000000..8ac853e90 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/PdfSharp.xml @@ -0,0 +1,23546 @@ + + + + PdfSharp + + + + + Floating point formatting. + + + + + Factor to convert from degree to radian measure. + + + + + Sinus of the angle to turn a regular font to look oblique. Used for italic simulation. + + + + + Factor of the em size of a regular font to look bold. Used for bold simulation. + Value of 2% found in original XPS 1.0 documentation. + + + + + Static locking functions to make PDFsharp thread save. + + + + + A bunch of internal helper functions. + + + + + A bunch of internal helper functions. + + + + + Indirectly throws NotImplementedException. + Required because PDFsharp Release builds tread warnings as errors and + throwing NotImplementedException may lead to unreachable code which + crashes the build. + + + + + Helper class around the Debugger class. + + + + + Call Debugger.Break() if a debugger is attached. + + + + + Call Debugger.Break() if a debugger is attached or when always is set to true. + + + + + Internal stuff for development of PDFsharp. + + + + + Creates font and enforces bold/italic simulation. + + + + + Dumps the font caches to a string. + + + + + Some static helper functions for calculations. + + + + + Degree to radiant factor. + + + + + Get page size in point from specified PageSize. + + + + + Some floating point utilities. Partially reflected from WPF, later equalized with original source code. + + + + + Indicates whether the values are so close that they can be considered as equal. + + + + + Indicates whether the values are so close that they can be considered as equal. + + + + + Indicates whether the values are so close that they can be considered as equal. + + + + + Indicates whether the values are so close that they can be considered as equal. + + + + + Indicates whether the values are so close that they can be considered as equal. + + + + + Indicates whether the values are so close that they can be considered as equal. + + + + + Indicates whether value1 is greater than value2 and the values are not close to each other. + + + + + Indicates whether value1 is greater than value2 or the values are close to each other. + + + + + Indicates whether value1 is less than value2 and the values are not close to each other. + + + + + Indicates whether value1 is less than value2 or the values are close to each other. + + + + + Indicates whether the value is between 0 and 1 or close to 0 or 1. + + + + + Indicates whether the value is not a number. + + + + + Indicates whether at least one of the four rectangle values is not a number. + + + + + Indicates whether the value is 1 or close to 1. + + + + + Indicates whether the value is 0 or close to 0. + + + + + Converts a double to integer. + + + + + Required native Win32 calls. + + + + + Reflected from System.Drawing.SafeNativeMethods+LOGFONT + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Move to next token. + + + + + Move to next token. + + + + + Represents the base class of all bar codes. + + + + + Initializes a new instance of the class. + + + + + + + + Creates a bar code from the specified code type. + + + + + Creates a bar code from the specified code type. + + + + + Creates a bar code from the specified code type. + + + + + Creates a bar code from the specified code type. + + + + + When overridden in a derived class gets or sets the wide narrow ratio. + + + + + Gets or sets the location of the text next to the bar code. + + + + + Gets or sets the length of the data that defines the bar code. + + + + + Gets or sets the optional start character. + + + + + Gets or sets the optional end character. + + + + + Gets or sets a value indicating whether the turbo bit is to be drawn. + (A turbo bit is something special to Kern (computer output processing) company (as far as I know)) + + + + + When defined in a derived class renders the code. + + + + + Holds all temporary information needed during rendering. + + + + + String resources for the empira barcode renderer. + + + + + Implementation of the Code 2 of 5 bar code. + + + + + Initializes a new instance of Interleaved2of5. + + + + + Initializes a new instance of Interleaved2of5. + + + + + Initializes a new instance of Interleaved2of5. + + + + + Initializes a new instance of Interleaved2of5. + + + + + Returns an array of size 5 that represents the thick (true) and thin (false) lines or spaces + representing the specified digit. + + The digit to represent. + + + + Renders the bar code. + + + + + Calculates the thick and thin line widths, + taking into account the required rendering size. + + + + + Renders the next digit pair as bar code element. + + + + + Checks the code to be convertible into an interleaved 2 of 5 bar code. + + The code to be checked. + + + + Imlpementation of the Code 3 of 9 bar code. + + + + + Initializes a new instance of Standard3of9. + + + + + Initializes a new instance of Standard3of9. + + + + + Initializes a new instance of Standard3of9. + + + + + Initializes a new instance of Standard3of9. + + + + + Returns an array of size 9 that represents the thick (true) and thin (false) lines and spaces + representing the specified digit. + + The character to represent. + + + + Calculates the thick and thin line widths, + taking into account the required rendering size. + + + + + Checks the code to be convertible into an standard 3 of 9 bar code. + + The code to be checked. + + + + Renders the bar code. + + + + + Represents the base class of all codes. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the size. + + + + + Gets or sets the text the bar code shall represent. + + + + + Always MiddleCenter. + + + + + Gets or sets the drawing direction. + + + + + When implemented in a derived class, determines whether the specified string can be used as Text + for this bar code type. + + The code string to check. + True if the text can be used for the actual barcode. + + + + Calculates the distance between an old anchor point and a new anchor point. + + + + + + + + Defines the DataMatrix 2D barcode. THIS IS AN EMPIRA INTERNAL IMPLEMENTATION. THE CODE IN + THE OPEN SOURCE VERSION IS A FAKE. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Initializes a new instance of CodeDataMatrix. + + + + + Sets the encoding of the DataMatrix. + + + + + Gets or sets the size of the Matrix' Quiet Zone. + + + + + Renders the matrix code. + + + + + Determines whether the specified string can be used as data in the DataMatrix. + + The code to be checked. + + + + Represents an OMR code. + + + + + initializes a new OmrCode with the given data. + + + + + Renders the OMR code. + + + + + Gets or sets a value indicating whether a synchronize mark is rendered. + + + + + Gets or sets the distance of the markers. + + + + + Gets or sets the thickness of the makers. + + + + + Determines whether the specified string can be used as Text for the OMR code. + + + + + Creates the XImage object for a DataMatrix. + + + + + Possible ECC200 Matrices. + + + + + Creates the DataMatrix code. + + + + + Encodes the DataMatrix. + + + + + Encodes the barcode with the DataMatrix ECC200 Encoding. + + + + + Places the data in the right positions according to Annex M of the ECC200 specification. + + + + + Places the ECC200 bits in the right positions. + + + + + Calculate and append the Reed Solomon Code. + + + + + Initialize the Galois Field. + + + + + + Initializes the Reed-Solomon Encoder. + + + + + Encodes the Reed-Solomon encoding + + + + + Creates a DataMatrix image object. + + A hex string like "AB 08 C3...". + I.e. 26 for a 26x26 matrix + + + + Creates a DataMatrix image object. + + + + + Creates a DataMatrix image object. + + + + + Specifies whether and how the text is displayed at the code area. + + + + + The anchor is located top left. + + + + + The anchor is located top center. + + + + + The anchor is located top right. + + + + + The anchor is located middle left. + + + + + The anchor is located middle center. + + + + + The anchor is located middle right. + + + + + The anchor is located bottom left. + + + + + The anchor is located bottom center. + + + + + The anchor is located bottom right. + + + + + Specifies the drawing direction of the code. + + + + + Does not rotate the code. + + + + + Rotates the code 180° at the anchor position. + + + + + Rotates the code 180° at the anchor position. + + + + + Rotates the code 180° at the anchor position. + + + + + Specifies the type of the bar code. + + + + + The standard 2 of 5 interleaved bar code. + + + + + The standard 3 of 9 bar code. + + + + + The OMR code. + + + + + The data matrix code. + + + + + docDaSt + + + + + docDaSt + + + + + docDaSt + + + + + docDaSt + + + + + docDaSt + + + + + docDaSt + + + + + docDaSt + + + + + Specifies whether and how the text is displayed at the code. + + + + + No text is drawn. + + + + + The text is located above the code. + + + + + The text is located below the code. + + + + + The text is located above within the code. + + + + + The text is located below within the code. + + + + + Represents the base class of all 2D codes. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the encoding. docDaSt + + + + + docDaSt + + + + + docDaSt + + + + + docDaSt + + + + + When implemented in a derived class renders the 2D code. + + + + + Determines whether the specified string can be used as Text for this matrix code type. + + + + + Internal base class for several bar code types. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the ration between thick an thin lines. Must be between 2 and 3. + Optimal and also default value is 2.6. + + + + + Renders a thick or thin line for the bar code. + + + Determines whether a thick or a thin line is about to be rendered. + + + + Renders a thick or thin gap for the bar code. + + + Determines whether a thick or a thin gap is about to be rendered. + + + + Renders a thick bar before or behind the code. + + + + + Gets the width of a thick or a thin line (or gap). CalcLineWidth must have been called before. + + + Determines whether a thick line's with shall be returned. + + + + Specifies the alignment of a paragraph. + + + + + Default alignment, typically left alignment. + + + + + The paragraph is rendered left aligned. + + + + + The paragraph is rendered centered. + + + + + The paragraph is rendered right aligned. + + + + + The paragraph is rendered justified. + + + + + Represents a very simple text formatter. + If this class does not satisfy your needs on formatting paragraphs I recommend to take a look + at MigraDoc Foundation. Alternatively you should copy this class in your own source code and modify it. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the text. + + The text. + + + + Gets or sets the font. + + + + + Gets or sets the bounding box of the layout. + + + + + Gets or sets the alignment of the text. + + + + + Draws the text. + + The text to be drawn. + The font. + The text brush. + The layout rectangle. + + + + Draws the text. + + The text to be drawn. + The font. + The text brush. + The layout rectangle. + The format. Must be XStringFormat.TopLeft + + + + Align center, right, or justify. + + + + + Represents a single word. + + + + + Initializes a new instance of the class. + + The text of the block. + The type of the block. + The width of the text. + + + + Initializes a new instance of the class. + + The type. + + + + The text represented by this block. + + + + + The type of the block. + + + + + The width of the text. + + + + + The location relative to the upper left corner of the layout rectangle. + + + + + The alignment of this line. + + + + + A flag indicating that this is the last block that fits in the layout rectangle. + + + + + Indicates whether we are within a BT/ET block. + + + + + Graphic mode. This is default. + + + + + Text mode. + + + + + Represents the current PDF graphics state. + + + Completely revised for PDFsharp 1.4. + + + + + Indicates that the text transformation matrix currently skews 20° to the right. + + + + + The already realized part of the current transformation matrix. + + + + + The not yet realized part of the current transformation matrix. + + + + + Product of RealizedCtm and UnrealizedCtm. + + + + + Inverse of EffectiveCtm used for transformation. + + + + + Realizes the CTM. + + + + + Represents a drawing surface for PdfPages. + + + + + Gets the content created by this renderer. + + + + + Strokes a single connection of two points. + + + + + Strokes a series of connected points. + + + + + Clones the current graphics state and push it on a stack. + + + + + Sets the clip path empty. Only possible if graphic state level has the same value as it has when + the first time SetClip was invoked. + + + + + The nesting level of the PDF graphics state stack when the clip region was set to non empty. + Because of the way PDF is made the clip region can only be reset at this level. + + + + + Writes a comment to the PDF content stream. May be useful for debugging purposes. + + + + + Appends one or up to five Bézier curves that interpolate the arc. + + + + + Gets the quadrant (0 through 3) of the specified angle. If the angle lies on an edge + (0, 90, 180, etc.) the result depends on the details how the angle is used. + + + + + Appends a Bézier curve for an arc within a quadrant. + + + + + Appends a Bézier curve for a cardinal spline through pt1 and pt2. + + + + + Appends the content of a GraphicsPath object. + + + + + Initializes the default view transformation, i.e. the transformation from the user page + space to the PDF page space. + + + + + Ends the content stream, i.e. ends the text mode and balances the graphic state stack. + + + + + Begins the graphic mode (i.e. ends the text mode). + + + + + Begins the graphic mode (i.e. ends the text mode). + + + + + Makes the specified pen and brush to the current graphics objects. + + + + + Makes the specified pen to the current graphics object. + + + + + Makes the specified brush to the current graphics object. + + + + + Makes the specified font and brush to the current graphics objects. + + + + + PDFsharp uses the Td operator to set the text position. Td just sets the offset of the text matrix + and produces lesser code as Tm. + + The absolute text position. + The dy. + true if skewing for italic simulation is currently on. + + + + Makes the specified image to the current graphics object. + + + + + Realizes the current transformation matrix, if necessary. + + + + + Convert a point from Windows world space to PDF world space. + + + + + Gets the owning PdfDocument of this page or form. + + + + + Gets the PdfResources of this page or form. + + + + + Gets the size of this page or form. + + + + + Gets the resource name of the specified font within this page or form. + + + + + Gets the resource name of the specified image within this page or form. + + + + + Gets the resource name of the specified form within this page or form. + + + + + The q/Q nesting level is 0. + + + + + The q/Q nesting level is 1. + + + + + The q/Q nesting level is 2. + + + + + Saves the current graphical state. + + + + + Restores the previous graphical state. + + + + + The current graphical state. + + + + + The graphical state stack. + + + + + The height of the PDF page in point including the trim box. + + + + + The final transformation from the world space to the default page space. + + + + + Represents a graphics path that uses the same notation as GDI+. + + + + + Adds an arc that fills exactly one quadrant (quarter) of an ellipse. + Just a quick hack to draw rounded rectangles before AddArc is fully implemented. + + + + + Closes the current subpath. + + + + + Gets or sets the current fill mode (alternate or winding). + + + + + Gets the path points in GDI+ style. + + + + + Gets the path types in GDI+ style. + + + + + Defines the direction an elliptical arc is drawn. + + + + + Specifies that arcs are drawn in a counter clockwise (negative-angle) direction. + + + + + Specifies that arcs are drawn in a clockwise (positive-angle) direction. + + + + + Describes the simulation style of a font. + + + + + No font style simulation. + + + + + Bold style simulation. + + + + + Italic style simulation. + + + + + Bold and Italic style simulation. + + + + + Indicates how to handle the first point of a path. + + + + + Set the current position to the first point. + + + + + Draws a line to the first point. + + + + + Ignores the first point. + + + + + Currently not used. Only DeviceRGB is rendered in PDF. + + + + + Identifies the RGB color space. + + + + + Identifies the CMYK color space. + + + + + Identifies the gray scale color space. + + + + + Specifies how different clipping regions can be combined. + + + + + One clipping region is replaced by another. + + + + + Two clipping regions are combined by taking their intersection. + + + + + Not yet implemented in PDFsharp. + + + + + Not yet implemented in PDFsharp. + + + + + Not yet implemented in PDFsharp. + + + + + Not yet implemented in PDFsharp. + + + + + Specifies the style of dashed lines drawn with an XPen object. + + + + + Specifies a solid line. + + + + + Specifies a line consisting of dashes. + + + + + Specifies a line consisting of dots. + + + + + Specifies a line consisting of a repeating pattern of dash-dot. + + + + + Specifies a line consisting of a repeating pattern of dash-dot-dot. + + + + + Specifies a user-defined custom dash style. + + + + + Specifies how the interior of a closed path is filled. + + + + + Specifies the alternate fill mode. Called the 'odd-even rule' in PDF terminology. + + + + + Specifies the winding fill mode. Called the 'nonzero winding number rule' in PDF terminology. + + + + + Specifies style information applied to text. + + + + + Normal text. + + + + + Bold text. + + + + + Italic text. + + + + + Bold and italic text. + + + + + Underlined text. + + + + + Text with a line through the middle. + + + + + Backward compatibility. + + + + + Normal text. + + + + + Bold text. + + + + + Italic text. + + + + + Bold and italic text. + + + + + Underlined text. + + + + + Text with a line through the middle. + + + + + Determines whether rendering based on GDI+ or WPF. + For internal use in hybrid build only only. + + + + + Rendering does not depent on a particular technology. + + + + + Renders using GDI+. + + + + + Renders using WPF (including Silverlight). + + + + + Universal Windows Platform. + + + + + Type of the path data. + + + + + Specifies how the content of an existing PDF page and new content is combined. + + + + + The new content is inserted behind the old content and any subsequent drawing in done above the existing graphic. + + + + + The new content is inserted before the old content and any subsequent drawing in done beneath the existing graphic. + + + + + The new content entirely replaces the old content and any subsequent drawing in done on a blank page. + + + + + Specifies the unit of measure. + + + + + Specifies a printer's point (1/72 inch) as the unit of measure. + + + + + Specifies the inch (2.54 cm) as the unit of measure. + + + + + Specifies the millimeter as the unit of measure. + + + + + Specifies the centimeter as the unit of measure. + + + + + Specifies a presentation point (1/96 inch) as the unit of measure. + + + + + Specifies all pre-defined colors. Used to identify the pre-defined colors and to + localize their names. + + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + A pre-defined color. + + + + Specifies the alignment of a text string relative to its layout rectangle + + + + + Specifies the text be aligned near the layout. + In a left-to-right layout, the near position is left. In a right-to-left layout, the near + position is right. + + + + + Specifies that text is aligned in the center of the layout rectangle. + + + + + Specifies that text is aligned far from the origin position of the layout rectangle. + In a left-to-right layout, the far position is right. In a right-to-left layout, the far + position is left. + + + + + Specifies that text is aligned relative to its base line. + With this option the layout rectangle must have a height of 0. + + + + + Specifies the direction of a linear gradient. + + + + + Specifies a gradient from left to right. + + + + + Specifies a gradient from top to bottom. + + + + + Specifies a gradient from upper left to lower right. + + + + + Specifies a gradient from upper right to lower left. + + + + + Specifies the available cap styles with which an XPen object can start and end a line. + + + + + Specifies a flat line cap. + + + + + Specifies a round line cap. + + + + + Specifies a square line cap. + + + + + Specifies how to join consecutive line or curve segments in a figure or subpath. + + + + + Specifies a mitered join. This produces a sharp corner or a clipped corner, + depending on whether the length of the miter exceeds the miter limit + + + + + Specifies a circular join. This produces a smooth, circular arc between the lines. + + + + + Specifies a beveled join. This produces a diagonal corner. + + + + + Specifies the order for matrix transform operations. + + + + + The new operation is applied before the old operation. + + + + + The new operation is applied after the old operation. + + + + + Specifies the direction of the y-axis. + + + + + Increasing Y values go downwards. This is the default. + + + + + Increasing Y values go upwards. This is only possible when drawing on a PDF page. + It is not implemented when drawing on a System.Drawing.Graphics object. + + + + + Specifies whether smoothing (or antialiasing) is applied to lines and curves + and the edges of filled areas. + + + + + Specifies an invalid mode. + + + + + Specifies the default mode. + + + + + Specifies high speed, low quality rendering. + + + + + Specifies high quality, low speed rendering. + + + + + Specifies no antialiasing. + + + + + Specifies antialiased rendering. + + + + + Specifies the alignment of a text string relative to its layout rectangle. + + + + + Specifies the text be aligned near the layout. + In a left-to-right layout, the near position is left. In a right-to-left layout, the near + position is right. + + + + + Specifies that text is aligned in the center of the layout rectangle. + + + + + Specifies that text is aligned far from the origin position of the layout rectangle. + In a left-to-right layout, the far position is right. In a right-to-left layout, the far + position is left. + + + + + Internal implementation class of XFontFamily. + + + + + Gets the family name this family was originally created with. + + + + + Gets the name that uniquely identifies this font family. + + + + + Gets the underlying GDI+ font family object. + Is null if the font was created by a font resolver. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + A bunch of functions that do not have a better place. + + + + + Measure string directly from font data. + + + + + Calculates an Adler32 checksum combined with the buffer length + in a 64 bit unsigned integer. + + + + + Helper class for Geometry paths. + + + + + Creates between 1 and 5 Béziers curves from parameters specified like in GDI+. + + + + + Calculates the quadrant (0 through 3) of the specified angle. If the angle lies on an edge + (0, 90, 180, etc.) the result depends on the details how the angle is used. + + + + + Appends a Bézier curve for an arc within a full quadrant. + + + + + Creates between 1 and 5 Béziers curves from parameters specified like in WPF. + + + + + Represents a stack of XGraphicsState and XGraphicsContainer objects. + + + + + Helper class for processing image files. + + + + + Represents the internal state of an XGraphics object. + Used when the state is saved and restored. + + + + + Gets or sets the current transformation matrix. + + + + + Called after this instanced was pushed on the internal graphics stack. + + + + + Called after this instanced was popped from the internal graphics stack. + + + + + This interface will be implemented by specialized classes, one for JPEG, one for BMP, one for PNG, one for GIF. Maybe more. + + + + + Imports the image. Returns null if the image importer does not support the format. + + + + + Prepares the image data needed for the PDF file. + + + + + Helper for dealing with Stream data. + + + + + Resets this instance. + + + + + Gets the original stream. + + + + + Gets the data as byte[]. + + + + + Gets the length of Data. + + + + + The imported image. + + + + + Initializes a new instance of the class. + + + + + Gets information about the image. + + + + + Gets a value indicating whether image data for the PDF file was already prepared. + + + + + Gets the image data needed for the PDF file. + + + + + Public information about the image, filled immediately. + Note: The stream will be read and decoded on the first call to PrepareImageData(). + ImageInformation can be filled for corrupted images that will throw an expection on PrepareImageData(). + + + + + Standard JPEG format (RGB). + + + + + Grayscale JPEG format. + + + + + JPEG file with inverted CMYK, thus RGBW. + + + + + JPEG file with CMYK. + + + + + The horizontal DPI (dots per inch). Can be 0 if not supported by the image format. + Note: JFIF (JPEG) files may contain either DPI or DPM or just the aspect ratio. Windows BMP files will contain DPM. Other formats may support any combination, including none at all. + + + + + The vertical DPI (dots per inch). Can be 0 if not supported by the image format. + + + + + The horizontal DPM (dots per meter). Can be 0 if not supported by the image format. + + + + + The vertical DPM (dots per meter). Can be 0 if not supported by the image format. + + + + + The horizontal component of the aspect ratio. Can be 0 if not supported by the image format. + Note: Aspect ratio will be set if either DPI or DPM was set, but may also be available in the absence of both DPI and DPM. + + + + + The vertical component of the aspect ratio. Can be 0 if not supported by the image format. + + + + + The colors used. Only valid for images with palettes, will be 0 otherwise. + + + + + Contains internal data. This includes a reference to the Stream if data for PDF was not yet prepared. + + + + + Gets the image. + + + + + Contains data needed for PDF. Will be prepared when needed. + + + + + Bitmap refers to the format used in PDF. Will be used for BMP, PNG, TIFF, GIF and others. + + + + + Initializes a new instance of the class. + + + + + Contains data needed for PDF. Will be prepared when needed. + Bitmap refers to the format used in PDF. Will be used for BMP, PNG, TIFF, GIF and others. + + + + + Gets the data. + + + + + Gets the length. + + + + + Gets the data. + + + + + Gets the length. + + + + + Image data needed for PDF bitmap images. + + + + + Initializes a new instance of the class. + + + + + Gets the data. + + + + + Gets the length. + + + + + True if first line is the top line, false if first line is the bottom line of the image. When needed, lines will be reversed while converting data into PDF format. + + + + + The offset of the image data in Data. + + + + + The offset of the color palette in Data. + + + + + Copies images without color palette. + + 4 (32bpp RGB), 3 (24bpp RGB, 32bpp ARGB) + 8 + true (ARGB), false (RGB) + Destination + + + + Imported JPEG image. + + + + + Initializes a new instance of the class. + + + + + Contains data needed for PDF. Will be prepared when needed. + + + + + Gets the data. + + + + + Gets the length. + + + + + Private data for JPEG images. + + + + + Initializes a new instance of the class. + + + + + Gets the data. + + + + + Gets the length. + + + + + The class that imports images of various formats. + + + + + Gets the image importer. + + + + + Imports the image. + + + + + Imports the image. + + + + + Represents an abstract drawing surface for PdfPages. + + + + + Draws a straight line. + + + + + Draws a series of straight lines. + + + + + Draws a Bézier spline. + + + + + Draws a series of Bézier splines. + + + + + Draws a cardinal spline. + + + + + Draws an arc. + + + + + Draws a rectangle. + + + + + Draws a series of rectangles. + + + + + Draws a rectangle with rounded corners. + + + + + Draws an ellipse. + + + + + Draws a polygon. + + + + + Draws a pie. + + + + + Draws a cardinal spline. + + + + + Draws a graphical path. + + + + + Draws a series of glyphs identified by the specified text and font. + + + + + Draws an image. + + + + + Saves the current graphics state without changing it. + + + + + Restores the specified graphics state. + + + + + + + + + + + + + + + Gets or sets the transformation matrix. + + + + + Writes a comment to the output stream. Comments have no effect on the rendering of the output. + + + + + Specifies details about how the font is used in PDF creation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets a value indicating the font embedding. + + + + + Gets a value indicating how the font is encoded. + + + + + Gets the default options with WinAnsi encoding and always font embedding. + + + + + Gets the default options with Unicode encoding and always font embedding. + + + + + Provides functionality to load a bitmap image encoded in a specific format. + + + + + Gets a new instance of the PNG image decoder. + + + + + Provides functionality to save a bitmap image in a specific format. + + + + + Gets a new instance of the PNG image encoder. + + + + + Gets or sets the bitmap source to be encoded. + + + + + When overridden in a derived class saves the image on the specified stream + in the respective format. + + + + + Saves the image on the specified stream in PNG format. + + + + + Defines a pixel based bitmap image. + + + + + Initializes a new instance of the class. + + + + + Creates a default 24 bit ARGB bitmap with the specified pixel size. + + + + + Classes derived from this abstract base class define objects used to fill the + interiors of paths. + + + + + Brushes for all the pre-defined colors. + + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + Gets a pre-defined XBrush object. + + + + Represents a RGB, CMYK, or gray scale color. + + + + + Creates an XColor structure from a 32-bit ARGB value. + + + + + Creates an XColor structure from a 32-bit ARGB value. + + + + + Creates an XColor structure from the specified 8-bit color values (red, green, and blue). + The alpha value is implicitly 255 (fully opaque). + + + + + Creates an XColor structure from the four ARGB component (alpha, red, green, and blue) values. + + + + + Creates an XColor structure from the specified alpha value and color. + + + + + Creates an XColor structure from the specified CMYK values. + + + + + Creates an XColor structure from the specified CMYK values. + + + + + Creates an XColor structure from the specified gray value. + + + + + Creates an XColor from the specified pre-defined color. + + + + + Creates an XColor from the specified name of a pre-defined color. + + + + + Gets or sets the color space to be used for PDF generation. + + + + + Indicates whether this XColor structure is uninitialized. + + + + + Determines whether the specified object is a Color structure and is equivalent to this + Color structure. + + + + + Returns the hash code for this instance. + + + + + Determines whether two colors are equal. + + + + + Determines whether two colors are not equal. + + + + + Gets a value indicating whether this color is a known color. + + + + + Gets the hue-saturation-brightness (HSB) hue value, in degrees, for this color. + + The hue, in degrees, of this color. The hue is measured in degrees, ranging from 0 through 360, in HSB color space. + + + + Gets the hue-saturation-brightness (HSB) saturation value for this color. + + The saturation of this color. The saturation ranges from 0 through 1, where 0 is grayscale and 1 is the most saturated. + + + + Gets the hue-saturation-brightness (HSB) brightness value for this color. + + The brightness of this color. The brightness ranges from 0 through 1, where 0 represents black and 1 represents white. + + + + One of the RGB values changed; recalculate other color representations. + + + + + One of the CMYK values changed; recalculate other color representations. + + + + + The gray scale value changed; recalculate other color representations. + + + + + Gets or sets the alpha value the specifies the transparency. + The value is in the range from 1 (opaque) to 0 (completely transparent). + + + + + Gets or sets the red value. + + + + + Gets or sets the green value. + + + + + Gets or sets the blue value. + + + + + Gets the RGB part value of the color. Internal helper function. + + + + + Gets the ARGB part value of the color. Internal helper function. + + + + + Gets or sets the cyan value. + + + + + Gets or sets the magenta value. + + + + + Gets or sets the yellow value. + + + + + Gets or sets the black (or key) value. + + + + + Gets or sets the gray scale value. + + + + + Represents the null color. + + + + + Special property for XmlSerializer only. + + + + + Manages the localization of the color class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The culture info. + + + + Gets a known color from an ARGB value. Throws an ArgumentException if the value is not a known color. + + + + + Gets all known colors. + + Indicates whether to include the color Transparent. + + + + Converts a known color to a localized color name. + + + + + Converts a color to a localized color name or an ARGB value. + + + + + Represents a set of 141 pre-defined RGB colors. Incidentally the values are the same + as in System.Drawing.Color. + + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + Gets a predefined color. + + + + Converts XGraphics enums to GDI+ enums. + + + + + Defines an object used to draw text. + + + + + Initializes a new instance of the class. + + Name of the font family. + The em size. + + + + Initializes a new instance of the class. + + Name of the font family. + The em size. + The font style. + + + + Initializes a new instance of the class. + + Name of the font family. + The em size. + The font style. + Additional PDF options. + + + + Initializes a new instance of the class with enforced style simulation. + Only for testing PDFsharp. + + + + + Initializes a new instance of the class from a System.Drawing.FontFamily. + + The System.Drawing.FontFamily. + The em size. + The font style. + + + + Initializes a new instance of the class from a System.Drawing.FontFamily. + + The System.Drawing.FontFamily. + The em size. + The font style. + Additional PDF options. + + + + Initializes a new instance of the class from a System.Drawing.Font. + + The System.Drawing.Font. + + + + Initializes a new instance of the class from a System.Drawing.Font. + + The System.Drawing.Font. + Additional PDF options. + + + + Initializes this instance by computing the glyph typeface, font family, font source and TrueType fontface. + (PDFsharp currently only deals with TrueType fonts.) + + + + + A GDI+ font object is used to setup the internal font objects. + + + + + Code separated from Metric getter to make code easier to debug. + (Setup properties in their getters caused side effects during debugging because Visual Studio calls a getter + to early to show its value in a debugger window.) + + + + + Gets the XFontFamily object associated with this XFont object. + + + + + WRONG: Gets the face name of this Font object. + Indeed it returns the font family name. + + + + + Gets the em-size of this font measured in the unit of this font object. + + + + + Gets style information for this Font object. + + + + + Indicates whether this XFont object is bold. + + + + + Indicates whether this XFont object is italic. + + + + + Indicates whether this XFont object is stroke out. + + + + + Indicates whether this XFont object is underlined. + + + + + Temporary HACK for XPS to PDF converter. + + + + + Gets the PDF options of the font. + + + + + Indicates whether this XFont is encoded as Unicode. + + + + + Gets the cell space for the font. The CellSpace is the line spacing, the sum of CellAscent and CellDescent and optionally some extra space. + + + + + Gets the cell ascent, the area above the base line that is used by the font. + + + + + Gets the cell descent, the area below the base line that is used by the font. + + + + + Gets the font metrics. + + The metrics. + + + + Returns the line spacing, in pixels, of this font. The line spacing is the vertical distance + between the base lines of two consecutive lines of text. Thus, the line spacing includes the + blank space between lines along with the height of the character itself. + + + + + Returns the line spacing, in the current unit of a specified Graphics object, of this font. + The line spacing is the vertical distance between the base lines of two consecutive lines of + text. Thus, the line spacing includes the blank space between lines along with the height of + + + + + Gets the line spacing of this font. + + + + + Override style simulations by using the value of StyleSimulations. + + + + + Used to enforce style simulations by renderer. For development purposes only. + + + + + Gets the GDI family. + + The GDI family. + + + + Implicit conversion form Font to XFont + + + + + Cache PdfFontTable.FontSelector to speed up finding the right PdfFont + if this font is used more than once. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Global cache of all internal font family objects. + + + + + Caches the font family or returns a previously cached one. + + + + + Gets the singleton. + + + + + Maps family name to internal font family. + + + + + Defines a group of typefaces having a similar basic design and certain variations in styles. + + + + + Initializes a new instance of the class. + + The family name of a font. + + + + Initializes a new instance of the class from FontFamilyInternal. + + + + + An XGlyphTypeface for a font source that comes from a custom font resolver + creates a solitary font family exclusively for it. + + + + + Gets the name of the font family. + + + + + Returns the cell ascent, in design units, of the XFontFamily object of the specified style. + + + + + Returns the cell descent, in design units, of the XFontFamily object of the specified style. + + + + + Gets the height, in font design units, of the em square for the specified style. + + + + + Returns the line spacing, in design units, of the FontFamily object of the specified style. + The line spacing is the vertical distance between the base lines of two consecutive lines of text. + + + + + Indicates whether the specified FontStyle enumeration is available. + + + + + Returns an array that contains all the FontFamily objects associated with the current graphics context. + + + + + Returns an array that contains all the FontFamily objects available for the specified + graphics context. + + + + + The implementation sigleton of font family; + + + + + Collects information of a font. + + + + + Gets the font name. + + + + + Gets the ascent value. + + + + + Gets the ascent value. + + + + + Gets the descent value. + + + + + Gets the average width. + + + + + Gets the height of capital letters. + + + + + Gets the leading value. + + + + + Gets the line spacing value. + + + + + Gets the maximum width of a character. + + + + + Gets an internal value. + + + + + Gets an internal value. + + + + + Gets the height of a lower-case character. + + + + + Gets the underline position. + + + + + Gets the underline thicksness. + + + + + Gets the strikethrough position. + + + + + Gets the strikethrough thicksness. + + + + + Represents a graphical object that can be used to render retained graphics on it. + In GDI+ it is represented by a Metafile, in WPF by a DrawingVisual, and in PDF by a Form XObjects. + + + + + The form is an imported PDF page. + + + + + The template is just created. + + + + + XGraphics.FromForm() was called. + + + + + The form was drawn at least once and is 'frozen' now. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class that represents a page of a PDF document. + + The PDF document. + The view box of the page. + + + + Initializes a new instance of the class that represents a page of a PDF document. + + The PDF document. + The size of the page. + + + + Initializes a new instance of the class that represents a page of a PDF document. + + The PDF document. + The width of the page. + The height of the page + + + + This function should be called when drawing the content of this form is finished. + The XGraphics object used for drawing the content is disposed by this function and + cannot be used for any further drawing operations. + PDFsharp automatically calls this function when this form was used the first time + in a DrawImage function. + + + + + Called from XGraphics constructor that creates an instance that work on this form. + + + + + Disposes this instance. + + + + + Sets the form in the state FormState.Finished. + + + + + Gets the owning document. + + + + + Gets the color model used in the underlying PDF document. + + + + + Gets a value indicating whether this instance is a template. + + + + + Get the width of the page identified by the property PageNumber. + + + + + Get the width of the page identified by the property PageNumber. + + + + + Get the width in point of this image. + + + + + Get the height in point of this image. + + + + + Get the width of the page identified by the property PageNumber. + + + + + Get the height of the page identified by the property PageNumber. + + + + + Get the size of the page identified by the property PageNumber. + + + + + Gets the view box of the form. + + + + + Gets 72, the horizontal resolution by design of a form object. + + + + + Gets 72 always, the vertical resolution by design of a form object. + + + + + Gets or sets the bounding box. + + + + + Gets or sets the transformation matrix. + + + + + Implements the interface because the primary function is internal. + + + + + Gets the resource name of the specified font within this form. + + + + + Tries to get the resource name of the specified font data within this form. + Returns null if no such font exists. + + + + + Gets the resource name of the specified font data within this form. + + + + + Gets the resource name of the specified image within this form. + + + + + Implements the interface because the primary function is internal. + + + + + Gets the resource name of the specified form within this form. + + + + + Implements the interface because the primary function is internal. + + + + + The PdfFormXObject gets invalid when PageNumber or transform changed. This is because a modification + of an XPdfForm must not change objects that are already been drawn. + + + + + The bytes of a font file. + + + + + Gets an existing font source or creates a new one. + A new font source is cached in font factory. + + + + + Gets or sets the fontface. + + + + + Gets the key that uniquely identifies this font source. + + + + + Gets the name of the font's name table. + + + + + Gets the bytes of the font. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Specifies a physical font face that corresponds to a font file on the disk or in memory. + + + + + Gets the name of the font face. This can be a file name, an uri, or a GUID. + + + + + Gets the English family name of the font, for example "Arial". + + + + + Gets the English subfamily name of the font, + for example "Bold". + + + + + Gets the English display name of the font, + for example "Arial italic". + + + + + Gets a value indicating whether the font weight is bold. + + + + + Gets a value indicating whether the font style is italic. + + + + + Gets the suffix of the face name in a PDF font and font descriptor. + The name based on the effective value of bold and italic from the OS/2 table. + + + + + Computes the bijective key for a typeface. + + + + + Computes the bijective key for a typeface. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Holds information about the current state of the XGraphics object. + + + + + Represents a drawing surface for a fixed size page. + + + + + Initializes a new instance of the XGraphics class for drawing on a PDF page. + + + + + Initializes a new instance of the XGraphics class used for drawing on a form. + + + + + Creates the measure context. This is a graphics context created only for querying measures of text. + Drawing on a measure context has no effect. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Pdf.PdfPage object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Drawing.XPdfForm object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Drawing.XForm object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Drawing.XForm object. + + + + + Creates a new instance of the XGraphics class from a PdfSharp.Drawing.XImage object. + + + + + Internal setup. + + + + + Releases all resources used by this object. + + + + + Internal hack for MigraDoc. Will be removed in further releases. + Unicode support requires a global refactoring of MigraDoc and will be done in further releases. + + + + + A value indicating whether GDI+ or WPF is used as context. + + + + + Gets or sets the unit of measure used for page coordinates. + CURRENTLY ONLY POINT IS IMPLEMENTED. + + + + + Gets or sets the a value indicating in which direction y-value grow. + + + + + Gets the current page origin. Setting the origin is not yet implemented. + + + + + Gets the current size of the page. + + + + + Draws a line connecting two XPoint structures. + + + + + Draws a line connecting the two points specified by coordinate pairs. + + + + + Draws a series of line segments that connect an array of points. + + + + + Draws a series of line segments that connect an array of x and y pairs. + + + + + Draws a Bézier spline defined by four points. + + + + + Draws a Bézier spline defined by four points. + + + + + Draws a series of Bézier splines from an array of points. + + + + + Draws a cardinal spline through a specified array of points. + + + + + Draws a cardinal spline through a specified array of point using a specified tension. + The drawing begins offset from the beginning of the array. + + + + + Draws a cardinal spline through a specified array of points using a specified tension. + + + + + Draws an arc representing a portion of an ellipse. + + + + + Draws an arc representing a portion of an ellipse. + + + + + Draws a rectangle. + + + + + Draws a rectangle. + + + + + Draws a rectangle. + + + + + Draws a rectangle. + + + + + Draws a rectangle. + + + + + Draws a rectangle. + + + + + Draws a series of rectangles. + + + + + Draws a series of rectangles. + + + + + Draws a series of rectangles. + + + + + Draws a rectangles with round corners. + + + + + Draws a rectangles with round corners. + + + + + Draws a rectangles with round corners. + + + + + Draws a rectangles with round corners. + + + + + Draws a rectangles with round corners. + + + + + Draws a rectangles with round corners. + + + + + Draws an ellipse defined by a bounding rectangle. + + + + + Draws an ellipse defined by a bounding rectangle. + + + + + Draws an ellipse defined by a bounding rectangle. + + + + + Draws an ellipse defined by a bounding rectangle. + + + + + Draws an ellipse defined by a bounding rectangle. + + + + + Draws an ellipse defined by a bounding rectangle. + + + + + Draws a polygon defined by an array of points. + + + + + Draws a polygon defined by an array of points. + + + + + Draws a polygon defined by an array of points. + + + + + Draws a pie defined by an ellipse. + + + + + Draws a pie defined by an ellipse. + + + + + Draws a pie defined by an ellipse. + + + + + Draws a pie defined by an ellipse. + + + + + Draws a pie defined by an ellipse. + + + + + Draws a pie defined by an ellipse. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a closed cardinal spline defined by an array of points. + + + + + Draws a graphical path. + + + + + Draws a graphical path. + + + + + Draws a graphical path. + + + + + Draws the specified text string. + + + + + Draws the specified text string. + + + + + Draws the specified text string. + + + + + Draws the specified text string. + + + + + Draws the specified text string. + + + + + Draws the specified text string. + + + + + Measures the specified string when drawn with the specified font. + + + + + Measures the specified string when drawn with the specified font. + + + + + Draws the specified image. + + + + + Draws the specified image. + + + + + Draws the specified image. + + + + + Draws the specified image. + + + + + Draws the specified image. + + + + + Checks whether drawing is allowed and disposes the XGraphics object, if necessary. + + + + + Draws the specified bar code. + + + + + Draws the specified bar code. + + + + + Draws the specified bar code. + + + + + Draws the specified data matrix code. + + + + + Draws the specified data matrix code. + + + + + Saves the current state of this XGraphics object and identifies the saved state with the + returned XGraphicsState object. + + + + + Restores the state of this XGraphics object to the state represented by the specified + XGraphicsState object. + + + + + Restores the state of this XGraphics object to the state before the most recently call of Save. + + + + + Saves a graphics container with the current state of this XGraphics and + opens and uses a new graphics container. + + + + + Saves a graphics container with the current state of this XGraphics and + opens and uses a new graphics container. + + + + + Closes the current graphics container and restores the state of this XGraphics + to the state saved by a call to the BeginContainer method. + + + + + Gets the current graphics state level. The default value is 0. Each call of Save or BeginContainer + increased and each call of Restore or EndContainer decreased the value by 1. + + + + + Gets or sets the smoothing mode. + + The smoothing mode. + + + + Applies the specified translation operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified translation operation to the transformation matrix of this object + in the specified order. + + + + + Applies the specified scaling operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified scaling operation to the transformation matrix of this object + in the specified order. + + + + + Applies the specified scaling operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified scaling operation to the transformation matrix of this object + in the specified order. + + + + + Applies the specified scaling operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified scaling operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified rotation operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified rotation operation to the transformation matrix of this object + in the specified order. The angle unit of measure is degree. + + + + + Applies the specified rotation operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified rotation operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + + + + + Applies the specified shearing operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + ShearTransform is a synonym for SkewAtTransform. + Parameter shearX specifies the horizontal skew which is measured in degrees counterclockwise from the y-axis. + Parameter shearY specifies the vertical skew which is measured in degrees counterclockwise from the x-axis. + + + + + Applies the specified shearing operation to the transformation matrix of this object + in the specified order. + ShearTransform is a synonym for SkewAtTransform. + Parameter shearX specifies the horizontal skew which is measured in degrees counterclockwise from the y-axis. + Parameter shearY specifies the vertical skew which is measured in degrees counterclockwise from the x-axis. + + + + + Applies the specified shearing operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + ShearTransform is a synonym for SkewAtTransform. + Parameter shearX specifies the horizontal skew which is measured in degrees counterclockwise from the y-axis. + Parameter shearY specifies the vertical skew which is measured in degrees counterclockwise from the x-axis. + + + + + Applies the specified shearing operation to the transformation matrix of this object by + prepending it to the object's transformation matrix. + ShearTransform is a synonym for SkewAtTransform. + Parameter shearX specifies the horizontal skew which is measured in degrees counterclockwise from the y-axis. + Parameter shearY specifies the vertical skew which is measured in degrees counterclockwise from the x-axis. + + + + + Multiplies the transformation matrix of this object and specified matrix. + + + + + Multiplies the transformation matrix of this object and specified matrix in the specified order. + + + + + Gets the current transformation matrix. + The transformation matrix cannot be set. Instead use Save/Restore or BeginContainer/EndContainer to + save the state before Transform is called and later restore to the previous transform. + + + + + Applies a new transformation to the current transformation matrix. + + + + + Updates the clip region of this XGraphics to the intersection of the + current clip region and the specified rectangle. + + + + + Updates the clip region of this XGraphics to the intersection of the + current clip region and the specified graphical path. + + + + + Writes a comment to the output stream. Comments have no effect on the rendering of the output. + They may be useful to mark a position in a content stream of a PDF document. + + + + + Permits access to internal data. + + + + + (Under construction. May change in future versions.) + + + + + The transformation matrix from the XGraphics page space to the Graphics world space. + (The name 'default view matrix' comes from Microsoft OS/2 Presentation Manager. I choose + this name because I have no better one.) + + + + + Indicates whether to send drawing operations to _gfx or _dc. + + + + + Interface to an (optional) renderer. Currently it is the XGraphicsPdfRenderer, if defined. + + + + + The transformation matrix from XGraphics world space to page unit space. + + + + + The graphics state stack. + + + + + Gets the PDF page that serves as drawing surface if PDF is rendered, + or null, if no such object exists. + + + + + Provides access to internal data structures of the XGraphics class. + + + + + (This class is under construction.) + Currently used in MigraDoc + + + + + Gets the smallest rectangle in default page space units that completely encloses the specified rect + in world space units. + + + + + Represents the internal state of an XGraphics object. + + + + + Represents a series of connected lines and curves. + + + + + Initializes a new instance of the class. + + + + + Clones this instance. + + + + + Adds a line segment to current figure. + + + + + Adds a line segment to current figure. + + + + + Adds a series of connected line segments to current figure. + + + + + Adds a cubic Bézier curve to the current figure. + + + + + Adds a cubic Bézier curve to the current figure. + + + + + Adds a sequence of connected cubic Bézier curves to the current figure. + + + + + Adds a spline curve to the current figure. + + + + + Adds a spline curve to the current figure. + + + + + Adds a spline curve to the current figure. + + + + + Adds an elliptical arc to the current figure. + + + + + Adds an elliptical arc to the current figure. + + + + + Adds an elliptical arc to the current figure. The arc is specified WPF like. + + + + + Adds a rectangle to this path. + + + + + Adds a rectangle to this path. + + + + + Adds a series of rectangles to this path. + + + + + Adds a rectangle with rounded corners to this path. + + + + + Adds an ellipse to the current path. + + + + + Adds an ellipse to the current path. + + + + + Adds a polygon to this path. + + + + + Adds the outline of a pie shape to this path. + + + + + Adds the outline of a pie shape to this path. + + + + + Adds a closed curve to this path. + + + + + Adds a closed curve to this path. + + + + + Adds the specified path to this path. + + + + + Adds a text string to this path. + + + + + Adds a text string to this path. + + + + + Closes the current figure and starts a new figure. + + + + + Starts a new figure without closing the current figure. + + + + + Gets or sets an XFillMode that determines how the interiors of shapes are filled. + + + + + Converts each curve in this XGraphicsPath into a sequence of connected line segments. + + + + + Converts each curve in this XGraphicsPath into a sequence of connected line segments. + + + + + Converts each curve in this XGraphicsPath into a sequence of connected line segments. + + + + + Replaces this path with curves that enclose the area that is filled when this path is drawn + by the specified pen. + + + + + Replaces this path with curves that enclose the area that is filled when this path is drawn + by the specified pen. + + + + + Replaces this path with curves that enclose the area that is filled when this path is drawn + by the specified pen. + + + + + Grants access to internal objects of this class. + + + + + Gets access to underlying Core graphics path. + + + + + Provides access to the internal data structures of XGraphicsPath. + This class prevents the public interface from pollution with internal functions. + + + + + Represents the internal state of an XGraphics object. + This class is used as a handle for restoring the context. + + + + + Defines an abstract base class for pixel based images. + + + + + Gets the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Defines an object used to draw image files (bmp, png, jpeg, gif) and PDF forms. + An abstract base class that provides functionality for the Bitmap and Metafile descended classes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from an image read by ImageImporter. + + The image. + image + + + + Creates an image from the specified file. + + The path to a BMP, PNG, GIF, JPEG, TIFF, or PDF file. + + + + Creates an image from the specified stream.
+ Silverlight supports PNG and JPEG only. +
+ The stream containing a BMP, PNG, GIF, JPEG, TIFF, or PDF file. +
+ + + Tests if a file exist. Supports PDF files with page number suffix. + + The path to a BMP, PNG, GIF, JPEG, TIFF, or PDF file. + + + + Under construction + + + + + Disposes underlying GDI+ object. + + + + + Gets the width of the image. + + + + + Gets the height of the image. + + + + + The factor for conversion from DPM to PointWidth or PointHeight. + 72 points per inch, 1000 mm per meter, 25.4 mm per inch => 72 * 1000 / 25.4. + + + + + The factor for conversion from DPM to PointWidth or PointHeight. + 1000 mm per meter, 25.4 mm per inch => 1000 / 25.4. + + + + + Gets the width of the image in point. + + + + + Gets the height of the image in point. + + + + + Gets the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Gets the size in point of the image. + + + + + Gets the horizontal resolution of the image. + + + + + Gets the vertical resolution of the image. + + + + + Gets or sets a flag indicating whether image interpolation is to be performed. + + + + + Gets the format of the image. + + + + + If path starts with '*' the image is created from a stream and the path is a GUID. + + + + + Contains a reference to the original stream if image was created from a stream. + + + + + Cache PdfImageTable.ImageSelector to speed up finding the right PdfImage + if this image is used more than once. + + + + + Specifies the format of the image. + + + + + Determines whether the specified object is equal to the current object. + + + + + Returns the hash code for this instance. + + + + + Gets the Portable Network Graphics (PNG) image format. + + + + + Gets the Graphics Interchange Format (GIF) image format. + + + + + Gets the Joint Photographic Experts Group (JPEG) image format. + + + + + Gets the Tag Image File Format (TIFF) image format. + + + + + Gets the Portable Document Format (PDF) image format + + + + + Gets the Windows icon image format. + + + + + Defines a Brush with a linear gradient. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets an XMatrix that defines a local geometric transform for this LinearGradientBrush. + + + + + Translates the brush with the specified offset. + + + + + Translates the brush with the specified offset. + + + + + Scales the brush with the specified scalars. + + + + + Scales the brush with the specified scalars. + + + + + Rotates the brush with the specified angle. + + + + + Rotates the brush with the specified angle. + + + + + Multiply the brush transformation matrix with the specified matrix. + + + + + Multiply the brush transformation matrix with the specified matrix. + + + + + Resets the brush transformation matrix with identity matrix. + + + + + Represents a 3-by-3 matrix that represents an affine 2D transformation. + + + + + Initializes a new instance of the XMatrix struct. + + + + + Gets the identity matrix. + + + + + Sets this matrix into an identity matrix. + + + + + Gets a value indicating whether this matrix instance is the identity matrix. + + + + + Gets an array of double values that represents the elements of this matrix. + + + + + Multiplies two matrices. + + + + + Multiplies two matrices. + + + + + Appends the specified matrix to this matrix. + + + + + Prepends the specified matrix to this matrix. + + + + + Appends the specified matrix to this matrix. + + + + + Prepends the specified matrix to this matrix. + + + + + Multiplies this matrix with the specified matrix. + + + + + Appends a translation of the specified offsets to this matrix. + + + + + Appends a translation of the specified offsets to this matrix. + + + + + Prepends a translation of the specified offsets to this matrix. + + + + + Translates the matrix with the specified offsets. + + + + + Appends the specified scale vector to this matrix. + + + + + Appends the specified scale vector to this matrix. + + + + + Prepends the specified scale vector to this matrix. + + + + + Scales the matrix with the specified scalars. + + + + + Scales the matrix with the specified scalar. + + + + + Appends the specified scale vector to this matrix. + + + + + Prepends the specified scale vector to this matrix. + + + + + Scales the matrix with the specified scalar. + + + + + Function is obsolete. + + + + + Apppends the specified scale about the specified point of this matrix. + + + + + Prepends the specified scale about the specified point of this matrix. + + + + + Function is obsolete. + + + + + Appends a rotation of the specified angle to this matrix. + + + + + Prepends a rotation of the specified angle to this matrix. + + + + + Rotates the matrix with the specified angle. + + + + + Function is obsolete. + + + + + Appends a rotation of the specified angle at the specified point to this matrix. + + + + + Prepends a rotation of the specified angle at the specified point to this matrix. + + + + + Rotates the matrix with the specified angle at the specified point. + + + + + Appends a rotation of the specified angle at the specified point to this matrix. + + + + + Prepends a rotation of the specified angle at the specified point to this matrix. + + + + + Rotates the matrix with the specified angle at the specified point. + + + + + Function is obsolete. + + + + + Appends a skew of the specified degrees in the x and y dimensions to this matrix. + + + + + Prepends a skew of the specified degrees in the x and y dimensions to this matrix. + + + + + Shears the matrix with the specified scalars. + + + + + Function is obsolete. + + + + + Appends a skew of the specified degrees in the x and y dimensions to this matrix. + + + + + Prepends a skew of the specified degrees in the x and y dimensions to this matrix. + + + + + Transforms the specified point by this matrix and returns the result. + + + + + Transforms the specified points by this matrix. + + + + + Multiplies all points of the specified array with the this matrix. + + + + + Transforms the specified vector by this Matrix and returns the result. + + + + + Transforms the specified vectors by this matrix. + + + + + Gets the determinant of this matrix. + + + + + Gets a value that indicates whether this matrix is invertible. + + + + + Inverts the matrix. + + + + + Gets or sets the value of the first row and first column of this matrix. + + + + + Gets or sets the value of the first row and second column of this matrix. + + + + + Gets or sets the value of the second row and first column of this matrix. + + + + + Gets or sets the value of the second row and second column of this matrix. + + + + + Gets or sets the value of the third row and first column of this matrix. + + + + + Gets or sets the value of the third row and second column of this matrix. + + + + + Determines whether the two matrices are equal. + + + + + Determines whether the two matrices are not equal. + + + + + Determines whether the two matrices are equal. + + + + + Determines whether this matrix is equal to the specified object. + + + + + Determines whether this matrix is equal to the specified matrix. + + + + + Returns the hash code for this instance. + + + + + Parses a matrix from a string. + + + + + Converts this XMatrix to a human readable string. + + + + + Converts this XMatrix to a human readable string. + + + + + Converts this XMatrix to a human readable string. + + + + + Sets the matrix. + + + + + Internal matrix helper. + + + + + Gets the DebuggerDisplayAttribute text. + + The debugger display. + + + + Represents a so called 'PDF form external object', which is typically an imported page of an external + PDF document. XPdfForm objects are used like images to draw an existing PDF page of an external + document in the current document. XPdfForm objects can only be placed in PDF documents. If you try + to draw them using a XGraphics based on an GDI+ context no action is taken if no placeholder image + is specified. Otherwise the place holder is drawn. + + + + + Initializes a new instance of the XPdfForm class from the specified path to an external PDF document. + Although PDFsharp internally caches XPdfForm objects it is recommended to reuse XPdfForm objects + in your code and change the PageNumber property if more than one page is needed form the external + document. Furthermore, because XPdfForm can occupy very much memory, it is recommended to + dispose XPdfForm objects if not needed anymore. + + + + + Initializes a new instance of the class from a stream. + + The stream. + + + + Creates an XPdfForm from a file. + + + + + Creates an XPdfForm from a stream. + + + + + Sets the form in the state FormState.Finished. + + + + + Frees the memory occupied by the underlying imported PDF document, even if other XPdfForm objects + refer to this document. A reuse of this object doesn't fail, because the underlying PDF document + is re-imported if necessary. + + + + + Gets or sets an image that is used for drawing if the current XGraphics object cannot handle + PDF forms. A place holder is useful for showing a preview of a page on the display, because + PDFsharp cannot render native PDF objects. + + + + + Gets the underlying PdfPage (if one exists). + + + + + Gets the number of pages in the PDF form. + + + + + Gets the width in point of the page identified by the property PageNumber. + + + + + Gets the height in point of the page identified by the property PageNumber. + + + + + Gets the width in point of the page identified by the property PageNumber. + + + + + Gets the height in point of the page identified by the property PageNumber. + + + + + Gets the width in point of the page identified by the property PageNumber. + + + + + Gets the height in point of the page identified by the property PageNumber. + + + + + Get the size of the page identified by the property PageNumber. + + + + + Gets or sets the transformation matrix. + + + + + Gets or sets the page number in the external PDF document this object refers to. The page number + is one-based, i.e. it is in the range from 1 to PageCount. The default value is 1. + + + + + Gets or sets the page index in the external PDF document this object refers to. The page index + is zero-based, i.e. it is in the range from 0 to PageCount - 1. The default value is 0. + + + + + Gets the underlying document from which pages are imported. + + + + + Extracts the page number if the path has the form 'MyFile.pdf#123' and returns + the actual path without the number sign and the following digits. + + + + + Defines an object used to draw lines and curves. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Clones this instance. + + + + + Gets or sets the color. + + + + + Gets or sets the width. + + + + + Gets or sets the line join. + + + + + Gets or sets the line cap. + + + + + Gets or sets the miter limit. + + + + + Gets or sets the dash style. + + + + + Gets or sets the dash offset. + + + + + Gets or sets the dash pattern. + + + + + Gets or sets a value indicating whether the pen enables overprint when used in a PDF document. + Experimental, takes effect only on CMYK color mode. + + + + + Pens for all the pre-defined colors. + + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + Gets a pre-defined XPen object. + + + + Represents a pair of floating point x- and y-coordinates that defines a point + in a two-dimensional plane. + + + + + Initializes a new instance of the XPoint class with the specified coordinates. + + + + + Determines whether two points are equal. + + + + + Determines whether two points are not equal. + + + + + Indicates whether the specified points are equal. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Indicates whether this instance and a specified point are equal. + + + + + Returns the hash code for this instance. + + + + + Parses the point from a string. + + + + + Parses an array of points from a string. + + + + + Gets the x-coordinate of this XPoint. + + + + + Gets the x-coordinate of this XPoint. + + + + + Converts this XPoint to a human readable string. + + + + + Converts this XPoint to a human readable string. + + + + + Converts this XPoint to a human readable string. + + + + + Implements ToString. + + + + + Offsets the x and y value of this point. + + + + + Adds a point and a vector. + + + + + Adds a point and a size. + + + + + Adds a point and a vector. + + + + + Subtracts a vector from a point. + + + + + Subtracts a vector from a point. + + + + + Subtracts a point from a point. + + + + + Subtracts a size from a point. + + + + + Subtracts a point from a point. + + + + + Multiplies a point with a matrix. + + + + + Multiplies a point with a matrix. + + + + + Multiplies a point with a scalar value. + + + + + Multiplies a point with a scalar value. + + + + + Performs an explicit conversion from XPoint to XSize. + + + + + Performs an explicit conversion from XPoint to XVector. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Makes fonts that are not installed on the system available within the current application domain.
+ In Silverlight required for all fonts used in PDF documents. +
+
+ + + Initializes a new instance of the class. + + + + + Gets the global font collection. + + + + + Adds the specified font data to the global PrivateFontCollection. + Family name and style are automatically retrieved from the font. + + + + + Adds the specified font data to the global PrivateFontCollection. + Family name and style are automatically retrieved from the font. + + + + + Stores a set of four floating-point numbers that represent the location and size of a rectangle. + + + + + Initializes a new instance of the XRect class. + + + + + Initializes a new instance of the XRect class. + + + + + Initializes a new instance of the XRect class. + + + + + Initializes a new instance of the XRect class. + + + + + Initializes a new instance of the XRect class. + + + + + Creates a rectangle from for straight lines. + + + + + Determines whether the two rectangles are equal. + + + + + Determines whether the two rectangles are not equal. + + + + + Determines whether the two rectangles are equal. + + + + + Determines whether this instance and the specified object are equal. + + + + + Determines whether this instance and the specified rect are equal. + + + + + Returns the hash code for this instance. + + + + + Parses the rectangle from a string. + + + + + Converts this XRect to a human readable string. + + + + + Converts this XRect to a human readable string. + + + + + Converts this XRect to a human readable string. + + + + + Gets the empty rectangle. + + + + + Gets a value indicating whether this instance is empty. + + + + + Gets or sets the location of the rectangle. + + + + + Gets or sets the size of the rectangle. + + + + + Gets or sets the X value of the rectangle. + + + + + Gets or sets the Y value of the rectangle. + + + + + Gets or sets the width of the rectangle. + + + + + Gets or sets the height of the rectangle. + + + + + Gets the x-axis value of the left side of the rectangle. + + + + + Gets the y-axis value of the top side of the rectangle. + + + + + Gets the x-axis value of the right side of the rectangle. + + + + + Gets the y-axis value of the bottom side of the rectangle. + + + + + Gets the position of the top-left corner of the rectangle. + + + + + Gets the position of the top-right corner of the rectangle. + + + + + Gets the position of the bottom-left corner of the rectangle. + + + + + Gets the position of the bottom-right corner of the rectangle. + + + + + Gets the center of the rectangle. + + + + + Indicates whether the rectangle contains the specified point. + + + + + Indicates whether the rectangle contains the specified point. + + + + + Indicates whether the rectangle contains the specified rectangle. + + + + + Indicates whether the specified rectangle intersects with the current rectangle. + + + + + Sets current rectangle to the intersection of the current rectangle and the specified rectangle. + + + + + Returns the intersection of two rectangles. + + + + + Sets current rectangle to the union of the current rectangle and the specified rectangle. + + + + + Returns the union of two rectangles. + + + + + Sets current rectangle to the union of the current rectangle and the specified point. + + + + + Returns the intersection of a rectangle and a point. + + + + + Moves a rectangle by the specified amount. + + + + + Moves a rectangle by the specified amount. + + + + + Returns a rectangle that is offset from the specified rectangle by using the specified vector. + + + + + Returns a rectangle that is offset from the specified rectangle by using specified horizontal and vertical amounts. + + + + + Translates the rectangle by adding the specified point. + + + + + Translates the rectangle by subtracting the specified point. + + + + + Expands the rectangle by using the specified Size, in all directions. + + + + + Expands or shrinks the rectangle by using the specified width and height amounts, in all directions. + + + + + Returns the rectangle that results from expanding the specified rectangle by the specified Size, in all directions. + + + + + Creates a rectangle that results from expanding or shrinking the specified rectangle by the specified width and height amounts, in all directions. + + + + + Returns the rectangle that results from applying the specified matrix to the specified rectangle. + + + + + Transforms the rectangle by applying the specified matrix. + + + + + Multiplies the size of the current rectangle by the specified x and y values. + + + + + Gets the DebuggerDisplayAttribute text. + + The debugger display. + + + + Represents a pair of floating-point numbers, typically the width and height of a + graphical object. + + + + + Initializes a new instance of the XPoint class with the specified values. + + + + + Determines whether two size objects are equal. + + + + + Determines whether two size objects are not equal. + + + + + Indicates whether this two instance are equal. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Indicates whether this instance and a specified size are equal. + + + + + Returns the hash code for this instance. + + + + + Parses the size from a string. + + + + + Converts this XSize to an XPoint. + + + + + Converts this XSize to an XVector. + + + + + Converts this XSize to a human readable string. + + + + + Converts this XSize to a human readable string. + + + + + Converts this XSize to a human readable string. + + + + + Returns an empty size, i.e. a size with a width or height less than 0. + + + + + Gets a value indicating whether this instance is empty. + + + + + Gets or sets the width. + + + + + Gets or sets the height. + + + + + Performs an explicit conversion from XSize to XVector. + + + + + Performs an explicit conversion from XSize to XPoint. + + + + + Gets the DebuggerDisplayAttribute text. + + The debugger display. + + + + Defines a single color object used to fill shapes and draw text. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the color of this brush. + + + + + Gets or sets a value indicating whether the brush enables overprint when used in a PDF document. + Experimental, takes effect only on CMYK color mode. + + + + + Represents the text layout information. + + + + + Initializes a new instance of the class. + + + + + Gets or sets horizontal text alignment information. + + + + + Gets or sets the line alignment. + + + + + Gets a new XStringFormat object that aligns the text left on the base line. + + + + + Gets a new XStringFormat object that aligns the text top left of the layout rectangle. + + + + + Gets a new XStringFormat object that centers the text in the middle of the layout rectangle. + + + + + Gets a new XStringFormat object that centers the text at the top of the layout rectangle. + + + + + Gets a new XStringFormat object that centers the text at the bottom of the layout rectangle. + + + + + Represents predefined text layouts. + + + + + Gets a new XStringFormat object that aligns the text left on the base line. + This is the same as BaseLineLeft. + + + + + Gets a new XStringFormat object that aligns the text left on the base line. + This is the same as Default. + + + + + Gets a new XStringFormat object that aligns the text top left of the layout rectangle. + + + + + Gets a new XStringFormat object that aligns the text center left of the layout rectangle. + + + + + Gets a new XStringFormat object that aligns the text bottom left of the layout rectangle. + + + + + Gets a new XStringFormat object that centers the text in the middle of the base line. + + + + + Gets a new XStringFormat object that centers the text at the top of the layout rectangle. + + + + + Gets a new XStringFormat object that centers the text in the middle of the layout rectangle. + + + + + Gets a new XStringFormat object that centers the text at the bottom of the layout rectangle. + + + + + Gets a new XStringFormat object that aligns the text in right on the base line. + + + + + Gets a new XStringFormat object that aligns the text top right of the layout rectangle. + + + + + Gets a new XStringFormat object that aligns the text center right of the layout rectangle. + + + + + Gets a new XStringFormat object that aligns the text at the bottom right of the layout rectangle. + + + + + Represents a value and its unit of measure. The structure converts implicitly from and to + double with a value measured in point. + + + + + Initializes a new instance of the XUnit class with type set to point. + + + + + Initializes a new instance of the XUnit class. + + + + + Gets the raw value of the object without any conversion. + To determine the XGraphicsUnit use property Type. + To get the value in point use the implicit conversion to double. + + + + + Gets the unit of measure. + + + + + Gets or sets the value in point. + + + + + Gets or sets the value in inch. + + + + + Gets or sets the value in millimeter. + + + + + Gets or sets the value in centimeter. + + + + + Gets or sets the value in presentation units (1/96 inch). + + + + + Returns the object as string using the format information. + The unit of measure is appended to the end of the string. + + + + + Returns the object as string using the specified format and format information. + The unit of measure is appended to the end of the string. + + + + + Returns the object as string. The unit of measure is appended to the end of the string. + + + + + Returns the unit of measure of the object as a string like 'pt', 'cm', or 'in'. + + + + + Returns an XUnit object. Sets type to point. + + + + + Returns an XUnit object. Sets type to inch. + + + + + Returns an XUnit object. Sets type to millimeters. + + + + + Returns an XUnit object. Sets type to centimeters. + + + + + Returns an XUnit object. Sets type to Presentation. + + + + + Converts a string to an XUnit object. + If the string contains a suffix like 'cm' or 'in' the object will be converted + to the appropriate type, otherwise point is assumed. + + + + + Converts an int to an XUnit object with type set to point. + + + + + Converts a double to an XUnit object with type set to point. + + + + + Returns a double value as point. + + + + + Memberwise comparison. To compare by value, + use code like Math.Abs(a.Pt - b.Pt) < 1e-5. + + + + + Memberwise comparison. To compare by value, + use code like Math.Abs(a.Pt - b.Pt) < 1e-5. + + + + + Calls base class Equals. + + + + + Returns the hash code for this instance. + + + + + This member is intended to be used by XmlDomainObjectReader only. + + + + + Converts an existing object from one unit into another unit type. + + + + + Represents a unit with all values zero. + + + + + Gets the DebuggerDisplayAttribute text. + + The debugger display. + + + + Represents a two-dimensional vector specified by x- and y-coordinates. + + + + + Gets the DebuggerDisplayAttribute text. + + The debugger display. + + + + Identifies the technology of an OpenType font file. + + + + + Font is Adobe Postscript font in CFF. + + + + + Font is a TrueType font. + + + + + Font is a TrueType font collection. + + + + + TrueType font table names. + + + + + Character to glyph mapping. + + + + + Font header . + + + + + Horizontal header. + + + + + Horizontal Metrics. + + + + + Maximum profile. + + + + + Naming table. + + + + + OS/2 and Windows specific Metrics. + + + + + PostScript information. + + + + + Control Value Table. + + + + + Font program. + + + + + Glyph data. + + + + + Index to location. + + + + + CVT Program. + + + + + PostScript font program (compact font format). + + + + + Vertical Origin. + + + + + Embedded bitmap data. + + + + + Embedded bitmap location data. + + + + + Embedded bitmap scaling data. + + + + + Baseline data. + + + + + Glyph definition data. + + + + + Glyph positioning data. + + + + + Glyph substitution data. + + + + + Justification data. + + + + + Digital signature. + + + + + Grid-fitting/Scan-conversion. + + + + + Horizontal device Metrics. + + + + + Kerning. + + + + + Linear threshold data. + + + + + PCL 5 data. + + + + + Vertical device Metrics. + + + + + Vertical Header. + + + + + Vertical Metrics. + + + + + Base class for all font descriptors. + Currently only OpenTypeDescriptor is derived from this base class. + + + + + + + + + + + + + + + Gets a value indicating whether this instance belongs to a bold font. + + + + + + + + + + Gets a value indicating whether this instance belongs to an italic font. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This table contains information that describes the glyphs in the font in the TrueType outline format. + Information regarding the rasterizer (scaler) refers to the TrueType rasterizer. + http://www.microsoft.com/typography/otspec/glyf.htm + + + + + Converts the bytes in a handy representation + + + + + Gets the data of the specified glyph. + + + + + Gets the size of the byte array that defines the glyph. + + + + + Gets the offset of the specified glyph relative to the first byte of the font image. + + + + + Adds for all composite glyphs the glyphs the composite one is made of. + + + + + If the specified glyph is a composite glyph add the glyphs it is made of to the glyph table. + + + + + Prepares the font table to be compiled into its binary representation. + + + + + Converts the font into its binary representation. + + + + + Global table of all OpenType fontfaces cached by their face name and check sum. + + + + + Tries to get fontface by its key. + + + + + Tries to get fontface by its check sum. + + + + + Gets the singleton. + + + + + Maps face name to OpenType fontface. + + + + + Maps font source key to OpenType fontface. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Global table of all glyph typefaces. + + + + + Gets the singleton. + + + + + Maps typeface key to glyph typeface. + + + + + The indexToLoc table stores the offsets to the locations of the glyphs in the font, + relative to the beginning of the glyphData table. In order to compute the length of + the last glyph element, there is an extra entry after the last valid index. + + + + + Converts the bytes in a handy representation + + + + + Prepares the font table to be compiled into its binary representation. + + + + + Converts the font into its binary representation. + + + + + Represents an indirect reference to an existing font table in a font image. + Used to create binary copies of an existing font table that is not modified. + + + + + Prepares the font table to be compiled into its binary representation. + + + + + Converts the font into its binary representation. + + + + + The OpenType font descriptor. + Currently the only font type PDFsharp supports. + + + + + New... + + + + + Gets a value indicating whether this instance belongs to a bold font. + + + + + Gets a value indicating whether this instance belongs to an italic font. + + + + + Maps a unicode to the index of the corresponding glyph. + See OpenType spec "cmap - Character To Glyph Index Mapping Table / Format 4: Segment mapping to delta values" + for details about this a little bit strange looking algorithm. + + + + + Converts the width of a glyph identified by its index to PDF design units. + + + + + //Converts the width of a glyph identified by its index to PDF design units. + + + + + //Converts the width of a glyph identified by its index to PDF design units. + + + + + Represents an OpenType fontface in memory. + + + + + Shallow copy for font subset. + + + + + Initializes a new instance of the class. + + + + + Gets the full face name from the name table. + Name is also used as the key. + + + + + Gets the bytes that represents the font data. + + + + + The dictionary of all font tables. + + + + + Adds the specified table to this font image. + + + + + Reads all required tables from the font data. + + + + + Creates a new font image that is a subset of this font image containing only the specified glyphs. + + + + + Compiles the font to its binary representation. + + + + + Reads a System.Byte. + + + + + Reads a System.Int16. + + + + + Reads a System.UInt16. + + + + + Reads a System.Int32. + + + + + Reads a System.UInt32. + + + + + Reads a System.Int32. + + + + + Reads a System.Int16. + + + + + Reads a System.UInt16. + + + + + Reads a System.Int64. + + + + + Reads a System.String with the specified size. + + + + + Reads a System.Byte[] with the specified size. + + + + + Reads the specified buffer. + + + + + Reads the specified buffer. + + + + + Reads a System.Char[4] as System.String. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Represents the font offset table. + + + + + 0x00010000 for Version 1.0. + + + + + Number of tables. + + + + + (Maximum power of 2 ≤ numTables) x 16. + + + + + Log2(maximum power of 2 ≤ numTables). + + + + + NumTables x 16-searchRange. + + + + + Writes the offset table. + + + + + Base class for all OpenType tables used in PDFsharp. + + + + + Creates a deep copy of the current instance. + + + + + Gets the font image the table belongs to. + + + + + When overridden in a derived class, prepares the font table to be compiled into its binary representation. + + + + + When overridden in a derived class, converts the font into its binary representation. + + + + + Calculates the checksum of a table represented by its bytes. + + + + + Only Symbol and Unicode is used by PDFsharp. + + + + + CMap format 4: Segment mapping to delta values. + The Windows standard format. + + + + + This table defines the mapping of character codes to the glyph index values used in the font. + It may contain more than one subtable, in order to support more than one character encoding scheme. + + + + + Is true for symbol font encoding. + + + + + Initializes a new instance of the class. + + + + + This table gives global information about the font. The bounding box values should be computed using + only glyphs that have contours. Glyphs with no contours should be ignored for the purposes of these calculations. + + + + + This table contains information for horizontal layout. The values in the minRightSidebearing, + MinLeftSideBearing and xMaxExtent should be computed using only glyphs that have contours. + Glyphs with no contours should be ignored for the purposes of these calculations. + All reserved areas must be set to 0. + + + + + The type longHorMetric is defined as an array where each element has two parts: + the advance width, which is of type USHORT, and the left side bearing, which is of type SHORT. + These fields are in font design units. + + + + + The vertical Metrics table allows you to specify the vertical spacing for each glyph in a + vertical font. This table consists of either one or two arrays that contain metric + information (the advance heights and top sidebearings) for the vertical layout of each + of the glyphs in the font. + + + + + This table establishes the memory requirements for this font. + Fonts with CFF data must use Version 0.5 of this table, specifying only the numGlyphs field. + Fonts with TrueType outlines must use Version 1.0 of this table, where all data is required. + Both formats of OpenType require a 'maxp' table because a number of applications call the + Windows GetFontData() API on the 'maxp' table to determine the number of glyphs in the font. + + + + + The naming table allows multilingual strings to be associated with the OpenTypeTM font file. + These strings can represent copyright notices, font names, family names, style names, and so on. + To keep this table short, the font manufacturer may wish to make a limited set of entries in some + small set of languages; later, the font can be "localized" and the strings translated or added. + Other parts of the OpenType font file that require these strings can then refer to them simply by + their index number. Clients that need a particular string can look it up by its platform ID, character + encoding ID, language ID and name ID. Note that some platforms may require single byte character + strings, while others may require double byte strings. + + For historical reasons, some applications which install fonts perform Version control using Macintosh + platform (platform ID 1) strings from the 'name' table. Because of this, we strongly recommend that + the 'name' table of all fonts include Macintosh platform strings and that the syntax of the Version + number (name id 5) follows the guidelines given in this document. + + + + + Get the font family name. + + + + + Get the font subfamily name. + + + + + Get the full font name. + + + + + The OS/2 table consists of a set of Metrics that are required in OpenType fonts. + + + + + This table contains additional information needed to use TrueType or OpenTypeTM fonts + on PostScript printers. + + + + + This table contains a list of values that can be referenced by instructions. + They can be used, among other things, to control characteristics for different glyphs. + The length of the table must be an integral number of FWORD units. + + + + + This table is similar to the CVT Program, except that it is only run once, when the font is first used. + It is used only for FDEFs and IDEFs. Thus the CVT Program need not contain function definitions. + However, the CVT Program may redefine existing FDEFs or IDEFs. + + + + + The Control Value Program consists of a set of TrueType instructions that will be executed whenever the font or + point size or transformation matrix change and before each glyph is interpreted. Any instruction is legal in the + CVT Program but since no glyph is associated with it, instructions intended to move points within a particular + glyph outline cannot be used in the CVT Program. The name 'prep' is anachronistic. + + + + + This table contains information that describes the glyphs in the font in the TrueType outline format. + Information regarding the rasterizer (scaler) refers to the TrueType rasterizer. + + + + + Represents a writer for True Type font files. + + + + + Initializes a new instance of the class. + + + + + Writes a table name. + + + + + Represents an entry in the fonts table dictionary. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + 4 -byte identifier. + + + + + CheckSum for this table. + + + + + Offset from beginning of TrueType font file. + + + + + Actual length of this table in bytes. + + + + + Gets the length rounded up to a multiple of four bytes. + + + + + Associated font table. + + + + + Creates and reads a TableDirectoryEntry from the font image. + + + + + Helper class that determines the characters used in a particular font. + + + + + Adds the characters of the specified string to the hashtable. + + + + + Adds the glyphIndices to the hashtable. + + + + + Adds a ANSI characters. + + + + + Parameters that affect font selection. + + + + + Represents a font resolver info created by the platform font resolver. + + + + + Default platform specific font resolving. + + + + + Resolves the typeface by generating a font resolver info. + + Name of the font family. + Indicates whether a bold font is requested. + Indicates whether an italic font is requested. + + + + Internal implementation. + + + + + Create a GDI+ font and use its handle to retrieve font data using native calls. + + + + + Describes the physical font that must be used to render a particular XFont. + + + + + Initializes a new instance of the struct. + + The name that uniquely identifies the fontface. + + + + Initializes a new instance of the struct. + + The name that uniquely identifies the fontface. + Set to true to simulate bold when rendered. Not implemented and must be false. + Set to true to simulate italic when rendered. + Index of the font in a true type font collection. + Not yet implemented and must be zero. + + + + + Initializes a new instance of the struct. + + The name that uniquely identifies the fontface. + Set to true to simulate bold when rendered. Not implemented and must be false. + Set to true to simulate italic when rendered. + + + + Initializes a new instance of the struct. + + The name that uniquely identifies the fontface. + The style simulation flags. + + + + Gets the key for this object. + + + + + A name that uniquely identifies the font (not the family), e.g. the file name of the font. PDFsharp does not use this + name internally, but passes it to the GetFont function of the IFontResolver interface to retrieve the font data. + + + + + Indicates whether bold must be simulated. Bold simulation is not implemented in PDFsharp. + + + + + Indicates whether italic must be simulated. + + + + + Gets the style simulation flags. + + + + + The number of the font in a Truetype font collection file. The number of the first font is 0. + NOT YET IMPLEMENTED. Must be zero. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Provides functionality that converts a requested typeface into a physical font. + + + + + Converts specified information about a required typeface into a specific font. + + Name of the font family. + Set to true when a bold fontface is required. + Set to true when an italic fontface is required. + Information about the physical font, or null if the request cannot be satisfied. + + + + Gets the bytes of a physical font with specified face name. + + A face name previously retrieved by ResolveTypeface. + + + + Provides functionality to specify information about the handling of fonts in the current application domain. + + + + + The name of the default font. + + + + + Gets or sets the global font resolver for the current application domain. + This static function must be called only once and before any font operation was executed by PDFsharp. + If this is not easily to obtain, e.g. because your code is running on a web server, you must provide the + same instance of your font resolver in every subsequent setting of this property. + In a web application set the font resolver in Global.asax. + + + + + Gets or sets the default font encoding used for XFont objects where encoding is not explicitly specified. + If it is not set, the default value is PdfFontEncoding.Unicode. + If you are sure your document contains only Windows-1252 characters (see https://en.wikipedia.org/wiki/Windows-1252) + set default encoding to PdfFontEncodingj.Windows1252. + Must be set only once per app domain. + + + + + Global table of OpenType font descriptor objects. + + + + + Gets the FontDescriptor identified by the specified XFont. If no such object + exists, a new FontDescriptor is created and added to the cache. + + + + + Gets the FontDescriptor identified by the specified FontSelector. If no such object + exists, a new FontDescriptor is created and added to the stock. + + + + + Gets the singleton. + + + + + Maps font font descriptor key to font descriptor. + + + + + Provides functionality to map a fontface request to a physical font. + + + + + Converts specified information about a required typeface into a specific font. + + Name of the font family. + The font resolving options. + Typeface key if already known by caller, null otherwise. + + Information about the typeface, or null if no typeface can be found. + + + + + Gets the bytes of a physical font with specified face name. + + + + + Gets the bytes of a physical font with specified face name. + + + + + Gets a value indicating whether at least one font source was created. + + + + + Caches a font source under its face name and its key. + + + + + Caches a font source under its face name and its key. + + + + + Maps font typeface key to font resolver info. + + + + + Maps typeface key or font name to font source. + + + + + Maps font source key to font source. + + + + + Represents a writer for generation of font file streams. + + + + + Initializes a new instance of the class. + Data is written in Motorola format (big-endian). + + + + + Closes the writer and, if specified, the underlying stream. + + + + + Closes the writer and the underlying stream. + + + + + Gets or sets the position within the stream. + + + + + Writes the specified value to the font stream. + + + + + Writes the specified value to the font stream. + + + + + Writes the specified value to the font stream using big-endian. + + + + + Writes the specified value to the font stream using big-endian. + + + + + Writes the specified value to the font stream using big-endian. + + + + + Writes the specified value to the font stream using big-endian. + + + + + Writes the specified value to the font stream using big-endian. + + + + + Writes the specified value to the font stream using big-endian. + + + + + Gets the underlying stream. + + + + + Specifies the flags of AcroForm fields. + + + + + If set, the user may not change the value of the field. Any associated widget + annotations will not interact with the user; that is, they will not respond to + mouse clicks or change their appearance in response to mouse motions. This + flag is useful for fields whose values are computed or imported from a database. + + + + + If set, the field must have a value at the time it is exported by a submit-form action. + + + + + If set, the field must not be exported by a submit-form action. + + + + + If set, the field is a pushbutton that does not retain a permanent value. + + + + + If set, the field is a set of radio buttons; if clear, the field is a checkbox. + This flag is meaningful only if the Pushbutton flag is clear. + + + + + (Radio buttons only) If set, exactly one radio button must be selected at all times; + clicking the currently selected button has no effect. If clear, clicking + the selected button deselects it, leaving no button selected. + + + + + If set, the field may contain multiple lines of text; if clear, the field’s text + is restricted to a single line. + + + + + If set, the field is intended for entering a secure password that should + not be echoed visibly to the screen. Characters typed from the keyboard + should instead be echoed in some unreadable form, such as + asterisks or bullet characters. + To protect password confidentiality, viewer applications should never + store the value of the text field in the PDF file if this flag is set. + + + + + (PDF 1.4) If set, the text entered in the field represents the pathname of + a file whose contents are to be submitted as the value of the field. + + + + + (PDF 1.4) If set, the text entered in the field will not be spell-checked. + + + + + (PDF 1.4) If set, the field will not scroll (horizontally for single-line + fields, vertically for multiple-line fields) to accommodate more text + than will fit within its annotation rectangle. Once the field is full, no + further text will be accepted. + + + + + If set, the field is a combo box; if clear, the field is a list box. + + + + + If set, the combo box includes an editable text box as well as a drop list; + if clear, it includes only a drop list. This flag is meaningful only if the + Combo flag is set. + + + + + If set, the field’s option items should be sorted alphabetically. This flag is + intended for use by form authoring tools, not by PDF viewer applications; + viewers should simply display the options in the order in which they occur + in the Opt array. + + + + + (PDF 1.4) If set, more than one of the field’s option items may be selected + simultaneously; if clear, no more than one item at a time may be selected. + + + + + (PDF 1.4) If set, the text entered in the field will not be spell-checked. + This flag is meaningful only if the Combo and Edit flags are both set. + + + + + Represents the base class for all interactive field dictionaries. + + + + + Initializes a new instance of PdfAcroField. + + + + + Initializes a new instance of the class. Used for type transformation. + + + + + Gets the name of this field. + + + + + Gets the field flags of this instance. + + + + + Gets or sets the value of the field. + + + + + Gets or sets a value indicating whether the field is read only. + + + + + Gets the field with the specified name. + + + + + Gets a child field by name. + + + + + Indicates whether the field has child fields. + + + + + Gets the names of all descendants of this field. + + + + + Gets the names of all descendants of this field. + + + + + Gets the names of all appearance dictionaries of this AcroField. + + + + + Gets the collection of fields within this field. + + + + + Holds a collection of interactive fields. + + + + + Gets the number of elements in the array. + + + + + Gets the names of all fields in the collection. + + + + + Gets an array of all descendant names. + + + + + Gets a field from the collection. For your convenience an instance of a derived class like + PdfTextField or PdfCheckBox is returned if PDFsharp can guess the actual type of the dictionary. + If the actual type cannot be guessed by PDFsharp the function returns an instance + of PdfGenericField. + + + + + Gets the field with the specified name. + + + + + Create a derived type like PdfTextField or PdfCheckBox if possible. + If the actual cannot be guessed by PDFsharp the function returns an instance + of PdfGenericField. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + (Required for terminal fields; inheritable) The type of field that this dictionary + describes: + Btn Button + Tx Text + Ch Choice + Sig (PDF 1.3) Signature + Note: This entry may be present in a nonterminal field (one whose descendants + are themselves fields) in order to provide an inheritable FT value. However, a + nonterminal field does not logically have a type of its own; it is merely a container + for inheritable attributes that are intended for descendant terminal fields of + any type. + + + + + (Required if this field is the child of another in the field hierarchy; absent otherwise) + The field that is the immediate parent of this one (the field, if any, whose Kids array + includes this field). A field can have at most one parent; that is, it can be included + in the Kids array of at most one other field. + + + + + (Optional) An array of indirect references to the immediate children of this field. + + + + + (Optional) The partial field name. + + + + + (Optional; PDF 1.3) An alternate field name, to be used in place of the actual + field name wherever the field must be identified in the user interface (such as + in error or status messages referring to the field). This text is also useful + when extracting the document’s contents in support of accessibility to disabled + users or for other purposes. + + + + + (Optional; PDF 1.3) The mapping name to be used when exporting interactive form field + data from the document. + + + + + (Optional; inheritable) A set of flags specifying various characteristics of the field. + Default value: 0. + + + + + (Optional; inheritable) The field’s value, whose format varies depending on + the field type; see the descriptions of individual field types for further information. + + + + + (Optional; inheritable) The default value to which the field reverts when a + reset-form action is executed. The format of this value is the same as that of V. + + + + + (Optional; PDF 1.2) An additional-actions dictionary defining the field’s behavior + in response to various trigger events. This entry has exactly the same meaning as + the AA entry in an annotation dictionary. + + + + + (Required; inheritable) A resource dictionary containing default resources + (such as fonts, patterns, or color spaces) to be used by the appearance stream. + At a minimum, this dictionary must contain a Font entry specifying the resource + name and font dictionary of the default font for displaying the field’s text. + + + + + (Required; inheritable) The default appearance string, containing a sequence of + valid page-content graphics or text state operators defining such properties as + the field’s text size and color. + + + + + (Optional; inheritable) A code specifying the form of quadding (justification) + to be used in displaying the text: + 0 Left-justified + 1 Centered + 2 Right-justified + Default value: 0 (left-justified). + + + + + Represents an interactive form (or AcroForm), a collection of fields for + gathering information interactively from the user. + + + + + Initializes a new instance of AcroForm. + + + + + Gets the fields collection of this form. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + (Required) An array of references to the document’s root fields (those with + no ancestors in the field hierarchy). + + + + + (Optional) A flag specifying whether to construct appearance streams and + appearance dictionaries for all widget annotations in the document. + Default value: false. + + + + + (Optional; PDF 1.3) A set of flags specifying various document-level characteristics + related to signature fields. + Default value: 0. + + + + + (Required if any fields in the document have additional-actions dictionaries + containing a C entry; PDF 1.3) An array of indirect references to field dictionaries + with calculation actions, defining the calculation order in which their values will + be recalculated when the value of any field changes. + + + + + (Optional) A document-wide default value for the DR attribute of variable text fields. + + + + + (Optional) A document-wide default value for the DA attribute of variable text fields. + + + + + (Optional) A document-wide default value for the Q attribute of variable text fields. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the base class for all button fields. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the name which represents the opposite of /Off. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + Represents the check box field. + + + + + Initializes a new instance of PdfCheckBoxField. + + + + + Indicates whether the field is checked. + + + + + Gets or sets the name of the dictionary that represents the Checked state. + + The default value is "/Yes". + + + + Gets or sets the name of the dictionary that represents the Unchecked state. + The default value is "/Off". + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + (Optional; inheritable; PDF 1.4) A text string to be used in place of the V entry for the + value of the field. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the base class for all choice field dictionaries. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the index of the specified string in the /Opt array or -1, if no such string exists. + + + + + Gets the value from the index in the /Opt array. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + (Required; inheritable) An array of options to be presented to the user. Each element of + the array is either a text string representing one of the available options or a two-element + array consisting of a text string together with a default appearance string for constructing + the item’s appearance dynamically at viewing time. + + + + + (Optional; inheritable) For scrollable list boxes, the top index (the index in the Opt array + of the first option visible in the list). + + + + + (Sometimes required, otherwise optional; inheritable; PDF 1.4) For choice fields that allow + multiple selection (MultiSelect flag set), an array of integers, sorted in ascending order, + representing the zero-based indices in the Opt array of the currently selected option + items. This entry is required when two or more elements in the Opt array have different + names but the same export value, or when the value of the choice field is an array; in + other cases, it is permitted but not required. If the items identified by this entry differ + from those in the V entry of the field dictionary (see below), the V entry takes precedence. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the combo box field. + + + + + Initializes a new instance of PdfComboBoxField. + + + + + Gets or sets the index of the selected item. + + + + + Gets or sets the value of the field. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a generic field. Used for AcroForm dictionaries unknown to PDFsharp. + + + + + Initializes a new instance of PdfGenericField. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the list box field. + + + + + Initializes a new instance of PdfListBoxField. + + + + + Gets or sets the index of the selected item + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the push button field. + + + + + Initializes a new instance of PdfPushButtonField. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the radio button field. + + + + + Initializes a new instance of PdfRadioButtonField. + + + + + Gets or sets the index of the selected radio button in a radio button group. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + (Optional; inheritable; PDF 1.4) An array of text strings to be used in + place of the V entries for the values of the widget annotations representing + the individual radio buttons. Each element in the array represents + the export value of the corresponding widget annotation in the + Kids array of the radio button field. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the signature field. + + + + + Initializes a new instance of PdfSignatureField. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + (Optional) The type of PDF object that this dictionary describes; if present, + must be Sig for a signature dictionary. + + + + + (Required; inheritable) The name of the signature handler to be used for + authenticating the field’s contents, such as Adobe.PPKLite, Entrust.PPKEF, + CICI.SignIt, or VeriSign.PPKVS. + + + + + (Optional) The name of a specific submethod of the specified handler. + + + + + (Required) An array of pairs of integers (starting byte offset, length in bytes) + describing the exact byte range for the digest calculation. Multiple discontinuous + byte ranges may be used to describe a digest that does not include the + signature token itself. + + + + + (Required) The encrypted signature token. + + + + + (Optional) The name of the person or authority signing the document. + + + + + (Optional) The time of signing. Depending on the signature handler, this + may be a normal unverified computer time or a time generated in a verifiable + way from a secure time server. + + + + + (Optional) The CPU host name or physical location of the signing. + + + + + (Optional) The reason for the signing, such as (I agree…). + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the text field. + + + + + Initializes a new instance of PdfTextField. + + + + + Gets or sets the text value of the text field. + + + + + Gets or sets the font used to draw the text of the field. + + + + + Gets or sets the foreground color of the field. + + + + + Gets or sets the background color of the field. + + + + + Gets or sets the maximum length of the field. + + The length of the max. + + + + Gets or sets a value indicating whether the field has multiple lines. + + + + + Gets or sets a value indicating whether this field is used for passwords. + + + + + Creates the normal appearance form X object for the annotation that represents + this acro form text field. + + + + + Predefined keys of this dictionary. + The description comes from PDF 1.4 Reference. + + + + + (Optional; inheritable) The maximum length of the field’s text, in characters. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Specifies the predefined PDF actions. + + + + + Go to next page. + + + + + Go to previous page. + + + + + Go to first page. + + + + + Go to last page. + + + + + Represents a PDF Goto actions. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document that owns this object. + + + + Predefined keys of this dictionary. + + + + + (Required) The destination to jump to (see Section 8.2.1, “Destinations”). + + + + + Represents the base class for all PDF actions. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document that owns this object. + + + + Predefined keys of this dictionary. + + + + + (Optional) The type of PDF object that this dictionary describes; + if present, must be Action for an action dictionary. + + + + + (Required) The type of action that this dictionary describes. + + + + + (Optional; PDF 1.2) The next action or sequence of actions to be performed + after the action represented by this dictionary. The value is either a + single action dictionary or an array of action dictionaries to be performed + in order; see below for further discussion. + + + + + Represents the catalog dictionary. + + + + + Initializes a new instance of the class. + + + + + Get or sets the version of the PDF specification to which the document conforms. + + + + + Gets the pages collection of this document. + + + + + Implementation of PdfDocument.PageLayout. + + + + + Implementation of PdfDocument.PageMode. + + + + + Implementation of PdfDocument.ViewerPreferences. + + + + + Implementation of PdfDocument.Outlines. + + + + + Gets the AcroForm dictionary of this document. + + + + + Gets or sets the language identifier specifying the natural language for all text in the document. + Sample values are 'en-US' for 'English United States' or 'de-DE' for 'deutsch Deutschland' (i.e. 'German Germany'). + + + + + Dispatches PrepareForSave to the objects that need it. + + + + + Predefined keys of this dictionary. + + + + + (Required) The type of PDF object that this dictionary describes; + must be Catalog for the catalog dictionary. + + + + + (Optional; PDF 1.4) The version of the PDF specification to which the document + conforms (for example, 1.4) if later than the version specified in the file’s header. + If the header specifies a later version, or if this entry is absent, the document + conforms to the version specified in the header. This entry enables a PDF producer + application to update the version using an incremental update. + + + + + (Required; must be an indirect reference) The page tree node that is the root of + the document’s page tree. + + + + + (Optional; PDF 1.3) A number tree defining the page labeling for the document. + The keys in this tree are page indices; the corresponding values are page label dictionaries. + Each page index denotes the first page in a labeling range to which the specified page + label dictionary applies. The tree must include a value for pageindex 0. + + + + + (Optional; PDF 1.2) The document’s name dictionary. + + + + + (Optional; PDF 1.1; must be an indirect reference) A dictionary of names and + corresponding destinations. + + + + + (Optional; PDF 1.2) A viewer preferences dictionary specifying the way the document + is to be displayed on the screen. If this entry is absent, applications should use + their own current user preference settings. + + + + + (Optional) A name object specifying the page layout to be used when the document is + opened: + SinglePage - Display one page at a time. + OneColumn - Display the pages in one column. + TwoColumnLeft - Display the pages in two columns, with oddnumbered pages on the left. + TwoColumnRight - Display the pages in two columns, with oddnumbered pages on the right. + TwoPageLeft - (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the left + TwoPageRight - (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the right. + + + + + (Optional) A name object specifying how the document should be displayed when opened: + UseNone - Neither document outline nor thumbnail images visible. + UseOutlines - Document outline visible. + UseThumbs - Thumbnail images visible. + FullScreen - Full-screen mode, with no menu bar, windowcontrols, or any other window visible. + UseOC - (PDF 1.5) Optional content group panel visible. + UseAttachments (PDF 1.6) Attachments panel visible. + Default value: UseNone. + + + + + (Optional; must be an indirect reference) The outline dictionary that is the root + of the document’s outline hierarchy. + + + + + (Optional; PDF 1.1; must be an indirect reference) An array of thread dictionaries + representing the document’s article threads. + + + + + (Optional; PDF 1.1) A value specifying a destination to be displayed or an action to be + performed when the document is opened. The value is either an array defining a destination + or an action dictionary representing an action. If this entry is absent, the document + should be opened to the top of the first page at the default magnification factor. + + + + + (Optional; PDF 1.4) An additional-actions dictionary defining the actions to be taken + in response to various trigger events affecting the document as a whole. + + + + + (Optional; PDF 1.1) A URI dictionary containing document-level information for URI + (uniform resource identifier) actions. + + + + + (Optional; PDF 1.2) The document’s interactive form (AcroForm) dictionary. + + + + + (Optional; PDF 1.4; must be an indirect reference) A metadata stream + containing metadata for the document. + + + + + (Optional; PDF 1.3) The document’s structure tree root dictionary. + + + + + (Optional; PDF 1.4) A mark information dictionary containing information + about the document’s usage of Tagged PDF conventions. + + + + + (Optional; PDF 1.4) A language identifier specifying the natural language for all + text in the document except where overridden by language specifications for structure + elements or marked content. If this entry is absent, the language is considered unknown. + + + + + (Optional; PDF 1.3) A Web Capture information dictionary containing state information + used by the Acrobat Web Capture (AcroSpider) plugin extension. + + + + + (Optional; PDF 1.4) An array of output intent dictionaries describing the color + characteristics of output devices on which the document might be rendered. + + + + + (Optional; PDF 1.4) A page-piece dictionary associated with the document. + + + + + (Optional; PDF 1.5; required if a document contains optional content) The document’s + optional content properties dictionary. + + + + + (Optional; PDF 1.5) A permissions dictionary that specifies user access permissions + for the document. + + + + + (Optional; PDF 1.5) A dictionary containing attestations regarding the content of a + PDF document, as it relates to the legality of digital signatures. + + + + + (Optional; PDF 1.7) An array of requirement dictionaries representing + requirements for the document. + + + + + (Optional; PDF 1.7) A collection dictionary that a PDF consumer uses to enhance + the presentation of file attachments stored in the PDF document. + + + + + (Optional; PDF 1.7) A flag used to expedite the display of PDF documents containing XFA forms. + It specifies whether the document must be regenerated when the document is first opened. + If true, the viewer application treats the document as a shell and regenerates the content + when the document is opened, regardless of any dynamic forms settings that appear in the XFA + stream itself. This setting is used to expedite the display of documents whose layout varies + depending on the content of the XFA streams. + If false, the viewer application does not regenerate the content when the document is opened. + See the XML Forms Architecture (XFA) Specification (Bibliography). + Default value: false. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a CIDFont dictionary. + + + + + Prepares the object to get saved. + + + + + Predefined keys of this dictionary. + + + + + (Required) The type of PDF object that this dictionary describes; + must be Font for a CIDFont dictionary. + + + + + (Required) The type of CIDFont; CIDFontType0 or CIDFontType2. + + + + + (Required) The PostScript name of the CIDFont. For Type 0 CIDFonts, this + is usually the value of the CIDFontName entry in the CIDFont program. For + Type 2 CIDFonts, it is derived the same way as for a simple TrueType font; + In either case, the name can have a subset prefix if appropriate. + + + + + (Required) A dictionary containing entries that define the character collection + of the CIDFont. + + + + + (Required; must be an indirect reference) A font descriptor describing the + CIDFont’s default metrics other than its glyph widths. + + + + + (Optional) The default width for glyphs in the CIDFont. + Default value: 1000. + + + + + (Optional) A description of the widths for the glyphs in the CIDFont. The + array’s elements have a variable format that can specify individual widths + for consecutive CIDs or one width for a range of CIDs. + Default value: none (the DW value is used for all glyphs). + + + + + (Optional; applies only to CIDFonts used for vertical writing) An array of two + numbers specifying the default metrics for vertical writing. + Default value: [880 −1000]. + + + + + (Optional; applies only to CIDFonts used for vertical writing) A description + of the metrics for vertical writing for the glyphs in the CIDFont. + Default value: none (the DW2 value is used for all glyphs). + + + + + (Optional; Type 2 CIDFonts only) A specification of the mapping from CIDs + to glyph indices. If the value is a stream, the bytes in the stream contain the + mapping from CIDs to glyph indices: the glyph index for a particular CID + value c is a 2-byte value stored in bytes 2 × c and 2 × c + 1, where the first + byte is the high-order byte. If the value of CIDToGIDMap is a name, it must + be Identity, indicating that the mapping between CIDs and glyph indices is + the identity mapping. + Default value: Identity. + This entry may appear only in a Type 2 CIDFont whose associated True-Type font + program is embedded in the PDF file. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the content of a page. PDFsharp supports only one content stream per page. + If an imported page has an array of content streams, the streams are concatenated to + one single stream. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The dict. + + + + Sets a value indicating whether the content is compressed with the ZIP algorithm. + + + + + Unfilters the stream. + + + + + Surround content with q/Q operations if necessary. + + + + + Predefined keys of this dictionary. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents an array of PDF content streams of a page. + + + + + Initializes a new instance of the class. + + The document. + + + + Appends a new content stream and returns it. + + + + + Prepends a new content stream and returns it. + + + + + Creates a single content stream with the bytes from the array of the content streams. + This operation does not modify any of the content streams in this array. + + + + + Replaces the current content of the page with the specified content sequence. + + + + + Replaces the current content of the page with the specified bytes. + + + + + Gets the enumerator. + + + + + Represents a PDF cross-reference stream. + + + + + Initializes a new instance of the class. + + + + + Predefined keys for cross-reference dictionaries. + + + + + (Required) The type of PDF object that this dictionary describes; + must be XRef for a cross-reference stream. + + + + + (Required) The number one greater than the highest object number + used in this section or in any section for which this is an update. + It is equivalent to the Size entry in a trailer dictionary. + + + + + (Optional) An array containing a pair of integers for each subsection in this section. + The first integer is the first object number in the subsection; the second integer + is the number of entries in the subsection. + The array is sorted in ascending order by object number. Subsections cannot overlap; + an object number may have at most one entry in a section. + Default value: [0 Size]. + + + + + (Present only if the file has more than one cross-reference stream; not meaningful in + hybrid-reference files) The byte offset from the beginning of the file to the beginning + of the previous cross-reference stream. This entry has the same function as the Prev + entry in the trailer dictionary. + + + + + (Required) An array of integers representing the size of the fields in a single + cross-reference entry. The table describes the types of entries and their fields. + For PDF 1.5, W always contains three integers; the value of each integer is the + number of bytes (in the decoded stream) of the corresponding field. For example, + [1 2 1] means that the fields are one byte, two bytes, and one byte, respectively. + + A value of zero for an element in the W array indicates that the corresponding field + is not present in the stream, and the default value is used, if there is one. If the + first element is zero, the type field is not present, and it defaults to type 1. + + The sum of the items is the total length of each entry; it can be used with the + Indexarray to determine the starting position of each subsection. + + Note: Different cross-reference streams in a PDF file may use different values for W. + + Entries in a cross-reference stream. + + TYPE FIELD DESCRIPTION + 0 1 The type of this entry, which must be 0. Type 0 entries define the linked list of free objects (corresponding to f entries in a cross-reference table). + 2 The object number of the next free object. + 3 The generation number to use if this object number is used again. + 1 1 The type of this entry, which must be 1. Type 1 entries define objects that are in use but are not compressed (corresponding to n entries in a cross-reference table). + 2 The byte offset of the object, starting from the beginning of the file. + 3 The generation number of the object. Default value: 0. + 2 1 The type of this entry, which must be 2. Type 2 entries define compressed objects. + 2 The object number of the object stream in which this object is stored. (The generation number of the object stream is implicitly 0.) + 3 The index of this object within the object stream. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents the cross-reference table of a PDF document. + It contains all indirect objects of a document. + + + + + Represents the relation between PdfObjectID and PdfReference for a PdfDocument. + + + + + Adds a cross reference entry to the table. Used when parsing the trailer. + + + + + Adds a PdfObject to the table. + + + + + Gets a cross reference entry from an object identifier. + Returns null if no object with the specified ID exists in the object table. + + + + + Indicates whether the specified object identifier is in the table. + + + + + Returns the next free object number. + + + + + Writes the xref section in pdf stream. + + + + + Gets an array of all object identifiers. For debugging purposes only. + + + + + Gets an array of all cross references in ascending order by their object identifier. + + + + + Removes all objects that cannot be reached from the trailer. + Returns the number of removed objects. + + + + + Renumbers the objects starting at 1. + + + + + Checks the logical consistence for debugging purposes (useful after reconstruction work). + + + + + Calculates the transitive closure of the specified PdfObject, i.e. all indirect objects + recursively reachable from the specified object. + + + + + Calculates the transitive closure of the specified PdfObject with the specified depth, i.e. all indirect objects + recursively reachable from the specified object in up to maximally depth steps. + + + + + Gets the cross reference to an objects used for undefined indirect references. + + + + + Represents a base class for dictionaries with a content stream. + Implement IContentStream for use with a content writer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + + + + Initializes a new instance from an existing dictionary. Used for object type transformation. + + + + + Gets the resources dictionary of this dictionary. If no such dictionary exists, it is created. + + + + + Implements the interface because the primary function is internal. + + + + + Gets the resource name of the specified image within this dictionary. + + + + + Implements the interface because the primary function is internal. + + + + + Gets the resource name of the specified form within this dictionary. + + + + + Implements the interface because the primary function is internal. + + + + + Predefined keys of this dictionary. + + + + + (Optional but strongly recommended; PDF 1.2) A dictionary specifying any + resources (such as fonts and images) required by the form XObject. + + + + + Represents an extended graphics state object. + + + + + Initializes a new instance of the class. + + The document. + + + + Used in Edf.Xps. + + + + + Used in Edf.Xps. + ...for shading patterns + + + + + Sets the alpha value for stroking operations. + + + + + Sets the alpha value for nonstroking operations. + + + + + Sets the overprint value for stroking operations. + + + + + Sets the overprint value for nonstroking operations. + + + + + Sets a soft mask object. + + + + + Common keys for all streams. + + + + + (Optional) The type of PDF object that this dictionary describes; + must be ExtGState for a graphics state parameter dictionary. + + + + + (Optional; PDF 1.3) The line width (see “Line Width” on page 185). + + + + + (Optional; PDF 1.3) The line cap style. + + + + + (Optional; PDF 1.3) The line join style. + + + + + (Optional; PDF 1.3) The miter limit. + + + + + (Optional; PDF 1.3) The line dash pattern, expressed as an array of the form + [dashArray dashPhase], where dashArray is itself an array and dashPhase is an integer. + + + + + (Optional; PDF 1.3) The name of the rendering intent. + + + + + (Optional) A flag specifying whether to apply overprint. In PDF 1.2 and earlier, + there is a single overprint parameter that applies to all painting operations. + Beginning with PDF 1.3, there are two separate overprint parameters: one for stroking + and one for all other painting operations. Specifying an OP entry sets both parameters + unless there is also an op entry in the same graphics state parameter dictionary, in + which case the OP entry sets only the overprint parameter for stroking. + + + + + (Optional; PDF 1.3) A flag specifying whether to apply overprint for painting operations + other than stroking. If this entry is absent, the OP entry, if any, sets this parameter. + + + + + (Optional; PDF 1.3) The overprint mode. + + + + + (Optional; PDF 1.3) An array of the form [font size], where font is an indirect + reference to a font dictionary and size is a number expressed in text space units. + These two objects correspond to the operands of the Tf operator; however, + the first operand is an indirect object reference instead of a resource name. + + + + + (Optional) The black-generation function, which maps the interval [0.0 1.0] + to the interval [0.0 1.0]. + + + + + (Optional; PDF 1.3) Same as BG except that the value may also be the name Default, + denoting the black-generation function that was in effect at the start of the page. + If both BG and BG2 are present in the same graphics state parameter dictionary, + BG2 takes precedence. + + + + + (Optional) The undercolor-removal function, which maps the interval + [0.0 1.0] to the interval [-1.0 1.0]. + + + + + (Optional; PDF 1.3) Same as UCR except that the value may also be the name Default, + denoting the undercolor-removal function that was in effect at the start of the page. + If both UCR and UCR2 are present in the same graphics state parameter dictionary, + UCR2 takes precedence. + + + + + (Optional) A flag specifying whether to apply automatic stroke adjustment. + + + + + (Optional; PDF 1.4) The current blend mode to be used in the transparent imaging model. + + + + + (Optional; PDF 1.4) The current soft mask, specifying the mask shape or + mask opacity values to be used in the transparent imaging model. + + + + + (Optional; PDF 1.4) The current stroking alpha constant, specifying the constant + shape or constant opacity value to be used for stroking operations in the transparent + imaging model. + + + + + (Optional; PDF 1.4) Same as CA, but for nonstroking operations. + + + + + (Optional; PDF 1.4) The alpha source flag (“alpha is shape”), specifying whether + the current soft mask and alpha constant are to be interpreted as shape values (true) + or opacity values (false). + + + + + (Optional; PDF 1.4) The text knockout flag, which determines the behavior of + overlapping glyphs within a text object in the transparent imaging model. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Contains all used ExtGState objects of a document. + + + + + Initializes a new instance of this class, which is a singleton for each document. + + + + + Gets a PdfExtGState with the key 'CA' set to the specified alpha value. + + + + + Gets a PdfExtGState with the key 'ca' set to the specified alpha value. + + + + + Represents a PDF font. + + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this instance is symbol font. + + + + + Gets or sets the CMapInfo. + + + + + Gets or sets ToUnicodeMap. + + + + + Adds a tag of exactly six uppercase letters to the font name + according to PDF Reference Section 5.5.3 'Font Subsets' + + + + + Predefined keys common to all font dictionaries. + + + + + (Required) The type of PDF object that this dictionary describes; + must be Font for a font dictionary. + + + + + (Required) The type of font. + + + + + (Required) The PostScript name of the font. + + + + + (Required except for the standard 14 fonts; must be an indirect reference) + A font descriptor describing the font’s metrics other than its glyph widths. + Note: For the standard 14 fonts, the entries FirstChar, LastChar, Widths, and + FontDescriptor must either all be present or all be absent. Ordinarily, they are + absent; specifying them enables a standard font to be overridden. + + + + + The PDF font descriptor flags. + + + + + All glyphs have the same width (as opposed to proportional or variable-pitch + fonts, which have different widths). + + + + + Glyphs have serifs, which are short strokes drawn at an angle on the top and + bottom of glyph stems. (Sans serif fonts do not have serifs.) + + + + + Font contains glyphs outside the Adobe standard Latin character set. This + flag and the Nonsymbolic flag cannot both be set or both be clear. + + + + + Glyphs resemble cursive handwriting. + + + + + Font uses the Adobe standard Latin character set or a subset of it. + + + + + Glyphs have dominant vertical strokes that are slanted. + + + + + Font contains no lowercase letters; typically used for display purposes, + such as for titles or headlines. + + + + + Font contains both uppercase and lowercase letters. The uppercase letters are + similar to those in the regular version of the same typeface family. The glyphs + for the lowercase letters have the same shapes as the corresponding uppercase + letters, but they are sized and their proportions adjusted so that they have the + same size and stroke weight as lowercase glyphs in the same typeface family. + + + + + Determines whether bold glyphs are painted with extra pixels even at very small + text sizes. + + + + + A PDF font descriptor specifies metrics and other attributes of a simple font, + as distinct from the metrics of individual glyphs. + + + + + Gets or sets the name of the font. + + + + + Gets a value indicating whether this instance is symbol font. + + + + + Predefined keys of this dictionary. + + + + + (Required) The type of PDF object that this dictionary describes; must be + FontDescriptor for a font descriptor. + + + + + (Required) The PostScript name of the font. This name should be the same as the + value of BaseFont in the font or CIDFont dictionary that refers to this font descriptor. + + + + + (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) + A string specifying the preferred font family name. For example, for the font + Times Bold Italic, the FontFamily is Times. + + + + + (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) + The font stretch value. It must be one of the following names (ordered from + narrowest to widest): UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, + Normal, SemiExpanded, Expanded, ExtraExpanded or UltraExpanded. + Note: The specific interpretation of these values varies from font to font. + For example, Condensed in one font may appear most similar to Normal in another. + + + + + (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) + The weight (thickness) component of the fully-qualified font name or font specifier. + The possible values are 100, 200, 300, 400, 500, 600, 700, 800, or 900, where each + number indicates a weight that is at least as dark as its predecessor. A value of + 400 indicates a normal weight; 700 indicates bold. + Note: The specific interpretation of these values varies from font to font. + For example, 300 in one font may appear most similar to 500 in another. + + + + + (Required) A collection of flags defining various characteristics of the font. + + + + + (Required, except for Type 3 fonts) A rectangle (see Section 3.8.4, “Rectangles”), + expressed in the glyph coordinate system, specifying the font bounding box. This + is the smallest rectangle enclosing the shape that would result if all of the + glyphs of the font were placed with their origins coincident and then filled. + + + + + (Required) The angle, expressed in degrees counterclockwise from the vertical, of + the dominant vertical strokes of the font. (For example, the 9-o’clock position is 90 + degrees, and the 3-o’clock position is –90 degrees.) The value is negative for fonts + that slope to the right, as almost all italic fonts do. + + + + + (Required, except for Type 3 fonts) The maximum height above the baseline reached + by glyphs in this font, excluding the height of glyphs for accented characters. + + + + + (Required, except for Type 3 fonts) The maximum depth below the baseline reached + by glyphs in this font. The value is a negative number. + + + + + (Optional) The spacing between baselines of consecutive lines of text. + Default value: 0. + + + + + (Required for fonts that have Latin characters, except for Type 3 fonts) The vertical + coordinate of the top of flat capital letters, measured from the baseline. + + + + + (Optional) The font’s x height: the vertical coordinate of the top of flat nonascending + lowercase letters (like the letter x), measured from the baseline, in fonts that have + Latin characters. Default value: 0. + + + + + (Required, except for Type 3 fonts) The thickness, measured horizontally, of the dominant + vertical stems of glyphs in the font. + + + + + (Optional) The thickness, measured vertically, of the dominant horizontal stems + of glyphs in the font. Default value: 0. + + + + + (Optional) The average width of glyphs in the font. Default value: 0. + + + + + (Optional) The maximum width of glyphs in the font. Default value: 0. + + + + + (Optional) The width to use for character codes whose widths are not specified in a + font dictionary’s Widths array. This has a predictable effect only if all such codes + map to glyphs whose actual widths are the same as the value of the MissingWidth entry. + Default value: 0. + + + + + (Optional) A stream containing a Type 1 font program. + + + + + (Optional; PDF 1.1) A stream containing a TrueType font program. + + + + + (Optional; PDF 1.2) A stream containing a font program whose format is specified + by the Subtype entry in the stream dictionary. + + + + + (Optional; meaningful only in Type 1 fonts; PDF 1.1) A string listing the character + names defined in a font subset. The names in this string must be in PDF syntax—that is, + each name preceded by a slash (/). The names can appear in any order. The name .notdef + should be omitted; it is assumed to exist in the font subset. If this entry is absent, + the only indication of a font subset is the subset tag in the FontName entry. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + TrueType with WinAnsi encoding. + + + + + TrueType with Identity-H or Identity-V encoding (unicode). + + + + + Contains all used fonts of a document. + + + + + Initializes a new instance of this class, which is a singleton for each document. + + + + + Gets a PdfFont from an XFont. If no PdfFont already exists, a new one is created. + + + + + Gets a PdfFont from a font program. If no PdfFont already exists, a new one is created. + + + + + Tries to gets a PdfFont from the font dictionary. + Returns null if no such PdfFont exists. + + + + + Map from PdfFontSelector to PdfFont. + + + + + Represents an external form object (e.g. an imported page). + + + + + Gets the PdfResources object of this form. + + + + + Gets the resource name of the specified font data within this form XObject. + + + + + Predefined keys of this dictionary. + + + + + (Optional) The type of PDF object that this dictionary describes; if present, + must be XObject for a form XObject. + + + + + (Required) The type of XObject that this dictionary describes; must be Form + for a form XObject. + + + + + (Optional) A code identifying the type of form XObject that this dictionary + describes. The only valid value defined at the time of publication is 1. + Default value: 1. + + + + + (Required) An array of four numbers in the form coordinate system, giving the + coordinates of the left, bottom, right, and top edges, respectively, of the + form XObject’s bounding box. These boundaries are used to clip the form XObject + and to determine its size for caching. + + + + + (Optional) An array of six numbers specifying the form matrix, which maps + form space into user space. + Default value: the identity matrix [1 0 0 1 0 0]. + + + + + (Optional but strongly recommended; PDF 1.2) A dictionary specifying any + resources (such as fonts and images) required by the form XObject. + + + + + (Optional; PDF 1.4) A group attributes dictionary indicating that the contents + of the form XObject are to be treated as a group and specifying the attributes + of that group (see Section 4.9.2, “Group XObjects”). + Note: If a Ref entry (see below) is present, the group attributes also apply to the + external page imported by that entry, which allows such an imported page to be + treated as a group without further modification. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Contains all external PDF files from which PdfFormXObjects are imported into the current document. + + + + + Initializes a new instance of this class, which is a singleton for each document. + + + + + Gets a PdfFormXObject from an XPdfForm. Because the returned objects must be unique, always + a new instance of PdfFormXObject is created if none exists for the specified form. + + + + + Gets the imported object table. + + + + + Gets the imported object table. + + + + + Map from Selector to PdfImportedObjectTable. + + + + + A collection of information that uniquely identifies a particular ImportedObjectTable. + + + + + Initializes a new instance of FormSelector from an XPdfForm. + + + + + Initializes a new instance of FormSelector from a PdfPage. + + + + + Represents a PDF group XObject. + + + + + Predefined keys of this dictionary. + + + + + (Optional) The type of PDF object that this dictionary describes; + if present, must be Group for a group attributes dictionary. + + + + + (Required) The group subtype, which identifies the type of group whose + attributes this dictionary describes and determines the format and meaning + of the dictionary’s remaining entries. The only group subtype defined in + PDF 1.4 is Transparency. Other group subtypes may be added in the future. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents an image. + + + + + Initializes a new instance of PdfImage from an XImage. + + + + + Gets the underlying XImage object. + + + + + Returns 'Image'. + + + + + Creates the keys for a JPEG image. + + + + + Creates the keys for a FLATE image. + + + + + Reads images that are returned from GDI+ without color palette. + + 4 (32bpp RGB), 3 (24bpp RGB, 32bpp ARGB) + 8 + true (ARGB), false (RGB) + + + + Common keys for all streams. + + + + + (Optional) The type of PDF object that this dictionary describes; + if present, must be XObject for an image XObject. + + + + + (Required) The type of XObject that this dictionary describes; + must be Image for an image XObject. + + + + + (Required) The width of the image, in samples. + + + + + (Required) The height of the image, in samples. + + + + + (Required for images, except those that use the JPXDecode filter; not allowed for image masks) + The color space in which image samples are specified; it can be any type of color space except + Pattern. If the image uses the JPXDecode filter, this entry is optional: + • If ColorSpace is present, any color space specifications in the JPEG2000 data are ignored. + • If ColorSpace is absent, the color space specifications in the JPEG2000 data are used. + The Decode array is also ignored unless ImageMask is true. + + + + + (Required except for image masks and images that use the JPXDecode filter) + The number of bits used to represent each color component. Only a single value may be specified; + the number of bits is the same for all color components. Valid values are 1, 2, 4, 8, and + (in PDF 1.5) 16. If ImageMask is true, this entry is optional, and if specified, its value + must be 1. + If the image stream uses a filter, the value of BitsPerComponent must be consistent with the + size of the data samples that the filter delivers. In particular, a CCITTFaxDecode or JBIG2Decode + filter always delivers 1-bit samples, a RunLengthDecode or DCTDecode filter delivers 8-bit samples, + and an LZWDecode or FlateDecode filter delivers samples of a specified size if a predictor function + is used. + If the image stream uses the JPXDecode filter, this entry is optional and ignored if present. + The bit depth is determined in the process of decoding the JPEG2000 image. + + + + + (Optional; PDF 1.1) The name of a color rendering intent to be used in rendering the image. + Default value: the current rendering intent in the graphics state. + + + + + (Optional) A flag indicating whether the image is to be treated as an image mask. + If this flag is true, the value of BitsPerComponent must be 1 and Mask and ColorSpace should + not be specified; unmasked areas are painted using the current nonstroking color. + Default value: false. + + + + + (Optional except for image masks; not allowed for image masks; PDF 1.3) + An image XObject defining an image mask to be applied to this image, or an array specifying + a range of colors to be applied to it as a color key mask. If ImageMask is true, this entry + must not be present. + + + + + (Optional) An array of numbers describing how to map image samples into the range of values + appropriate for the image’s color space. If ImageMask is true, the array must be either + [0 1] or [1 0]; otherwise, its length must be twice the number of color components required + by ColorSpace. If the image uses the JPXDecode filter and ImageMask is false, Decode is ignored. + Default value: see “Decode Arrays”. + + + + + (Optional) A flag indicating whether image interpolation is to be performed. + Default value: false. + + + + + (Optional; PDF 1.3) An array of alternate image dictionaries for this image. The order of + elements within the array has no significance. This entry may not be present in an image + XObject that is itself an alternate image. + + + + + (Optional; PDF 1.4) A subsidiary image XObject defining a soft-mask image to be used as a + source of mask shape or mask opacity values in the transparent imaging model. The alpha + source parameter in the graphics state determines whether the mask values are interpreted as + shape or opacity. If present, this entry overrides the current soft mask in the graphics state, + as well as the image’s Mask entry, if any. (However, the other transparency related graphics + state parameters — blend mode and alpha constant — remain in effect.) If SMask is absent, the + image has no associated soft mask (although the current soft mask in the graphics state may + still apply). + + + + + (Optional for images that use the JPXDecode filter, meaningless otherwise; PDF 1.5) + A code specifying how soft-mask information encoded with image samples should be used: + 0 If present, encoded soft-mask image information should be ignored. + 1 The image’s data stream includes encoded soft-mask values. An application can create + a soft-mask image from the information to be used as a source of mask shape or mask + opacity in the transparency imaging model. + 2 The image’s data stream includes color channels that have been preblended with a + background; the image data also includes an opacity channel. An application can create + a soft-mask image with a Matte entry from the opacity channel information to be used as + a source of mask shape or mask opacity in the transparency model. If this entry has a + nonzero value, SMask should not be specified. + Default value: 0. + + + + + (Required in PDF 1.0; optional otherwise) The name by which this image XObject is + referenced in the XObject subdictionary of the current resource dictionary. + + + + + (Required if the image is a structural content item; PDF 1.3) The integer key of the + image’s entry in the structural parent tree. + + + + + (Optional; PDF 1.3; indirect reference preferred) The digital identifier of the image’s + parent Web Capture content set. + + + + + (Optional; PDF 1.2) An OPI version dictionary for the image. If ImageMask is true, + this entry is ignored. + + + + + (Optional; PDF 1.4) A metadata stream containing metadata for the image. + + + + + (Optional; PDF 1.5) An optional content group or optional content membership dictionary, + specifying the optional content properties for this image XObject. Before the image is + processed, its visibility is determined based on this entry. If it is determined to be + invisible, the entire image is skipped, as if there were no Do operator to invoke it. + + + + + Counts the consecutive one bits in an image line. + + The reader. + The bits left. + + + + Counts the consecutive zero bits in an image line. + + The reader. + The bits left. + + + + Returns the offset of the next bit in the range + [bitStart..bitEnd] that is different from the + specified color. The end, bitEnd, is returned + if no such bit exists. + + The reader. + The offset of the start bit. + The offset of the end bit. + If set to true searches "one" (i. e. white), otherwise searches black. + The offset of the first non-matching bit. + + + + Returns the offset of the next bit in the range + [bitStart..bitEnd] that is different from the + specified color. The end, bitEnd, is returned + if no such bit exists. + Like FindDifference, but also check the + starting bit against the end in case start > end. + + The reader. + The offset of the start bit. + The offset of the end bit. + If set to true searches "one" (i. e. white), otherwise searches black. + The offset of the first non-matching bit. + + + + 2d-encode a row of pixels. Consult the CCITT documentation for the algorithm. + + The writer. + Offset of image data in bitmap file. + The bitmap file. + Index of the current row. + Index of the reference row (0xffffffff if there is none). + The width of the image. + The height of the image. + The bytes per line in the bitmap file. + + + + Encodes a bitonal bitmap using 1D CCITT fax encoding. + + Space reserved for the fax encoded bitmap. An exception will be thrown if this buffer is too small. + The bitmap to be encoded. + Offset of image data in bitmap file. + The width of the image. + The height of the image. + The size of the fax encoded image (0 on failure). + + + + Encodes a bitonal bitmap using 2D group 4 CCITT fax encoding. + + Space reserved for the fax encoded bitmap. An exception will be thrown if this buffer is too small. + The bitmap to be encoded. + Offset of image data in bitmap file. + The width of the image. + The height of the image. + The size of the fax encoded image (0 on failure). + + + + Writes the image data. + + The writer. + The count of bits (pels) to encode. + The color of the pels. + + + + Helper class for creating bitmap masks (8 pels per byte). + + + + + Returns the bitmap mask that will be written to PDF. + + + + + Creates a bitmap mask. + + + + + Starts a new line. + + + + + Adds a pel to the current line. + + + + + + Adds a pel from an alpha mask value. + + + + + The BitReader class is a helper to read bits from an in-memory bitmap file. + + + + + Initializes a new instance of the class. + + The in-memory bitmap file. + The offset of the line to read. + The count of bits that may be read (i. e. the width of the image for normal usage). + + + + Sets the position within the line (needed for 2D encoding). + + The new position. + + + + Gets a single bit at the specified position. + + The position. + True if bit is set. + + + + Returns the bits that are in the buffer (without changing the position). + Data is MSB aligned. + + The count of bits that were returned (1 through 8). + The MSB aligned bits from the buffer. + + + + Moves the buffer to the next byte. + + + + + "Removes" (eats) bits from the buffer. + + The count of bits that were processed. + + + + A helper class for writing groups of bits into an array of bytes. + + + + + Initializes a new instance of the class. + + The byte array to be written to. + + + + Writes the buffered bits into the byte array. + + + + + Masks for n bits in a byte (with n = 0 through 8). + + + + + Writes bits to the byte array. + + The bits to be written (LSB aligned). + The count of bits. + + + + Writes a line from a look-up table. + A "line" in the table are two integers, one containing the values, one containing the bit count. + + + + + Flushes the buffer and returns the count of bytes written to the array. + + + + + Contains all used images of a document. + + + + + Initializes a new instance of this class, which is a singleton for each document. + + + + + Gets a PdfImage from an XImage. If no PdfImage already exists, a new one is created. + + + + + Map from ImageSelector to PdfImage. + + + + + A collection of information that uniquely identifies a particular PdfImage. + + + + + Initializes a new instance of ImageSelector from an XImage. + + + + + Represents the imported objects of an external document. Used to cache objects that are + already imported when a PdfFormXObject is added to a page. + + + + + Initializes a new instance of this class with the document the objects are imported from. + + + + + Gets the document this table belongs to. + + + + + Gets the external document, or null, if the external document is garbage collected. + + + + + Indicates whether the specified object is already imported. + + + + + Adds a cloned object to this table. + + The object identifier in the foreign object. + The cross reference to the clone of the foreign object, which belongs to + this document. In general the clone has a different object identifier. + + + + Gets the cloned object that corresponds to the specified external identifier. + + + + + Maps external object identifiers to cross reference entries of the importing document + {PdfObjectID -> PdfReference}. + + + + + Provides access to the internal document data structures. This class prevents the public + interfaces from pollution with to much internal functions. + + + + + Gets or sets the first document identifier. + + + + + Gets the first document identifier as GUID. + + + + + Gets or sets the second document identifier. + + + + + Gets the first document identifier as GUID. + + + + + Gets the catalog dictionary. + + + + + Gets the ExtGStateTable object. + + + + + Returns the object with the specified Identifier, or null, if no such object exists. + + + + + Maps the specified external object to the substitute object in this document. + Returns null if no such object exists. + + + + + Returns the PdfReference of the specified object, or null, if the object is not in the + document's object table. + + + + + Gets the object identifier of the specified object. + + + + + Gets the object number of the specified object. + + + + + Gets the generation number of the specified object. + + + + + Gets all indirect objects ordered by their object identifier. + + + + + Gets all indirect objects ordered by their object identifier. + + + + + Creates the indirect object of the specified type, adds it to the document, + and returns the object. + + + + + Adds an object to the PDF document. This operation and only this operation makes the object + an indirect object owned by this document. + + + + + Removes an object from the PDF document. + + + + + Returns an array containing the specified object as first element follows by its transitive + closure. The closure of an object are all objects that can be reached by indirect references. + The transitive closure is the result of applying the calculation of the closure to a closure + as long as no new objects came along. This is e.g. useful for getting all objects belonging + to the resources of a page. + + + + + Returns an array containing the specified object as first element follows by its transitive + closure limited by the specified number of iterations. + + + + + Writes a PdfItem into the specified stream. + + + + + The name of the custom value key. + + + + + Provides access to the internal PDF object data structures. This class prevents the public + interfaces from pollution with to much internal functions. + + + + + Gets the object identifier. Returns PdfObjectID.Empty for direct objects. + + + + + Gets the object number. + + + + + Gets the generation number. + + + + + Gets the name of the current type. + Not a very useful property, but can be used for data binding. + + + + + Represents an object stream that contains compressed objects. + PDF 1.5. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance from an existing dictionary. Used for object type transformation. + + + + + Reads the compressed object with the specified index. + + + + + Reads the compressed object with the specified index. + + + + + N pairs of integers. + The first integer represents the object number of the compressed object. + The second integer represents the absolute offset of that object in the decoded stream, + i.e. the byte offset plus First entry. + + + + + Predefined keys common to all font dictionaries. + + + + + (Required) The type of PDF object that this dictionary describes; + must be ObjStmfor an object stream. + + + + + (Required) The number of compressed objects in the stream. + + + + + (Required) The byte offset (in the decoded stream) of the first + compressed object. + + + + + (Optional) A reference to an object stream, of which the current object + stream is considered an extension. Both streams are considered part of + a collection of object streams (see below). A given collection consists + of a set of streams whose Extendslinks form a directed acyclic graph. + + + + + Represents a PDF page object. + + + + + + + + + + Represents an indirect reference to a PdfObject. + + + + + Initializes a new PdfReference instance for the specified indirect object. + + + + + Initializes a new PdfReference instance from the specified object identifier and file position. + + + + + Writes the object in PDF iref table format. + + + + + Writes an indirect reference. + + + + + Gets or sets the object identifier. + + + + + Gets the object number of the object identifier. + + + + + Gets the generation number of the object identifier. + + + + + Gets or sets the file position of the related PdfObject. + + + + + Gets or sets the referenced PdfObject. + + + + + Hack for dead objects. + + + + + Gets or sets the document this object belongs to. + + + + + Gets a string representing the object identifier. + + + + + Implements a comparer that compares PdfReference objects by their PdfObjectID. + + + + + Base class for all dictionaries that map resource names to objects. + + + + + Adds all imported resource names to the specified hashtable. + + + + + Represents a PDF resource object. + + + + + Initializes a new instance of the class. + + The document. + + + + Adds the specified font to this resource dictionary and returns its local resource name. + + + + + Adds the specified image to this resource dictionary + and returns its local resource name. + + + + + Adds the specified form object to this resource dictionary + and returns its local resource name. + + + + + Adds the specified graphics state to this resource dictionary + and returns its local resource name. + + + + + Adds the specified pattern to this resource dictionary + and returns its local resource name. + + + + + Adds the specified pattern to this resource dictionary + and returns its local resource name. + + + + + Adds the specified shading to this resource dictionary + and returns its local resource name. + + + + + Gets the fonts map. + + + + + Gets the external objects map. + + + + + Gets a new local name for this resource. + + + + + Gets a new local name for this resource. + + + + + Gets a new local name for this resource. + + + + + Gets a new local name for this resource. + + + + + Gets a new local name for this resource. + + + + + Gets a new local name for this resource. + + + + + Check whether a resource name is already used in the context of this resource dictionary. + PDF4NET uses GUIDs as resource names, but I think this weapon is to heavy. + + + + + All the names of imported resources. + + + + + Maps all PDFsharp resources to their local resource names. + + + + + Predefined keys of this dictionary. + + + + + (Optional) A dictionary that maps resource names to graphics state + parameter dictionaries. + + + + + (Optional) A dictionary that maps each resource name to either the name of a + device-dependent color space or an array describing a color space. + + + + + (Optional) A dictionary that maps each resource name to either the name of a + device-dependent color space or an array describing a color space. + + + + + (Optional; PDF 1.3) A dictionary that maps resource names to shading dictionaries. + + + + + (Optional) A dictionary that maps resource names to external objects. + + + + + (Optional) A dictionary that maps resource names to font dictionaries. + + + + + (Optional) An array of predefined procedure set names. + + + + + (Optional; PDF 1.2) A dictionary that maps resource names to property list + dictionaries for marked content. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Base class for FontTable, ImageTable, FormXObjectTable etc. + + + + + Base class for document wide resource tables. + + + + + Gets the owning document of this resource table. + + + + + Represents a shading dictionary. + + + + + Initializes a new instance of the class. + + + + + Setups the shading from the specified brush. + + + + + Common keys for all streams. + + + + + (Required) The shading type: + 1 Function-based shading + 2 Axial shading + 3 Radial shading + 4 Free-form Gouraud-shaded triangle mesh + 5 Lattice-form Gouraud-shaded triangle mesh + 6 Coons patch mesh + 7 Tensor-product patch mesh + + + + + (Required) The color space in which color values are expressed. This may be any device, + CIE-based, or special color space except a Pattern space. + + + + + (Optional) An array of color components appropriate to the color space, specifying + a single background color value. If present, this color is used, before any painting + operation involving the shading, to fill those portions of the area to be painted + that lie outside the bounds of the shading object. In the opaque imaging model, + the effect is as if the painting operation were performed twice: first with the + background color and then with the shading. + + + + + (Optional) An array of four numbers giving the left, bottom, right, and top coordinates, + respectively, of the shading’s bounding box. The coordinates are interpreted in the + shading’s target coordinate space. If present, this bounding box is applied as a temporary + clipping boundary when the shading is painted, in addition to the current clipping path + and any other clipping boundaries in effect at that time. + + + + + (Optional) A flag indicating whether to filter the shading function to prevent aliasing + artifacts. The shading operators sample shading functions at a rate determined by the + resolution of the output device. Aliasing can occur if the function is not smooth—that + is, if it has a high spatial frequency relative to the sampling rate. Anti-aliasing can + be computationally expensive and is usually unnecessary, since most shading functions + are smooth enough or are sampled at a high enough frequency to avoid aliasing effects. + Anti-aliasing may not be implemented on some output devices, in which case this flag + is ignored. + Default value: false. + + + + + (Required) An array of four numbers [x0 y0 x1 y1] specifying the starting and + ending coordinates of the axis, expressed in the shading’s target coordinate space. + + + + + (Optional) An array of two numbers [t0 t1] specifying the limiting values of a + parametric variable t. The variable is considered to vary linearly between these + two values as the color gradient varies between the starting and ending points of + the axis. The variable t becomes the input argument to the color function(s). + Default value: [0.0 1.0]. + + + + + (Required) A 1-in, n-out function or an array of n 1-in, 1-out functions (where n + is the number of color components in the shading dictionary’s color space). The + function(s) are called with values of the parametric variable t in the domain defined + by the Domain entry. Each function’s domain must be a superset of that of the shading + dictionary. If the value returned by the function for a given color component is out + of range, it is adjusted to the nearest valid value. + + + + + (Optional) An array of two boolean values specifying whether to extend the shading + beyond the starting and ending points of the axis, respectively. + Default value: [false false]. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a shading pattern dictionary. + + + + + Initializes a new instance of the class. + + + + + Setups the shading pattern from the specified brush. + + + + + Common keys for all streams. + + + + + (Optional) The type of PDF object that this dictionary describes; if present, + must be Pattern for a pattern dictionary. + + + + + (Required) A code identifying the type of pattern that this dictionary describes; + must be 2 for a shading pattern. + + + + + (Required) A shading object (see below) defining the shading pattern’s gradient fill. + + + + + (Optional) An array of six numbers specifying the pattern matrix. + Default value: the identity matrix [1 0 0 1 0 0]. + + + + + (Optional) A graphics state parameter dictionary containing graphics state parameters + to be put into effect temporarily while the shading pattern is painted. Any parameters + that are not so specified are inherited from the graphics state that was in effect + at the beginning of the content stream in which the pattern is defined as a resource. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a PDF soft mask. + + + + + Initializes a new instance of the class. + + The document that owns the object. + + + + Predefined keys of this dictionary. + + + + + (Optional) The type of PDF object that this dictionary describes; + if present, must be Mask for a soft-mask dictionary. + + + + + (Required) A subtype specifying the method to be used in deriving the mask values + from the transparency group specified by the G entry: + Alpha: Use the group’s computed alpha, disregarding its color. + Luminosity: Convert the group’s computed color to a single-component luminosity value. + + + + + (Required) A transparency group XObject to be used as the source of alpha + or color values for deriving the mask. If the subtype S is Luminosity, the + group attributes dictionary must contain a CS entry defining the color space + in which the compositing computation is to be performed. + + + + + (Optional) An array of component values specifying the color to be used + as the backdrop against which to composite the transparency group XObject G. + This entry is consulted only if the subtype S is Luminosity. The array consists of + n numbers, where n is the number of components in the color space specified + by the CS entry in the group attributes dictionary. + Default value: the color space’s initial value, representing black. + + + + + (Optional) A function object specifying the transfer function to be used in + deriving the mask values. The function accepts one input, the computed + group alpha or luminosity (depending on the value of the subtype S), and + returns one output, the resulting mask value. Both the input and output + must be in the range 0.0 to 1.0; if the computed output falls outside this + range, it is forced to the nearest valid value. The name Identity may be + specified in place of a function object to designate the identity function. + Default value: Identity. + + + + + Represents a tiling pattern dictionary. + + + + + Initializes a new instance of the class. + + + + + Common keys for all streams. + + + + + (Optional) The type of PDF object that this dictionary describes; if present, + must be Pattern for a pattern dictionary. + + + + + (Required) A code identifying the type of pattern that this dictionary describes; + must be 1 for a tiling pattern. + + + + + (Required) A code that determines how the color of the pattern cell is to be specified: + 1: Colored tiling pattern. The pattern’s content stream specifies the colors used to + paint the pattern cell. When the content stream begins execution, the current color + is the one that was initially in effect in the pattern’s parent content stream. + 2: Uncolored tiling pattern. The pattern’s content stream does not specify any color + information. Instead, the entire pattern cell is painted with a separately specified color + each time the pattern is used. Essentially, the content stream describes a stencil + through which the current color is to be poured. The content stream must not invoke + operators that specify colors or other color-related parameters in the graphics state; + otherwise, an error occurs. The content stream may paint an image mask, however, + since it does not specify any color information. + + + + + (Required) A code that controls adjustments to the spacing of tiles relative to the device + pixel grid: + 1: Constant spacing. Pattern cells are spaced consistently—that is, by a multiple of a + device pixel. To achieve this, the application may need to distort the pattern cell slightly + by making small adjustments to XStep, YStep, and the transformation matrix. The amount + of distortion does not exceed 1 device pixel. + 2: No distortion. The pattern cell is not distorted, but the spacing between pattern cells + may vary by as much as 1 device pixel, both horizontally and vertically, when the pattern + is painted. This achieves the spacing requested by XStep and YStep on average but not + necessarily for each individual pattern cell. + 3: Constant spacing and faster tiling. Pattern cells are spaced consistently as in tiling + type 1 but with additional distortion permitted to enable a more efficient implementation. + + + + + (Required) An array of four numbers in the pattern coordinate system giving the + coordinates of the left, bottom, right, and top edges, respectively, of the pattern + cell’s bounding box. These boundaries are used to clip the pattern cell. + + + + + (Required) The desired horizontal spacing between pattern cells, measured in the + pattern coordinate system. + + + + + (Required) The desired vertical spacing between pattern cells, measured in the pattern + coordinate system. Note that XStep and YStep may differ from the dimensions of the + pattern cell implied by the BBox entry. This allows tiling with irregularly shaped figures. + XStep and YStep may be either positive or negative but not zero. + + + + + (Required) A resource dictionary containing all of the named resources required by + the pattern’s content stream (see Section 3.7.2, “Resource Dictionaries”). + + + + + (Optional) An array of six numbers specifying the pattern matrix. + Default value: the identity matrix [1 0 0 1 0 0]. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a ToUnicode map for composite font. + + + + + Gets or sets the CMap info. + + + + + Creates the ToUnicode map from the CMapInfo. + + + + + Represents a PDF trailer dictionary. Even though trailers are dictionaries they never have a cross + reference entry in PdfReferenceTable. + + + + + Initializes a new instance of PdfTrailer. + + + + + Initializes a new instance of the class from a . + + + + + (Required; must be an indirect reference) + The catalog dictionary for the PDF document contained in the file. + + + + + Gets the first or second document identifier. + + + + + Sets the first or second document identifier. + + + + + Creates and sets two identical new document IDs. + + + + + Gets the standard security handler. + + + + + Replace temporary irefs by their correct counterparts from the iref table. + + + + + Predefined keys of this dictionary. + + + + + (Required; must not be an indirect reference) The total number of entries in the file’s + cross-reference table, as defined by the combination of the original section and all + update sections. Equivalently, this value is 1 greater than the highest object number + used in the file. + Note: Any object in a cross-reference section whose number is greater than this value is + ignored and considered missing. + + + + + (Present only if the file has more than one cross-reference section; must not be an indirect + reference) The byte offset from the beginning of the file to the beginning of the previous + cross-reference section. + + + + + (Required; must be an indirect reference) The catalog dictionary for the PDF document + contained in the file. + + + + + (Required if document is encrypted; PDF 1.1) The document’s encryption dictionary. + + + + + (Optional; must be an indirect reference) The document’s information dictionary. + + + + + (Optional, but strongly recommended; PDF 1.1) An array of two strings constituting + a file identifier for the file. Although this entry is optional, + its absence might prevent the file from functioning in some workflows + that depend on files being uniquely identified. + + + + + (Optional) The byte offset from the beginning of the file of a cross-reference stream. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a PDF transparency group XObject. + + + + + Predefined keys of this dictionary. + + + + + (Sometimes required, as discussed below) + The group color space, which is used for the following purposes: + • As the color space into which colors are converted when painted into the group + • As the blending color space in which objects are composited within the group + • As the color space of the group as a whole when it in turn is painted as an object onto its backdrop + The group color space may be any device or CIE-based color space that + treats its components as independent additive or subtractive values in the + range 0.0 to 1.0, subject to the restrictions described in Section 7.2.3, “Blending Color Space.” + These restrictions exclude Lab and lightness-chromaticity ICCBased color spaces, + as well as the special color spaces Pattern, Indexed, Separation, and DeviceN. + Device color spaces are subject to remapping according to the DefaultGray, + DefaultRGB, and DefaultCMYK entries in the ColorSpace subdictionary of the + current resource dictionary. + Ordinarily, the CS entry is allowed only for isolated transparency groups + (those for which I, below, is true), and even then it is optional. However, + this entry is required in the group attributes dictionary for any transparency + group XObject that has no parent group or page from which to inherit — in + particular, one that is the value of the G entry in a soft-mask dictionary of + subtype Luminosity. + In addition, it is always permissible to specify CS in the group attributes + dictionary associated with a page object, even if I is false or absent. In the + normal case in which the page is imposed directly on the output medium, + the page group is effectively isolated regardless of the I value, and the + specified CS value is therefore honored. But if the page is in turn used as an + element of some other page and if the group is non-isolated, CS is ignored + and the color space is inherited from the actual backdrop with which the + page is composited. + Default value: the color space of the parent group or page into which this + transparency group is painted. (The parent’s color space in turn can be + either explicitly specified or inherited.) + + + + + (Optional) A flag specifying whether the transparency group is isolated. + If this flag is true, objects within the group are composited against a fully + transparent initial backdrop; if false, they are composited against the + group’s backdrop. + Default value: false. + In the group attributes dictionary for a page, the interpretation of this + entry is slightly altered. In the normal case in which the page is imposed + directly on the output medium, the page group is effectively isolated and + the specified I value is ignored. But if the page is in turn used as an + element of some other page, it is treated as if it were a transparency + group XObject; the I value is interpreted in the normal way to determine + whether the page group is isolated. + + + + + (Optional) A flag specifying whether the transparency group is a knockout + group. If this flag is false, later objects within the group are composited + with earlier ones with which they overlap; if true, they are composited with + the group’s initial backdrop and overwrite (“knock out”) any earlier + overlapping objects. + Default value: false. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a TrueType font. + + + + + Initializes a new instance of PdfTrueTypeFont from an XFont. + + + + + Prepares the object to get saved. + + + + + Predefined keys of this dictionary. + + + + + (Required) The type of PDF object that this dictionary describes; + must be Font for a font dictionary. + + + + + (Required) The type of font; must be TrueType for a TrueType font. + + + + + (Required in PDF 1.0; optional otherwise) The name by which this font is + referenced in the Font subdictionary of the current resource dictionary. + + + + + (Required) The PostScript name of the font. For Type 1 fonts, this is usually + the value of the FontName entry in the font program; for more information. + The Post-Script name of the font can be used to find the font’s definition in + the consumer application or its environment. It is also the name that is used when + printing to a PostScript output device. + + + + + (Required except for the standard 14 fonts) The first character code defined + in the font’s Widths array. + + + + + (Required except for the standard 14 fonts) The last character code defined + in the font’s Widths array. + + + + + (Required except for the standard 14 fonts; indirect reference preferred) + An array of (LastChar - FirstChar + 1) widths, each element being the glyph width + for the character code that equals FirstChar plus the array index. For character + codes outside the range FirstChar to LastChar, the value of MissingWidth from the + FontDescriptor entry for this font is used. The glyph widths are measured in units + in which 1000 units corresponds to 1 unit in text space. These widths must be + consistent with the actual widths given in the font program. + + + + + (Required except for the standard 14 fonts; must be an indirect reference) + A font descriptor describing the font’s metrics other than its glyph widths. + Note: For the standard 14 fonts, the entries FirstChar, LastChar, Widths, and + FontDescriptor must either all be present or all be absent. Ordinarily, they are + absent; specifying them enables a standard font to be overridden. + + + + + (Optional) A specification of the font’s character encoding if different from its + built-in encoding. The value of Encoding is either the name of a predefined + encoding (MacRomanEncoding, MacExpertEncoding, or WinAnsiEncoding, as described in + Appendix D) or an encoding dictionary that specifies differences from the font’s + built-in encoding or from a specified predefined encoding. + + + + + (Optional; PDF 1.2) A stream containing a CMap file that maps character + codes to Unicode values. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a composite font. Used for Unicode encoding. + + + + + Predefined keys of this dictionary. + + + + + (Required) The type of PDF object that this dictionary describes; + must be Font for a font dictionary. + + + + + (Required) The type of font; must be Type0 for a Type 0 font. + + + + + (Required) The PostScript name of the font. In principle, this is an arbitrary + name, since there is no font program associated directly with a Type 0 font + dictionary. The conventions described here ensure maximum compatibility + with existing Acrobat products. + If the descendant is a Type 0 CIDFont, this name should be the concatenation + of the CIDFont’s BaseFont name, a hyphen, and the CMap name given in the + Encoding entry (or the CMapName entry in the CMap). If the descendant is a + Type 2 CIDFont, this name should be the same as the CIDFont’s BaseFont name. + + + + + (Required) The name of a predefined CMap, or a stream containing a CMap + that maps character codes to font numbers and CIDs. If the descendant is a + Type 2 CIDFont whose associated TrueType font program is not embedded + in the PDF file, the Encoding entry must be a predefined CMap name. + + + + + (Required) A one-element array specifying the CIDFont dictionary that is the + descendant of this Type 0 font. + + + + + ((Optional) A stream containing a CMap file that maps character codes to + Unicode values. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Base class for all PDF external objects. + + + + + Initializes a new instance of the class. + + The document that owns the object. + + + + Predefined keys of this dictionary. + + + + + Specifies the annotation flags. + + + + + If set, do not display the annotation if it does not belong to one of the standard + annotation types and no annotation handler is available. If clear, display such an + unknown annotation using an appearance stream specified by its appearancedictionary, + if any. + + + + + (PDF 1.2) If set, do not display or print the annotation or allow it to interact + with the user, regardless of its annotation type or whether an annotation + handler is available. In cases where screen space is limited, the ability to hide + and show annotations selectively can be used in combination with appearance + streams to display auxiliary pop-up information similar in function to online + help systems. + + + + + (PDF 1.2) If set, print the annotation when the page is printed. If clear, never + print the annotation, regardless of whether it is displayed on the screen. This + can be useful, for example, for annotations representing interactive pushbuttons, + which would serve no meaningful purpose on the printed page. + + + + + (PDF 1.3) If set, do not scale the annotation’s appearance to match the magnification + of the page. The location of the annotation on the page (defined by the + upper-left corner of its annotation rectangle) remains fixed, regardless of the + page magnification. See below for further discussion. + + + + + (PDF 1.3) If set, do not rotate the annotation’s appearance to match the rotation + of the page. The upper-left corner of the annotation rectangle remains in a fixed + location on the page, regardless of the page rotation. See below for further discussion. + + + + + (PDF 1.3) If set, do not display the annotation on the screen or allow it to + interact with the user. The annotation may be printed (depending on the setting + of the Print flag) but should be considered hidden for purposes of on-screen + display and user interaction. + + + + + (PDF 1.3) If set, do not allow the annotation to interact with the user. The + annotation may be displayed or printed (depending on the settings of the + NoView and Print flags) but should not respond to mouse clicks or change its + appearance in response to mouse motions. + Note: This flag is ignored for widget annotations; its function is subsumed by + the ReadOnly flag of the associated form field. + + + + + (PDF 1.4) If set, do not allow the annotation to be deleted or its properties + (including position and size) to be modified by the user. However, this flag does + not restrict changes to the annotation’s contents, such as the value of a form + field. + + + + + (PDF 1.5) If set, invert the interpretation of the NoView flag for certain events. + A typical use is to have an annotation that appears only when a mouse cursor is + held over it. + + + + + Specifies the predefined icon names of rubber stamp annotations. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + A pre-defined rubber stamp annotation icon. + + + + + Specifies the pre-defined icon names of text annotations. + + + + + A pre-defined annotation icon. + + + + + A pre-defined annotation icon. + + + + + A pre-defined annotation icon. + + + + + A pre-defined annotation icon. + + + + + A pre-defined annotation icon. + + + + + A pre-defined annotation icon. + + + + + A pre-defined annotation icon. + + + + + A pre-defined annotation icon. + + + + + Represents the base class of all annotations. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Removes an annotation from the document + + + + + + Gets or sets the annotation flags of this instance. + + + + + Gets or sets the PdfAnnotations object that this annotation belongs to. + + + + + Gets or sets the annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Gets or sets the text label to be displayed in the title bar of the annotation’s + pop-up window when open and active. By convention, this entry identifies + the user who added the annotation. + + + + + Gets or sets text representing a short description of the subject being + addressed by the annotation. + + + + + Gets or sets the text to be displayed for the annotation or, if this type of + annotation does not display text, an alternate description of the annotation’s + contents in human-readable form. + + + + + Gets or sets the color representing the components of the annotation. If the color + has an alpha value other than 1, it is ignored. Use property Opacity to get or set the + opacity of an annotation. + + + + + Gets or sets the constant opacity value to be used in painting the annotation. + This value applies to all visible elements of the annotation in its closed state + (including its background and border) but not to the popup window that appears when + the annotation is opened. + + + + + Predefined keys of this dictionary. + + + + + (Optional) The type of PDF object that this dictionary describes; if present, + must be Annot for an annotation dictionary. + + + + + (Required) The type of annotation that this dictionary describes. + + + + + (Required) The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + (Optional) Text to be displayed for the annotation or, if this type of annotation + does not display text, an alternate description of the annotation’s contents + in human-readable form. In either case, this text is useful when + extracting the document’s contents in support of accessibility to users with + disabilities or for other purposes. + + + + + (Optional; PDF 1.4) The annotation name, a text string uniquely identifying it + among all the annotations on its page. + + + + + (Optional; PDF 1.1) The date and time when the annotation was most recently + modified. The preferred format is a date string, but viewer applications should be + prepared to accept and display a string in any format. + + + + + (Optional; PDF 1.1) A set of flags specifying various characteristics of the annotation. + Default value: 0. + + + + + (Optional; PDF 1.2) A border style dictionary specifying the characteristics of + the annotation’s border. + + + + + (Optional; PDF 1.2) An appearance dictionary specifying how the annotation + is presented visually on the page. Individual annotation handlers may ignore + this entry and provide their own appearances. + + + + + (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) + The annotation’s appearance state, which selects the applicable appearance stream from + an appearance subdictionary. + + + + + (Optional) An array specifying the characteristics of the annotation’s border. + The border is specified as a rounded rectangle. + In PDF 1.0, the array consists of three numbers defining the horizontal corner + radius, vertical corner radius, and border width, all in default user space units. + If the corner radii are 0, the border has square (not rounded) corners; if the border + width is 0, no border is drawn. + In PDF 1.1, the array may have a fourth element, an optional dash array defining a + pattern of dashes and gaps to be used in drawing the border. The dash array is + specified in the same format as in the line dash pattern parameter of the graphics state. + For example, a Border value of [0 0 1 [3 2]] specifies a border 1 unit wide, with + square corners, drawn with 3-unit dashes alternating with 2-unit gaps. Note that no + dash phase is specified; the phase is assumed to be 0. + Note: In PDF 1.2 or later, this entry may be ignored in favor of the BS entry. + + + + + (Optional; PDF 1.1) An array of three numbers in the range 0.0 to 1.0, representing + the components of a color in the DeviceRGB color space. This color is used for the + following purposes: + • The background of the annotation’s icon when closed + • The title bar of the annotation’s pop-up window + • The border of a link annotation + + + + + (Required if the annotation is a structural content item; PDF 1.3) + The integer key of the annotation’s entry in the structural parent tree. + + + + + (Optional; PDF 1.1) An action to be performed when the annotation is activated. + Note: This entry is not permitted in link annotations if a Dest entry is present. + Also note that the A entry in movie annotations has a different meaning. + + + + + (Optional; PDF 1.1) The text label to be displayed in the title bar of the annotation’s + pop-up window when open and active. By convention, this entry identifies + the user who added the annotation. + + + + + (Optional; PDF 1.3) An indirect reference to a pop-up annotation for entering or + editing the text associated with this annotation. + + + + + (Optional; PDF 1.4) The constant opacity value to be used in painting the annotation. + This value applies to all visible elements of the annotation in its closed state + (including its background and border) but not to the popup window that appears when + the annotation is opened. + The specified value is not used if the annotation has an appearance stream; in that + case, the appearance stream must specify any transparency. (However, if the viewer + regenerates the annotation’s appearance stream, it may incorporate the CA value + into the stream’s content.) + The implicit blend mode is Normal. + Default value: 1.0. + + + + + (Optional; PDF 1.5) Text representing a short description of the subject being + addressed by the annotation. + + + + + Represents the annotations array of a page. + + + + + Adds the specified annotation. + + The annotation. + + + + Removes an annotation from the document. + + + + + Removes all the annotations from the current page. + + + + + Gets the number of annotations in this collection. + + + + + Gets the at the specified index. + + + + + Gets the page the annotations belongs to. + + + + + Fixes the /P element in imported annotation. + + + + + Returns an enumerator that iterates through a collection. + + + + + Represents a generic annotation. Used for annotation dictionaries unknown to PDFsharp. + + + + + Predefined keys of this dictionary. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a link annotation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Creates a link within the current document. + + The link area in default page coordinates. + The one-based destination page number. + + + + Creates a link to the web. + + + + + Creates a link to a file. + + + + + Predefined keys of this dictionary. + + + + + (Optional; not permitted if an A entry is present) A destination to be displayed + when the annotation is activated. + + + + + (Optional; PDF 1.2) The annotation’s highlighting mode, the visual effect to be + used when the mouse button is pressed or held down inside its active area: + N (None) No highlighting. + I (Invert) Invert the contents of the annotation rectangle. + O (Outline) Invert the annotation’s border. + P (Push) Display the annotation as if it were being pushed below the surface of the page. + Default value: I. + Note: In PDF 1.1, highlighting is always done by inverting colors inside the annotation rectangle. + + + + + (Optional; PDF 1.3) A URI action formerly associated with this annotation. When Web + Capture changes and annotation from a URI to a go-to action, it uses this entry to save + the data from the original URI action so that it can be changed back in case the target page for + the go-to action is subsequently deleted. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a rubber stamp annotation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + + + + Gets or sets an icon to be used in displaying the annotation. + + + + + Predefined keys of this dictionary. + + + + + (Optional) The name of an icon to be used in displaying the annotation. Viewer + applications should provide predefined icon appearances for at least the following + standard names: + Approved + AsIs + Confidential + Departmental + Draft + Experimental + Expired + Final + ForComment + ForPublicRelease + NotApproved + NotForPublicRelease + Sold + TopSecret + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a text annotation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag indicating whether the annotation should initially be displayed open. + + + + + Gets or sets an icon to be used in displaying the annotation. + + + + + Predefined keys of this dictionary. + + + + + (Optional) A flag specifying whether the annotation should initially be displayed open. + Default value: false (closed). + + + + + (Optional) The name of an icon to be used in displaying the annotation. Viewer + applications should provide predefined icon appearances for at least the following + standard names: + Comment + Help + Insert + Key + NewParagraph + Note + Paragraph + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a text annotation. + + + + + Predefined keys of this dictionary. + + + + + (Optional) The annotation’s highlighting mode, the visual effect to be used when + the mouse button is pressed or held down inside its active area: + N (None) No highlighting. + I (Invert) Invert the contents of the annotation rectangle. + O (Outline) Invert the annotation’s border. + P (Push) Display the annotation’s down appearance, if any. If no down appearance is defined, + offset the contents of the annotation rectangle to appear as if it were being pushed below + the surface of the page. + T (Toggle) Same as P (which is preferred). + A highlighting mode other than P overrides any down appearance defined for the annotation. + Default value: I. + + + + + (Optional) An appearance characteristics dictionary to be used in constructing a dynamic + appearance stream specifying the annotation’s visual presentation on the page. + The name MK for this entry is of historical significance only and has no direct meaning. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Base class for all PDF content stream objects. + + + + + Initializes a new instance of the class. + + + + + Creates a new object that is a copy of the current instance. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism. Must be overridden in derived classes. + + + + + + + + + + Represents a comment in a PDF content stream. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Gets or sets the comment text. + + + + + Returns a string that represents the current comment. + + + + + Represents a sequence of objects in a PDF content stream. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Adds the specified sequence. + + The sequence. + + + + Adds the specified value add the end of the sequence. + + + + + Removes all elements from the sequence. + + + + + Determines whether the specified value is in the sequence. + + + + + Returns the index of the specified value in the sequence or -1, if no such value is in the sequence. + + + + + Inserts the specified value in the sequence. + + + + + Removes the specified value from the sequence. + + + + + Removes the value at the specified index from the sequence. + + + + + Gets or sets a CObject at the specified index. + + + + + + Copies the elements of the sequence to the specified array. + + + + + Gets the number of elements contained in the sequence. + + + + + Returns an enumerator that iterates through the sequence. + + + + + Converts the sequence to a PDF content stream. + + + + + Returns a string containing all elements of the sequence. + + + + + Represents the base class for numerical objects in a PDF content stream. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Represents an integer value in a PDF content stream. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Gets or sets the value. + + + + + Returns a string that represents the current value. + + + + + Represents a real value in a PDF content stream. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Gets or sets the value. + + + + + Returns a string that represents the current value. + + + + + Type of the parsed string. + + + + + The string has the format "(...)". + + + + + The string has the format "<...>". + + + + + The string... TODO. + + + + + The string... TODO. + + + + + HACK: The string is the content of a dictionary. + Currently there is no parser for dictionaries in Content Streams. + + + + + Represents a string value in a PDF content stream. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Gets or sets the value. + + + + + Gets or sets the type of the content string. + + + + + Returns a string that represents the current value. + + + + + Represents a name in a PDF content stream. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name. + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Gets or sets the name. Names must start with a slash. + + + + + Returns a string that represents the current value. + + + + + Represents an array of objects in a PDF content stream. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Returns a string that represents the current value. + + + + + Represents an operator a PDF content stream. + + + + + Initializes a new instance of the class. + + + + + Creates a new object that is a copy of the current instance. + + + + + Implements the copy mechanism of this class. + + + + + Gets or sets the name of the operator + + The name. + + + + Gets or sets the operands. + + The operands. + + + + Gets the operator description for this instance. + + + + + Returns a string that represents the current operator. + + + + + Specifies the group of operations the op-code belongs to. + + + + + + + + + + + + + + + The names of the op-codes. + + + + + Close, fill, and stroke path using nonzero winding number rule. + + + + + Fill and stroke path using nonzero winding number rule. + + + + + Close, fill, and stroke path using even-odd rule. + + + + + Fill and stroke path using even-odd rule. + + + + + (PDF 1.2) Begin marked-content sequence with property list. + + + + + Begin inline image object. + + + + + (PDF 1.2) Begin marked-content sequence. + + + + + Begin text object. + + + + + (PDF 1.1) Begin compatibility section. + + + + + (PDF 1.2) Define marked-content point with property list. + + + + + (PDF 1.2) End marked-content sequence. + + + + + (PDF 1.1) End compatibility section. + + + + + (PDF 1.2) Define marked-content point + + + + + Move to next line and show text. + + + + + Set word and character spacing, move to next line, and show text. + + + + + Represents a PDF content stream operator description. + + + + + Initializes a new instance of the class. + + The name. + The enum value of the operator. + The number of operands. + The postscript equivalent, or null, if no such operation exists. + The flags. + The description from Adobe PDF Reference. + + + + The name of the operator. + + + + + The enum value of the operator. + + + + + The number of operands. -1 indicates a variable number of operands. + + + + + The flags. + + + + + The postscript equivalent, or null, if no such operation exists. + + + + + The description from Adobe PDF Reference. + + + + + Static class with all PDF op-codes. + + + + + Operators from name. + + The name. + + + + Initializes the class. + + + + + Array of all OpCodes. + + + + + Character table by name. Same as PdfSharp.Pdf.IO.Chars. Not yet clear if necessary. + + + + + Lexical analyzer for PDF content files. Adobe specifies no grammar, but it seems that it + is a simple post-fix notation. + + + + + Initializes a new instance of the Lexer class. + + + + + Initializes a new instance of the Lexer class. + + + + + Reads the next token and returns its type. + + + + + Scans a comment line. (Not yet used, comments are skipped by lexer.) + + + + + Scans the bytes of an inline image. + NYI: Just scans over it. + + + + + Scans a name. + + + + + Scans an integer or real number. + + + + + Scans an operator. + + + + + Move current position one character further in content stream. + + + + + Resets the current token to the empty string. + + + + + Appends current character to the token and reads next one. + + + + + If the current character is not a white space, the function immediately returns it. + Otherwise the PDF cursor is moved forward to the first non-white space or EOF. + White spaces are NUL, HT, LF, FF, CR, and SP. + + + + + Gets or sets the current symbol. + + + + + Gets the current token. + + + + + Interprets current token as integer literal. + + + + + Interpret current token as real or integer literal. + + + + + Indicates whether the specified character is a content stream white-space character. + + + + + Indicates whether the specified character is an content operator character. + + + + + Indicates whether the specified character is a PDF delimiter character. + + + + + Gets the length of the content. + + + + + Represents the functionality for reading PDF content streams. + + + + + Reads the content stream(s) of the specified page. + + The page. + + + + Reads the specified content. + + The content. + + + + Reads the specified content. + + The content. + + + + Exception thrown by ContentReader. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Represents a writer for generation of PDF streams. + + + + + Writes the specified value to the PDF stream. + + + + + Gets or sets the indentation for a new indentation level. + + + + + Increases indent level. + + + + + Decreases indent level. + + + + + Gets an indent string of current indent. + + + + + Gets the underlying stream. + + + + + Provides the functionality to parse PDF content streams. + + + + + Parses whatever comes until the specified stop symbol is reached. + + + + + Reads the next symbol that must be the specified one. + + + + + Terminal symbols recognized by PDF content stream lexer. + + + + + Implements the ASCII85Decode filter. + + + + + Encodes the specified data. + + + + + Decodes the specified data. + + + + + Implements the ASCIIHexDecode filter. + + + + + Encodes the specified data. + + + + + Decodes the specified data. + + + + + Reserved for future extension. + + + + + Base class for all stream filters + + + + + When implemented in a derived class encodes the specified data. + + + + + Encodes a raw string. + + + + + When implemented in a derived class decodes the specified data. + + + + + Decodes the specified data. + + + + + Decodes to a raw string. + + + + + Decodes to a raw string. + + + + + Removes all white spaces from the data. The function assumes that the bytes are characters. + + + + + Applies standard filters to streams. + + + + + Gets the filter specified by the case sensitive name. + + + + + Gets the filter singleton. + + + + + Gets the filter singleton. + + + + + Gets the filter singleton. + + + + + Gets the filter singleton. + + + + + Encodes the data with the specified filter. + + + + + Encodes a raw string with the specified filter. + + + + + Decodes the data with the specified filter. + + + + + Decodes the data with the specified filter. + + + + + Decodes the data with the specified filter. + + + + + Decodes to a raw string with the specified filter. + + + + + Decodes to a raw string with the specified filter. + + + + + Implements the FlateDecode filter by wrapping SharpZipLib. + + + + + Encodes the specified data. + + + + + Encodes the specified data. + + + + + Decodes the specified data. + + + + + Implements the LzwDecode filter. + + + + + Throws a NotImplementedException because the obsolete LZW encoding is not supported by PDFsharp. + + + + + Decodes the specified data. + + + + + Initialize the dictionary. + + + + + Add a new entry to the Dictionary. + + + + + Returns the next set of bits. + + + + + An encoder for PDF AnsiEncoding. + + + + + Gets the byte count. + + + + + Gets the bytes. + + + + + Gets the character count. + + + + + Gets the chars. + + + + + When overridden in a derived class, calculates the maximum number of bytes produced by encoding the specified number of characters. + + The number of characters to encode. + + The maximum number of bytes produced by encoding the specified number of characters. + + + + + When overridden in a derived class, calculates the maximum number of characters produced by decoding the specified number of bytes. + + The number of bytes to decode. + + The maximum number of characters produced by decoding the specified number of bytes. + + + + + Indicates whether the specified Unicode character is available in the ANSI code page 1252. + + + + + Maps Unicode to ANSI code page 1252. + + + + + Maps WinAnsi to Unicode characters. + + + + + Helper functions for RGB and CMYK colors. + + + + + Checks whether a color mode and a color match. + + + + + Checks whether the color mode of a document and a color match. + + + + + Determines whether two colors are equal referring to their CMYK color values. + + + + + An encoder for PDF DocEncoding. + + + + + Converts WinAnsi to DocEncode characters. Based upon PDF Reference 1.6. + + + + + Groups a set of static encoding helper functions. + + + + + Gets the raw encoding. + + + + + Gets the raw Unicode encoding. + + + + + Gets the Windows 1252 (ANSI) encoding. + + + + + Gets the PDF DocEncoding encoding. + + + + + Gets the UNICODE little-endian encoding. + + + + + Converts a raw string into a raw string literal, possibly encrypted. + + + + + Converts a raw string into a raw string literal, possibly encrypted. + + + + + Converts a raw string into a raw hexadecimal string literal, possibly encrypted. + + + + + Converts a raw string into a raw hexadecimal string literal, possibly encrypted. + + + + + Converts the specified byte array into a byte array representing a string literal. + + The bytes of the string. + Indicates whether one or two bytes are one character. + Indicates whether to use Unicode prefix. + Indicates whether to create a hexadecimal string literal. + Encrypts the bytes if specified. + The PDF bytes. + + + + Converts WinAnsi to DocEncode characters. Incomplete, just maps € and some other characters. + + + + + ...because I always forget CultureInfo.InvariantCulture and wonder why Acrobat + cannot understand my German decimal separator... + + + + + Converts a float into a string with up to 3 decimal digits and a decimal point. + + + + + Converts an XColor into a string with up to 3 decimal digits and a decimal point. + + + + + Converts an XMatrix into a string with up to 4 decimal digits and a decimal point. + + + + + An encoder for raw strings. The raw encoding is simply the identity relation between + characters and bytes. PDFsharp internally works with raw encoded strings instead of + byte arrays because strings are much more handy than byte arrays. + + + Raw encoded strings represent an array of bytes. Therefore a character greater than + 255 is not valid in a raw encoded string. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters from the specified character array. + + The character array containing the set of characters to encode. + The index of the first character to encode. + The number of characters to encode. + + The number of bytes produced by encoding the specified characters. + + + + + When overridden in a derived class, encodes a set of characters from the specified character array into the specified byte array. + + The character array containing the set of characters to encode. + The index of the first character to encode. + The number of characters to encode. + The byte array to contain the resulting sequence of bytes. + The index at which to start writing the resulting sequence of bytes. + + The actual number of bytes written into . + + + + + When overridden in a derived class, calculates the number of characters produced by decoding a sequence of bytes from the specified byte array. + + The byte array containing the sequence of bytes to decode. + The index of the first byte to decode. + The number of bytes to decode. + + The number of characters produced by decoding the specified sequence of bytes. + + + + + When overridden in a derived class, decodes a sequence of bytes from the specified byte array into the specified character array. + + The byte array containing the sequence of bytes to decode. + The index of the first byte to decode. + The number of bytes to decode. + The character array to contain the resulting set of characters. + The index at which to start writing the resulting set of characters. + + The actual number of characters written into . + + + + + When overridden in a derived class, calculates the maximum number of bytes produced by encoding the specified number of characters. + + The number of characters to encode. + + The maximum number of bytes produced by encoding the specified number of characters. + + + + + When overridden in a derived class, calculates the maximum number of characters produced by decoding the specified number of bytes. + + The number of bytes to decode. + + The maximum number of characters produced by decoding the specified number of bytes. + + + + + An encoder for Unicode strings. + (That means, a character represents a glyph index.) + + + + + Provides a thread-local cache for large objects. + + + + + Maps path to document handle. + + + + + Character table by name. + + + + + The EOF marker. + + + + + The null byte. + + + + + The carriage return character (ignored by lexer). + + + + + The line feed character. + + + + + The bell character. + + + + + The backspace character. + + + + + The form feed character. + + + + + The horizontal tab character. + + + + + The vertical tab character. + + + + + The non-breakable space character (aka no-break space or non-breaking space). + + + + + The space character. + + + + + The double quote character. + + + + + The single quote character. + + + + + The left parenthesis. + + + + + The right parenthesis. + + + + + The left brace. + + + + + The right brace. + + + + + The left bracket. + + + + + The right bracket. + + + + + The less-than sign. + + + + + The greater-than sign. + + + + + The equal sign. + + + + + The period. + + + + + The semicolon. + + + + + The colon. + + + + + The slash. + + + + + The bar character. + + + + + The back slash. + + + + + The percent sign. + + + + + The dollar sign. + + + + + The at sign. + + + + + The number sign. + + + + + The question mark. + + + + + The hyphen. + + + + + The soft hyphen. + + + + + The currency sign. + + + + + Determines the type of the password. + + + + + Password is neither user nor owner password. + + + + + Password is user password. + + + + + Password is owner password. + + + + + Determines how a PDF document is opened. + + + + + The PDF stream is completely read into memory and can be modified. Pages can be deleted or + inserted, but it is not possible to extract pages. This mode is useful for modifying an + existing PDF document. + + + + + The PDF stream is opened for importing pages from it. A document opened in this mode cannot + be modified. + + + + + The PDF stream is completely read into memory, but cannot be modified. This mode preserves the + original internal structure of the document and is useful for analyzing existing PDF files. + + + + + The PDF stream is partially read for information purposes only. The only valid operation is to + call the Info property at the imported document. This option is very fast and needs less memory + and is e.g. useful for browsing information about a collection of PDF documents in a user interface. + + + + + Determines how the PDF output stream is formatted. Even all formats create valid PDF files, + only Compact or Standard should be used for production purposes. + + + + + The PDF stream contains no unnecessary characters. This is default in release build. + + + + + The PDF stream contains some superfluous line feeds, but is more readable. + + + + + The PDF stream is indented to reflect the nesting levels of the objects. This is useful + for analyzing PDF files, but increases the size of the file significantly. + + + + + The PDF stream is indented to reflect the nesting levels of the objects and contains additional + information about the PDFsharp objects. Furthermore content streams are not deflated. This + is useful for debugging purposes only and increases the size of the file significantly. + + + + + INTERNAL USE ONLY. + + + + + If only this flag is specified the result is a regular valid PDF stream. + + + + + Omit writing stream data. For debugging purposes only. + With this option the result is not valid PDF. + + + + + Omit inflate filter. For debugging purposes only. + + + + + Terminal symbols recognized by lexer. + + + + + Lexical analyzer for PDF files. Technically a PDF file is a stream of bytes. Some chunks + of bytes represent strings in several encodings. The actual encoding depends on the + context where the string is used. Therefore the bytes are 'raw encoded' into characters, + i.e. a character or token read by the lexer has always character values in the range from + 0 to 255. + + + + + Initializes a new instance of the Lexer class. + + + + + Gets or sets the position within the PDF stream. + + + + + Reads the next token and returns its type. If the token starts with a digit, the parameter + testReference specifies how to treat it. If it is false, the lexer scans for a single integer. + If it is true, the lexer checks if the digit is the prefix of a reference. If it is a reference, + the token is set to the object ID followed by the generation number separated by a blank + (the 'R' is omitted from the token). + + + + + Reads the raw content of a stream. + + + + + Reads a string in raw encoding. + + + + + Scans a comment line. + + + + + Scans a name. + + + + + Scans a number. + + + + + Scans a keyword. + + + + + Scans a literal string, contained between "(" and ")". + + + + + Move current position one character further in PDF stream. + + + + + Appends current character to the token and reads next one. + + + + + If the current character is not a white space, the function immediately returns it. + Otherwise the PDF cursor is moved forward to the first non-white space or EOF. + White spaces are NUL, HT, LF, FF, CR, and SP. + + + + + Gets the current symbol. + + + + + Gets the current token. + + + + + Interprets current token as boolean literal. + + + + + Interprets current token as integer literal. + + + + + Interprets current token as unsigned integer literal. + + + + + Interprets current token as real or integer literal. + + + + + Interprets current token as object ID. + + + + + Indicates whether the specified character is a PDF white-space character. + + + + + Indicates whether the specified character is a PDF delimiter character. + + + + + Gets the length of the PDF output. + + + + + Provides the functionality to parse PDF documents. + + + + + Sets PDF input stream position to the specified object. + + + + + Reads PDF object from input stream. + + Either the instance of a derived type or null. If it is null + an appropriate object is created. + The address of the object. + If true, specifies that all indirect objects + are included recursively. + If true, the objects is parsed from an object stream. + + + + Reads the stream of a dictionary. + + + + + Parses whatever comes until the specified stop symbol is reached. + + + + + Reads the object ID and the generation and sets it into the specified object. + + + + + Reads the next symbol that must be the specified one. + + + + + Reads the next token that must be the specified one. + + + + + Reads a name from the PDF data stream. The preceding slash is part of the result string. + + + + + Reads an integer value directly from the PDF data stream. + + + + + Reads an object from the PDF input stream using the default parser. + + + + + Reads the irefs from the compressed object with the specified index in the object stream + of the object with the specified object id. + + + + + Reads the compressed object with the specified index in the object stream + of the object with the specified object id. + + + + + Reads the compressed object with the specified number at the given offset. + The parser must be initialized with the stream an object stream object. + + + + + Reads the object stream header as pairs of integers from the beginning of the + stream of an object stream. Parameter first is the value of the First entry of + the object stream object. + + + + + Reads the cross-reference table(s) and their trailer dictionary or + cross-reference streams. + + + + + Reads cross reference table(s) and trailer(s). + + + + + Checks the x reference table entry. Returns true if everything is correct. + Return false if the keyword "obj" was found, but ID or Generation are incorrect. + Throws an exception otherwise. + + The position where the object is supposed to be. + The ID from the XRef table. + The generation from the XRef table. + The identifier found in the PDF file. + The generation found in the PDF file. + + + + + Reads cross reference stream(s). + + + + + Parses a PDF date string. + + + + + Encapsulates the arguments of the PdfPasswordProvider delegate. + + + + + Sets the password to open the document with. + + + + + When set to true the PdfReader.Open function returns null indicating that no PdfDocument was created. + + + + + A delegated used by the PdfReader.Open function to retrieve a password if the document is protected. + + + + + Represents the functionality for reading PDF documents. + + + + + Determines whether the file specified by its path is a PDF file by inspecting the first eight + bytes of the data. If the file header has the form «%PDF-x.y» the function returns the version + number as integer (e.g. 14 for PDF 1.4). If the file header is invalid or inaccessible + for any reason, 0 is returned. The function never throws an exception. + + + + + Determines whether the specified stream is a PDF file by inspecting the first eight + bytes of the data. If the data begins with «%PDF-x.y» the function returns the version + number as integer (e.g. 14 for PDF 1.4). If the data is invalid or inaccessible + for any reason, 0 is returned. The function never throws an exception. + + + + + Determines whether the specified data is a PDF file by inspecting the first eight + bytes of the data. If the data begins with «%PDF-x.y» the function returns the version + number as integer (e.g. 14 for PDF 1.4). If the data is invalid or inaccessible + for any reason, 0 is returned. The function never throws an exception. + + + + + Implements scanning the PDF file version. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Opens an existing PDF document. + + + + + Exception thrown by PdfReader. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Represents a writer for generation of PDF streams. + + + + + Gets or sets the kind of layout. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Writes the specified value to the PDF stream. + + + + + Begins a direct or indirect dictionary or array. + + + + + Ends a direct or indirect dictionary or array. + + + + + Writes the stream of the specified dictionary. + + + + + Gets or sets the indentation for a new indentation level. + + + + + Increases indent level. + + + + + Decreases indent level. + + + + + Gets an indent string of current indent. + + + + + Gets the underlying stream. + + + + + Represents the stack for the shift-reduce parser. It seems that it is only needed for + reduction of indirect references. + + + + + Gets the stack pointer index. + + + + + Gets the value at the specified index. Valid index is in range 0 up to sp-1. + + + + + Gets an item relative to the current stack pointer. The index must be a negative value (-1, -2, etc.). + + + + + Gets an item relative to the current stack pointer. The index must be a negative value (-1, -2, etc.). + + + + + Pushes the specified item onto the stack. + + + + + Replaces the last 'count' items with the specified item. + + + + + Replaces the last 'count' items with the specified item. + + + + + The stack pointer index. Points to the next free item. + + + + + An array representing the stack. + + + + + Specifies the security level of the PDF document. + + + + + Document is not protected. + + + + + Document is protected with 40-bit security. This option is for compatibility with + Acrobat 3 and 4 only. Use Encrypted128Bit whenever possible. + + + + + Document is protected with 128-bit security. + + + + + Specifies which operations are permitted when the document is opened with user access. + + + + + Permits everything. This is the default value. + + + + + Represents the base of all security handlers. + + + + + Predefined keys of this dictionary. + + + + + (Required) The name of the preferred security handler for this document. Typically, + it is the name of the security handler that was used to encrypt the document. If + SubFilter is not present, only this security handler should be used when opening + the document. If it is present, consumer applications can use any security handler + that implements the format specified by SubFilter. + Standard is the name of the built-in password-based security handler. Names for other + security handlers can be registered by using the procedure described in Appendix E. + + + + + (Optional; PDF 1.3) A name that completely specifies the format and interpretation of + the contents of the encryption dictionary. It is needed to allow security handlers other + than the one specified by Filter to decrypt the document. If this entry is absent, other + security handlers should not be allowed to decrypt the document. + + + + + (Optional but strongly recommended) A code specifying the algorithm to be used in encrypting + and decrypting the document: + 0 An algorithm that is undocumented and no longer supported, and whose use is strongly discouraged. + 1 Algorithm 3.1, with an encryption key length of 40 bits. + 2 (PDF 1.4) Algorithm 3.1, but permitting encryption key lengths greater than 40 bits. + 3 (PDF 1.4) An unpublished algorithm that permits encryption key lengths ranging from 40 to 128 bits. + 4 (PDF 1.5) The security handler defines the use of encryption and decryption in the document, using + the rules specified by the CF, StmF, and StrF entries. + The default value if this entry is omitted is 0, but a value of 1 or greater is strongly recommended. + + + + + (Optional; PDF 1.4; only if V is 2 or 3) The length of the encryption key, in bits. + The value must be a multiple of 8, in the range 40 to 128. Default value: 40. + + + + + (Optional; meaningful only when the value of V is 4; PDF 1.5) + A dictionary whose keys are crypt filter names and whose values are the corresponding + crypt filter dictionaries. Every crypt filter used in the document must have an entry + in this dictionary, except for the standard crypt filter names. + + + + + (Optional; meaningful only when the value of V is 4; PDF 1.5) + The name of the crypt filter that is used by default when decrypting streams. + The name must be a key in the CF dictionary or a standard crypt filter name. All streams + in the document, except for cross-reference streams or streams that have a Crypt entry in + their Filter array, are decrypted by the security handler, using this crypt filter. + Default value: Identity. + + + + + (Optional; meaningful only when the value of V is 4; PDF 1.) + The name of the crypt filter that is used when decrypting all strings in the document. + The name must be a key in the CF dictionary or a standard crypt filter name. + Default value: Identity. + + + + + (Optional; meaningful only when the value of V is 4; PDF 1.6) + The name of the crypt filter that should be used by default when encrypting embedded + file streams; it must correspond to a key in the CF dictionary or a standard crypt + filter name. This entry is provided by the security handler. Applications should respect + this value when encrypting embedded files, except for embedded file streams that have + their own crypt filter specifier. If this entry is not present, and the embedded file + stream does not contain a crypt filter specifier, the stream should be encrypted using + the default stream crypt filter specified by StmF. + + + + + Encapsulates access to the security settings of a PDF document. + + + + + Indicates whether the granted access to the document is 'owner permission'. Returns true if the document + is unprotected or was opened with the owner password. Returns false if the document was opened with the + user password. + + + + + Gets or sets the document security level. If you set the security level to anything but PdfDocumentSecurityLevel.None + you must also set a user and/or an owner password. Otherwise saving the document will fail. + + + + + Sets the user password of the document. Setting a password automatically sets the + PdfDocumentSecurityLevel to PdfDocumentSecurityLevel.Encrypted128Bit if its current + value is PdfDocumentSecurityLevel.None. + + + + + Sets the owner password of the document. Setting a password automatically sets the + PdfDocumentSecurityLevel to PdfDocumentSecurityLevel.Encrypted128Bit if its current + value is PdfDocumentSecurityLevel.None. + + + + + Determines whether the document can be saved. + + + + + Permits printing the document. Should be used in conjunction with PermitFullQualityPrint. + + + + + Permits modifying the document. + + + + + Permits content copying or extraction. + + + + + Permits commenting the document. + + + + + Permits filling of form fields. + + + + + Permits content extraction for accessibility. + + + + + Permits to insert, rotate, or delete pages and create bookmarks or thumbnail images even if + PermitModifyDocument is not set. + + + + + Permits to print in high quality. insert, rotate, or delete pages and create bookmarks or thumbnail images + even if PermitModifyDocument is not set. + + + + + PdfStandardSecurityHandler is the only implemented handler. + + + + + Represents the standard PDF security handler. + + + + + Sets the user password of the document. Setting a password automatically sets the + PdfDocumentSecurityLevel to PdfDocumentSecurityLevel.Encrypted128Bit if its current + value is PdfDocumentSecurityLevel.None. + + + + + Sets the owner password of the document. Setting a password automatically sets the + PdfDocumentSecurityLevel to PdfDocumentSecurityLevel.Encrypted128Bit if its current + value is PdfDocumentSecurityLevel.None. + + + + + Gets or sets the user access permission represented as an integer in the P key. + + + + + Encrypts the whole document. + + + + + Encrypts an indirect object. + + + + + Encrypts a dictionary. + + + + + Encrypts an array. + + + + + Encrypts a string. + + + + + Encrypts an array. + + + + + Checks the password. + + Password or null if no password is provided. + + + + Pads a password to a 32 byte array. + + + + + Generates the user key based on the padded user password. + + + + + Generates the user key based on the padded owner password. + + + + + Computes the padded user password from the padded owner password. + + + + + Computes the encryption key. + + + + + Computes the user key. + + + + + Prepare the encryption key. + + + + + Prepare the encryption key. + + + + + Prepare the encryption key. + + + + + Encrypts the data. + + + + + Encrypts the data. + + + + + Encrypts the data. + + + + + Encrypts the data. + + + + + Checks whether the calculated key correct. + + + + + Set the hash key for the specified object. + + + + + Prepares the security handler for encrypting the document. + + + + + The global encryption key. + + + + + The message digest algorithm MD5. + + + + + Bytes used for RC4 encryption. + + + + + The encryption key for the owner. + + + + + The encryption key for the user. + + + + + The encryption key for a particular object/generation. + + + + + The encryption key length for a particular object/generation. + + + + + Predefined keys of this dictionary. + + + + + (Required) A number specifying which revision of the standard security handler + should be used to interpret this dictionary: + • 2 if the document is encrypted with a V value less than 2 and does not have any of + the access permissions set (by means of the P entry, below) that are designated + "Revision 3 or greater". + • 3 if the document is encrypted with a V value of 2 or 3, or has any "Revision 3 or + greater" access permissions set. + • 4 if the document is encrypted with a V value of 4 + + + + + (Required) A 32-byte string, based on both the owner and user passwords, that is + used in computing the encryption key and in determining whether a valid owner + password was entered. + + + + + (Required) A 32-byte string, based on the user password, that is used in determining + whether to prompt the user for a password and, if so, whether a valid user or owner + password was entered. + + + + + (Required) A set of flags specifying which operations are permitted when the document + is opened with user access. + + + + + (Optional; meaningful only when the value of V is 4; PDF 1.5) Indicates whether + the document-level metadata stream is to be encrypted. Applications should respect this value. + Default value: true. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Specifies the type of a key's value in a dictionary. + + + + + Summary description for KeyInfo. + + + + + Identifies the state of the document + + + + + The document was created from scratch. + + + + + The document was created by opening an existing PDF file. + + + + + The document is disposed. + + + + + Sets the mode for the Deflater (FlateEncoder). + + + + + The default mode. + + + + + Fast encoding, but larger PDF files. + + + + + Best compression, but takes more time. + + + + + Specifies whether to compress JPEG images with the FlateDecode filter. + + + + + PDFsharp will try FlateDecode and use it if it leads to a reduction in PDF file size. + When FlateEncodeMode is set to BestCompression, this is more likely to reduce the file size, + but it takes considerably more time to create the PDF file. + + + + + PDFsharp will never use FlateDecode - files may be a few bytes larger, but file creation is faster. + + + + + PDFsharp will always use FlateDecode, even if this leads to larger files; + this option is meant for testing purposes only and should not be used for production code. + + + + + Specifies what color model is used in a PDF document. + + + + + All color values are written as specified in the XColor objects they come from. + + + + + All colors are converted to RGB. + + + + + All colors are converted to CMYK. + + + + + This class is undocumented and may change or drop in future releases. + + + + + Use document default to determine compression. + + + + + Leave custom values uncompressed. + + + + + Compress custom values using FlateDecode. + + + + + Specifies the embedding options of an XFont when converted into PDF. + Font embedding is not optional anymore. So Always is the only option. + + + + + All fonts are embedded. + + + + + Fonts are not embedded. This is not an option anymore. + + + + + Unicode fonts are embedded, WinAnsi fonts are not embedded. + + + + + Not yet implemented. + + + + + Specifies the encoding schema used for an XFont when converted into PDF. + + + + + Cause a font to use Windows-1252 encoding to encode text rendered with this font. + Same as Windows1252 encoding. + + + + + Cause a font to use Unicode encoding to encode text rendered with this font. + + + + + Unicode encoding. + + + + + Specifies the type of a page destination in outline items, annotations, or actions.. + + + + + Display the page with the coordinates (left, top) positioned at the upper-left corner of + the window and the contents of the page magnified by the factor zoom. + + + + + Display the page with its contents magnified just enough to fit the + entire page within the window both horizontally and vertically. + + + + + Display the page with the vertical coordinate top positioned at the top edge of + the window and the contents of the page magnified just enough to fit the entire + width of the page within the window. + + + + + Display the page with the horizontal coordinate left positioned at the left edge of + the window and the contents of the page magnified just enough to fit the entire + height of the page within the window. + + + + + Display the page designated by page, with its contents magnified just enough to + fit the rectangle specified by the coordinates left, bottom, right, and topentirely + within the window both horizontally and vertically. If the required horizontal and + vertical magnification factors are different, use the smaller of the two, centering + the rectangle within the window in the other dimension. A null value for any of + the parameters may result in unpredictable behavior. + + + + + Display the page with its contents magnified just enough to fit the rectangle specified + by the coordinates left, bottom, right, and topentirely within the window both + horizontally and vertically. + + + + + Display the page with the vertical coordinate top positioned at the top edge of + the window and the contents of the page magnified just enough to fit the entire + width of its bounding box within the window. + + + + + Display the page with the horizontal coordinate left positioned at the left edge of + the window and the contents of the page magnified just enough to fit the entire + height of its bounding box within the window. + + + + + Specifies the font style for the outline (bookmark) text. + + + + + Outline text is displayed using a regular font. + + + + + Outline text is displayed using an italic font. + + + + + Outline text is displayed using a bold font. + + + + + Outline text is displayed using a bold and italic font. + + + + + Specifies the page layout to be used by a viewer when the document is opened. + + + + + Display one page at a time. + + + + + Display the pages in one column. + + + + + Display the pages in two columns, with oddnumbered pages on the left. + + + + + Display the pages in two columns, with oddnumbered pages on the right. + + + + + (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the left. + + + + + (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the right. + + + + + Specifies how the document should be displayed by a viewer when opened. + + + + + Neither document outline nor thumbnail images visible. + + + + + Document outline visible. + + + + + Thumbnail images visible. + + + + + Full-screen mode, with no menu bar, windowcontrols, or any other window visible. + + + + + (PDF 1.5) Optional content group panel visible. + + + + + (PDF 1.6) Attachments panel visible. + + + + + Specifies how the document should be displayed by a viewer when opened. + + + + + Left to right. + + + + + Right to left (including vertical writing systems, such as Chinese, Japanese, and Korean) + + + + + Specifies how text strings are encoded. A text string is any text used outside of a page content + stream, e.g. document information, outline text, annotation text etc. + + + + + Specifies that hypertext uses PDF DocEncoding. + + + + + Specifies that hypertext uses unicode encoding. + + + + + Base class for all dictionary Keys classes. + + + + + Holds information about the value of a key in a dictionary. This information is used to create + and interpret this value. + + + + + Initializes a new instance of KeyDescriptor from the specified attribute during a KeysMeta + initializes itself using reflection. + + + + + Gets or sets the PDF version starting with the availability of the described key. + + + + + Returns the type of the object to be created as value for the described key. + + + + + Contains meta information about all keys of a PDF dictionary. + + + + + Gets the KeyDescriptor of the specified key, or null if no such descriptor exits. + + + + + Represents a PDF array object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + + + + Initializes a new instance of the class. + + The document. + The items. + + + + Initializes a new instance from an existing dictionary. Used for object type transformation. + + The array. + + + + Creates a copy of this array. Direct elements are deep copied. + Indirect references are not modified. + + + + + Implements the copy mechanism. + + + + + Gets the collection containing the elements of this object. + + + + + Returns an enumerator that iterates through a collection. + + + + + Returns a string with the content of this object in a readable form. Useful for debugging purposes only. + + + + + Represents the elements of an PdfArray. + + + + + Creates a shallow copy of this object. + + + + + Moves this instance to another array during object type transformation. + + + + + Converts the specified value to boolean. + If the value does not exist, the function returns false. + If the value is not convertible, the function throws an InvalidCastException. + If the index is out of range, the function throws an ArgumentOutOfRangeException. + + + + + Converts the specified value to integer. + If the value does not exist, the function returns 0. + If the value is not convertible, the function throws an InvalidCastException. + If the index is out of range, the function throws an ArgumentOutOfRangeException. + + + + + Converts the specified value to double. + If the value does not exist, the function returns 0. + If the value is not convertible, the function throws an InvalidCastException. + If the index is out of range, the function throws an ArgumentOutOfRangeException. + + + + + Converts the specified value to double?. + If the value does not exist, the function returns null. + If the value is not convertible, the function throws an InvalidCastException. + If the index is out of range, the function throws an ArgumentOutOfRangeException. + + + + + Converts the specified value to string. + If the value does not exist, the function returns the empty string. + If the value is not convertible, the function throws an InvalidCastException. + If the index is out of range, the function throws an ArgumentOutOfRangeException. + + + + + Converts the specified value to a name. + If the value does not exist, the function returns the empty string. + If the value is not convertible, the function throws an InvalidCastException. + If the index is out of range, the function throws an ArgumentOutOfRangeException. + + + + + Returns the indirect object if the value at the specified index is a PdfReference. + + + + + Gets the PdfObject with the specified index, or null, if no such object exists. If the index refers to + a reference, the referenced PdfObject is returned. + + + + + Gets the PdfArray with the specified index, or null, if no such object exists. If the index refers to + a reference, the referenced PdfArray is returned. + + + + + Gets the PdfArray with the specified index, or null, if no such object exists. If the index refers to + a reference, the referenced PdfArray is returned. + + + + + Gets the PdfReference with the specified index, or null, if no such object exists. + + + + + Gets all items of this array. + + + + + Returns false. + + + + + Gets or sets an item at the specified index. + + + + + + Removes the item at the specified index. + + + + + Removes the first occurrence of a specific object from the array/>. + + + + + Inserts the item the specified index. + + + + + Determines whether the specified value is in the array. + + + + + Removes all items from the array. + + + + + Gets the index of the specified item. + + + + + Appends the specified object to the array. + + + + + Returns false. + + + + + Returns false. + + + + + Gets the number of elements in the array. + + + + + Copies the elements of the array to the specified array. + + + + + The current implementation return null. + + + + + Returns an enumerator that iterates through the array. + + + + + The elements of the array. + + + + + The array this objects belongs to. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Represents a direct boolean value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the value of this instance as boolean value. + + + + + A pre-defined value that represents true. + + + + + A pre-defined value that represents false. + + + + + Returns 'false' or 'true'. + + + + + Writes 'true' or 'false'. + + + + + Represents an indirect boolean value. This type is not used by PDFsharp. If it is imported from + an external PDF file, the value is converted into a direct object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the value of this instance as boolean value. + + + + + Returns "false" or "true". + + + + + Writes the keyword «false» or «true». + + + + + This class is intended for empira internal use only and may change or drop in future releases. + + + + + This function is intended for empira internal use only. + + + + + This function is intended for empira internal use only. + + + + + This property is intended for empira internal use only. + + + + + This property is intended for empira internal use only. + + + + + This class is intended for empira internal use only and may change or drop in future releases. + + + + + This function is intended for empira internal use only. + + + + + This function is intended for empira internal use only. + + + + + This function is intended for empira internal use only. + + + + + This function is intended for empira internal use only. + + + + + Represents a direct date value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the value as DateTime. + + + + + Returns the value in the PDF date format. + + + + + Writes the value in the PDF date format. + + + + + Value creation flags. Specifies whether and how a value that does not exist is created. + + + + + Don't create the value. + + + + + Create the value as direct object. + + + + + Create the value as indirect object. + + + + + Represents a PDF dictionary object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + + + + Initializes a new instance from an existing dictionary. Used for object type transformation. + + + + + Creates a copy of this dictionary. Direct values are deep copied. Indirect references are not + modified. + + + + + This function is useful for importing objects from external documents. The returned object is not + yet complete. irefs refer to external objects and directed objects are cloned but their document + property is null. A cloned dictionary or array needs a 'fix-up' to be a valid object. + + + + + Gets the dictionary containing the elements of this dictionary. + + + + + The elements of the dictionary. + + + + + Returns an enumerator that iterates through the dictionary elements. + + + + + Returns a string with the content of this object in a readable form. Useful for debugging purposes only. + + + + + Writes a key/value pair of this dictionary. This function is intended to be overridden + in derived classes. + + + + + Writes the stream of this dictionary. This function is intended to be overridden + in a derived class. + + + + + Gets or sets the PDF stream belonging to this dictionary. Returns null if the dictionary has + no stream. To create the stream, call the CreateStream function. + + + + + Creates the stream of this dictionary and initializes it with the specified byte array. + The function must not be called if the dictionary already has a stream. + + + + + When overridden in a derived class, gets the KeysMeta of this dictionary type. + + + + + Represents the interface to the elements of a PDF dictionary. + + + + + Creates a shallow copy of this object. The clone is not owned by a dictionary anymore. + + + + + Moves this instance to another dictionary during object type transformation. + + + + + Gets the dictionary to which this elements object belongs to. + + + + + Converts the specified value to boolean. + If the value does not exist, the function returns false. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Converts the specified value to boolean. + If the value does not exist, the function returns false. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Sets the entry to a direct boolean value. + + + + + Converts the specified value to integer. + If the value does not exist, the function returns 0. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Converts the specified value to integer. + If the value does not exist, the function returns 0. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Sets the entry to a direct integer value. + + + + + Converts the specified value to double. + If the value does not exist, the function returns 0. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Converts the specified value to double. + If the value does not exist, the function returns 0. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Sets the entry to a direct double value. + + + + + Converts the specified value to String. + If the value does not exist, the function returns the empty string. + + + + + Converts the specified value to String. + If the value does not exist, the function returns the empty string. + + + + + Tries to get the string. TODO: more TryGet... + + + + + Sets the entry to a direct string value. + + + + + Converts the specified value to a name. + If the value does not exist, the function returns the empty string. + + + + + Sets the specified name value. + If the value doesn't start with a slash, it is added automatically. + + + + + Converts the specified value to PdfRectangle. + If the value does not exist, the function returns an empty rectangle. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Converts the specified value to PdfRectangle. + If the value does not exist, the function returns an empty rectangle. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Sets the entry to a direct rectangle value, represented by an array with four values. + + + + Converts the specified value to XMatrix. + If the value does not exist, the function returns an identity matrix. + If the value is not convertible, the function throws an InvalidCastException. + + + Converts the specified value to XMatrix. + If the value does not exist, the function returns an identity matrix. + If the value is not convertible, the function throws an InvalidCastException. + + + + Sets the entry to a direct matrix value, represented by an array with six values. + + + + + Converts the specified value to DateTime. + If the value does not exist, the function returns the specified default value. + If the value is not convertible, the function throws an InvalidCastException. + + + + + Sets the entry to a direct datetime value. + + + + + Gets the value for the specified key. If the value does not exist, it is optionally created. + + + + + Short cut for GetValue(key, VCF.None). + + + + + Returns the type of the object to be created as value of the specified key. + + + + + Sets the entry with the specified value. DON'T USE THIS FUNCTION - IT MAY BE REMOVED. + + + + + Gets the PdfObject with the specified key, or null, if no such object exists. If the key refers to + a reference, the referenced PdfObject is returned. + + + + + Gets the PdfDictionary with the specified key, or null, if no such object exists. If the key refers to + a reference, the referenced PdfDictionary is returned. + + + + + Gets the PdfArray with the specified key, or null, if no such object exists. If the key refers to + a reference, the referenced PdfArray is returned. + + + + + Gets the PdfReference with the specified key, or null, if no such object exists. + + + + + Sets the entry to the specified object. The object must not be an indirect object, + otherwise an exception is raised. + + + + + Sets the entry as a reference to the specified object. The object must be an indirect object, + otherwise an exception is raised. + + + + + Sets the entry as a reference to the specified iref. + + + + + Gets a value indicating whether the object is read-only. + + + + + Returns an object for the object. + + + + + Gets or sets an entry in the dictionary. The specified key must be a valid PDF name + starting with a slash '/'. This property provides full access to the elements of the + PDF dictionary. Wrong use can lead to errors or corrupt PDF files. + + + + + Gets or sets an entry in the dictionary identified by a PdfName object. + + + + + Removes the value with the specified key. + + + + + Removes the value with the specified key. + + + + + Determines whether the dictionary contains the specified name. + + + + + Determines whether the dictionary contains a specific value. + + + + + Removes all elements from the dictionary. + + + + + Adds the specified value to the dictionary. + + + + + Adds an item to the dictionary. + + + + + Gets all keys currently in use in this dictionary as an array of PdfName objects. + + + + + Get all keys currently in use in this dictionary as an array of string objects. + + + + + Gets the value associated with the specified key. + + + + + Gets all values currently in use in this dictionary as an array of PdfItem objects. + + + + + Return false. + + + + + Return false. + + + + + Gets the number of elements contained in the dictionary. + + + + + Copies the elements of the dictionary to an array, starting at a particular index. + + + + + The current implementation returns null. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + The elements of the dictionary with a string as key. + Because the string is a name it starts always with a '/'. + + + + + The dictionary this objects belongs to. + + + + + The PDF stream objects. + + + + + A .NET string can contain char(0) as a valid character. + + + + + Clones this stream by creating a deep copy. + + + + + Moves this instance to another dictionary during object type transformation. + + + + + The dictionary the stream belongs to. + + + + + Gets the length of the stream, i.e. the actual number of bytes in the stream. + + + + + Gets a value indicating whether this stream has decode parameters. + + + + + Gets the decode predictor for LZW- or FlateDecode. + Returns 0 if no such value exists. + + + + + Gets the decode Columns for LZW- or FlateDecode. + Returns 0 if no such value exists. + + + + + Get or sets the bytes of the stream as they are, i.e. if one or more filters exist the bytes are + not unfiltered. + + + + + Gets the value of the stream unfiltered. The stream content is not modified by this operation. + + + + + Tries to unfilter the bytes of the stream. If the stream is filtered and PDFsharp knows the filter + algorithm, the stream content is replaced by its unfiltered value and the function returns true. + Otherwise the content remains untouched and the function returns false. + The function is useful for analyzing existing PDF files. + + + + + Compresses the stream with the FlateDecode filter. + If a filter is already defined, the function has no effect. + + + + + Returns the stream content as a raw string. + + + + + Common keys for all streams. + + + + + (Required) The number of bytes from the beginning of the line following the keyword + stream to the last byte just before the keyword endstream. (There may be an additional + EOL marker, preceding endstream, that is not included in the count and is not logically + part of the stream data.) + + + + + (Optional) The name of a filter to be applied in processing the stream data found between + the keywords stream and endstream, or an array of such names. Multiple filters should be + specified in the order in which they are to be applied. + + + + + (Optional) A parameter dictionary or an array of such dictionaries, used by the filters + specified by Filter. If there is only one filter and that filter has parameters, DecodeParms + must be set to the filter’s parameter dictionary unless all the filter’s parameters have + their default values, in which case the DecodeParms entry may be omitted. If there are + multiple filters and any of the filters has parameters set to nondefault values, DecodeParms + must be an array with one entry for each filter: either the parameter dictionary for that + filter, or the null object if that filter has no parameters (or if all of its parameters have + their default values). If none of the filters have parameters, or if all their parameters + have default values, the DecodeParms entry may be omitted. + + + + + (Optional; PDF 1.2) The file containing the stream data. If this entry is present, the bytes + between stream and endstream are ignored, the filters are specified by FFilter rather than + Filter, and the filter parameters are specified by FDecodeParms rather than DecodeParms. + However, the Length entry should still specify the number of those bytes. (Usually, there are + no bytes and Length is 0.) + + + + + (Optional; PDF 1.2) The name of a filter to be applied in processing the data found in the + stream’s external file, or an array of such names. The same rules apply as for Filter. + + + + + (Optional; PDF 1.2) A parameter dictionary, or an array of such dictionaries, used by the + filters specified by FFilter. The same rules apply as for DecodeParms. + + + + + Optional; PDF 1.5) A non-negative integer representing the number of bytes in the decoded + (defiltered) stream. It can be used to determine, for example, whether enough disk space is + available to write a stream to a file. + This value should be considered a hint only; for some stream filters, it may not be possible + to determine this value precisely. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Represents a PDF document. + + + + + Creates a new PDF document in memory. + To open an existing PDF file, use the PdfReader class. + + + + + Creates a new PDF document with the specified file name. The file is immediately created and keeps + locked until the document is closed, at that time the document is saved automatically. + Do not call Save() for documents created with this constructor, just call Close(). + To open an existing PDF file and import it, use the PdfReader class. + + + + + Creates a new PDF document using the specified stream. + The stream won't be used until the document is closed, at that time the document is saved automatically. + Do not call Save() for documents created with this constructor, just call Close(). + To open an existing PDF file, use the PdfReader class. + + + + + Disposes all references to this document stored in other documents. This function should be called + for documents you finished importing pages from. Calling Dispose is technically not necessary but + useful for earlier reclaiming memory of documents you do not need anymore. + + + + + Gets or sets a user defined object that contains arbitrary information associated with this document. + The tag is not used by PDFsharp. + + + + + Gets or sets a value used to distinguish PdfDocument objects. + The name is not used by PDFsharp. + + + + + Get a new default name for a new document. + + + + + Closes this instance. + + + + + Saves the document to the specified path. If a file already exists, it will be overwritten. + + + + + Saves the document to the specified stream. + + + + + Saves the document to the specified stream. + The stream is not closed by this function. + (Older versions of PDFsharp closes the stream. That was not very useful.) + + + + + Implements saving a PDF file. + + + + + Dispatches PrepareForSave to the objects that need it. + + + + + Determines whether the document can be saved. + + + + + Gets the document options used for saving the document. + + + + + Gets PDF specific document settings. + + + + + NYI Indicates whether large objects are written immediately to the output stream to relieve + memory consumption. + + + + + Gets or sets the PDF version number. Return value 14 e.g. means PDF 1.4 / Acrobat 5 etc. + + + + + Gets the number of pages in the document. + + + + + Gets the file size of the document. + + + + + Gets the full qualified file name if the document was read form a file, or an empty string otherwise. + + + + + Gets a Guid that uniquely identifies this instance of PdfDocument. + + + + + Returns a value indicating whether the document was newly created or opened from an existing document. + Returns true if the document was opened with the PdfReader.Open function, false otherwise. + + + + + Returns a value indicating whether the document is read only or can be modified. + + + + + Gets information about the document. + + + + + This function is intended to be undocumented. + + + + + Get the pages dictionary. + + + + + Gets or sets a value specifying the page layout to be used when the document is opened. + + + + + Gets or sets a value specifying how the document should be displayed when opened. + + + + + Gets the viewer preferences of this document. + + + + + Gets the root of the outline (or bookmark) tree. + + + + + Get the AcroForm dictionary. + + + + + Gets or sets the default language of the document. + + + + + Gets the security settings of this document. + + + + + Gets the document font table that holds all fonts used in the current document. + + + + + Gets the document image table that holds all images used in the current document. + + + + + Gets the document form table that holds all form external objects used in the current document. + + + + + Gets the document ExtGState table that holds all form state objects used in the current document. + + + + + Gets the PdfCatalog of the current document. + + + + + Gets the PdfInternals object of this document, that grants access to some internal structures + which are not part of the public interface of PdfDocument. + + + + + Creates a new page and adds it to this document. + Depending of the IsMetric property of the current region the page size is set to + A4 or Letter respectively. If this size is not appropriate it should be changed before + any drawing operations are performed on the page. + + + + + Adds the specified page to this document. If the page is from an external document, + it is imported to this document. In this case the returned page is not the same + object as the specified one. + + + + + Creates a new page and inserts it in this document at the specified position. + + + + + Inserts the specified page in this document. If the page is from an external document, + it is imported to this document. In this case the returned page is not the same + object as the specified one. + + + + + Flattens a document (make the fields non-editable). + + + + + Gets the security handler. + + + + + Occurs when the specified document is not used anymore for importing content. + + + + + Gets the ThreadLocalStorage object. It is used for caching objects that should created + only once. + + + + + Represents the PDF document information dictionary. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the document's title. + + + + + Gets or sets the name of the person who created the document. + + + + + Gets or sets the name of the subject of the document. + + + + + Gets or sets keywords associated with the document. + + + + + Gets or sets the name of the application (for example, MigraDoc) that created the document. + + + + + Gets the producer application (for example, PDFsharp). + + + + + Gets or sets the creation date of the document. + Breaking Change: If the date is not set in a PDF file DateTime.MinValue is returned. + + + + + Gets or sets the modification date of the document. + Breaking Change: If the date is not set in a PDF file DateTime.MinValue is returned. + + + + + Predefined keys of this dictionary. + + + + + (Optional; PDF 1.1) The document’s title. + + + + + (Optional) The name of the person who created the document. + + + + + (Optional; PDF 1.1) The subject of the document. + + + + + (Optional; PDF 1.1) Keywords associated with the document. + + + + + (Optional) If the document was converted to PDF from another format, + the name of the application (for example, empira MigraDoc) that created the + original document from which it was converted. + + + + + (Optional) If the document was converted to PDF from another format, + the name of the application (for example, this library) that converted it to PDF. + + + + + (Optional) The date and time the document was created, in human-readable form. + + + + + (Required if PieceInfo is present in the document catalog; otherwise optional; PDF 1.1) + The date and time the document was most recently modified, in human-readable form. + + + + + (Optional; PDF 1.3) A name object indicating whether the document has been modified + to include trapping information. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Holds information how to handle the document when it is saved as PDF stream. + + + + + Gets or sets the color mode. + + + + + Gets or sets a value indicating whether to compress content streams of PDF pages. + + + + + Gets or sets a value indicating that all objects are not compressed. + + + + + Gets or sets the flate encode mode. Besides the balanced default mode you can set modes for best compression (slower) or best speed (larger files). + + + + + Gets or sets a value indicating whether to compress bilevel images using CCITT compression. + With true, PDFsharp will try FlateDecode CCITT and will use the smallest one or a combination of both. + With false, PDFsharp will always use FlateDecode only - files may be a few bytes larger, but file creation is faster. + + + + + Gets or sets a value indicating whether to compress JPEG images with the FlateDecode filter. + + + + + Holds PDF specific information of the document. + + + + + Gets or sets the default trim margins. + + + + + Represents a direct integer value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The value. + + + + Gets the value as integer. + + + + + Returns the integer as string. + + + + + Writes the integer as string. + + + + + Returns TypeCode for 32-bit integers. + + + + + Represents an indirect integer value. This type is not used by PDFsharp. If it is imported from + an external PDF file, the value is converted into a direct object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the value as integer. + + + + + Returns the integer as string. + + + + + Writes the integer literal. + + + + + The base class of all PDF objects and simple PDF types. + + + + + Creates a copy of this object. + + + + + Implements the copy mechanism. Must be overridden in derived classes. + + + + + When overridden in a derived class, appends a raw string representation of this object + to the specified PdfWriter. + + + + + Represents text that is written 'as it is' into the PDF stream. This class can lead to invalid PDF files. + E.g. strings in a literal are not encrypted when the document is saved with a password. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance with the specified string. + + + + + Initializes a new instance with the culture invariant formatted specified arguments. + + + + + Creates a literal from an XMatrix + + + + + Gets the value as litaral string. + + + + + Returns a string that represents the current value. + + + + + Represents a PDF name value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + Parameter value always must start with a '/'. + + + + + Determines whether the specified object is equal to this name. + + + + + Returns the hash code for this instance. + + + + + Gets the name as a string. + + + + + Returns the name. The string always begins with a slash. + + + + + Determines whether the specified name and string are equal. + + + + + Determines whether the specified name and string are not equal. + + + + + Represents the empty name. + + + + + Writes the name including the leading slash. + + + + + Gets the comparer for this type. + + + + + Implements a comparer that compares PdfName objects. + + + + + Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. + + The first object to compare. + The second object to compare. + + + + Represents an indirect name value. This type is not used by PDFsharp. If it is imported from + an external PDF file, the value is converted into a direct object. Acrobat sometime uses indirect + names to save space, because an indirect reference to a name may be shorter than a long name. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + The value. + + + + Determines whether the specified object is equal to the current object. + + + + + Serves as a hash function for this type. + + + + + Gets or sets the name value. + + + + + Returns the name. The string always begins with a slash. + + + + + Determines whether a name is equal to a string. + + + + + Determines whether a name is not equal to a string. + + + + + Writes the name including the leading slash. + + + + + Represents a indirect reference that is not in the cross reference table. + + + + + Returns a that represents the current . + + + A that represents the current . + + + + + The only instance of this class. + + + + + Represents an indirect null value. This type is not used by PDFsharp, but at least + one tool from Adobe creates PDF files with a null object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + + + + Returns the string "null". + + + + + Writes the keyword «null». + + + + + Base class for direct number values (not yet used, maybe superfluous). + + + + + Base class for indirect number values (not yet used, maybe superfluous). + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + + + + Base class of all composite PDF objects. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance from an existing object. Used for object type transformation. + + + + + Creates a copy of this object. The clone does not belong to a document, i.e. its owner and its iref are null. + + + + + Implements the copy mechanism. Must be overridden in derived classes. + + + + + Sets the object and generation number. + Setting the object identifier makes this object an indirect object, i.e. the object gets + a PdfReference entry in the PdfReferenceTable. + + + + + Gets the PdfDocument this object belongs to. + + + + + Sets the PdfDocument this object belongs to. + + + + + Indicates whether the object is an indirect object. + + + + + Gets the PdfInternals object of this document, that grants access to some internal structures + which are not part of the public interface of PdfDocument. + + + + + When overridden in a derived class, prepares the object to get saved. + + + + + Saves the stream position. 2nd Edition. + + + + + Gets the object identifier. Returns PdfObjectID.Empty for direct objects, + i.e. never returns null. + + + + + Gets the object number. + + + + + Gets the generation number. + + + + The document that owns the cloned objects. + The root object to be cloned. + The clone of the root object + + + The imported object table of the owner for the external document. + The document that owns the cloned objects. + The root object to be cloned. + The clone of the root object + + + + Replace all indirect references to external objects by their cloned counterparts + owned by the importer document. + + + + + Ensure for future versions of PDFsharp not to forget code for a new kind of PdfItem. + + The item. + + + + Gets the indirect reference of this object. If the value is null, this object is a direct object. + + + + + Represents a PDF object identifier, a pair of object and generation number. + + + + + Initializes a new instance of the class. + + The object number. + + + + Initializes a new instance of the class. + + The object number. + The generation number. + + + + Gets or sets the object number. + + + + + Gets or sets the generation number. + + + + + Indicates whether this object is an empty object identifier. + + + + + Indicates whether this instance and a specified object are equal. + + + + + Returns the hash code for this instance. + + + + + Determines whether the two objects are equal. + + + + + Determines whether the tow objects not are equal. + + + + + Returns the object and generation numbers as a string. + + + + + Creates an empty object identifier. + + + + + Compares the current object id with another object. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Represents an outline item in the outlines tree. An 'outline' is also known as a 'bookmark'. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + + + + Initializes a new instance from an existing dictionary. Used for object type transformation. + + + + + Initializes a new instance of the class. + + The outline text. + The destination page. + Specifies whether the node is displayed expanded (opened) or collapsed. + The font style used to draw the outline text. + The color used to draw the outline text. + + + + Initializes a new instance of the class. + + The outline text. + The destination page. + Specifies whether the node is displayed expanded (opened) or collapsed. + The font style used to draw the outline text. + + + + Initializes a new instance of the class. + + The outline text. + The destination page. + Specifies whether the node is displayed expanded (opened) or collapsed. + + + + Initializes a new instance of the class. + + The outline text. + The destination page. + + + + The total number of open descendants at all lower levels. + + + + + Counts the open outline items. Not yet used. + + + + + Gets the parent of this outline item. The root item has no parent and returns null. + + + + + Gets or sets the title. + + + + + Gets or sets the destination page. + + + + + Gets or sets the left position of the page positioned at the left side of the window. + Applies only if PageDestinationType is Xyz, FitV, FitR, or FitBV. + + + + + Gets or sets the top position of the page positioned at the top side of the window. + Applies only if PageDestinationType is Xyz, FitH, FitR, ob FitBH. + + + + + Gets or sets the right position of the page positioned at the right side of the window. + Applies only if PageDestinationType is FitR. + + + + + Gets or sets the bottom position of the page positioned at the bottom side of the window. + Applies only if PageDestinationType is FitR. + + + + + Gets or sets the zoom faction of the page. + Applies only if PageDestinationType is Xyz. + + + + + Gets or sets whether the outline item is opened (or expanded). + + + + + Gets or sets the style of the outline text. + + + + + Gets or sets the type of the page destination. + + + + + Gets or sets the color of the text. + + The color of the text. + + + + Gets a value indicating whether this outline object has child items. + + + + + Gets the outline collection of this node. + + + + + Initializes this instance from an existing PDF document. + + + + + Creates key/values pairs according to the object structure. + + + + + Format double. + + + + + Format nullable double. + + + + + Predefined keys of this dictionary. + + + + + (Optional) The type of PDF object that this dictionary describes; if present, + must be Outlines for an outline dictionary. + + + + + (Required) The text to be displayed on the screen for this item. + + + + + (Required; must be an indirect reference) The parent of this item in the outline hierarchy. + The parent of a top-level item is the outline dictionary itself. + + + + + (Required for all but the first item at each level; must be an indirect reference) + The previous item at this outline level. + + + + + (Required for all but the last item at each level; must be an indirect reference) + The next item at this outline level. + + + + + (Required if the item has any descendants; must be an indirect reference) + The first of this item’s immediate children in the outline hierarchy. + + + + + (Required if the item has any descendants; must be an indirect reference) + The last of this item’s immediate children in the outline hierarchy. + + + + + (Required if the item has any descendants) If the item is open, the total number of its + open descendants at all lower levels of the outline hierarchy. If the item is closed, a + negative integer whose absolute value specifies how many descendants would appear if the + item were reopened. + + + + + (Optional; not permitted if an A entry is present) The destination to be displayed when this + item is activated. + + + + + (Optional; not permitted if a Dest entry is present) The action to be performed when + this item is activated. + + + + + (Optional; PDF 1.3; must be an indirect reference) The structure element to which the item + refers. + Note: The ability to associate an outline item with a structure element (such as the beginning + of a chapter) is a PDF 1.3 feature. For backward compatibility with earlier PDF versions, such + an item should also specify a destination (Dest) corresponding to an area of a page where the + contents of the designated structure element are displayed. + + + + + (Optional; PDF 1.4) An array of three numbers in the range 0.0 to 1.0, representing the + components in the DeviceRGB color space of the color to be used for the outline entry’s text. + Default value: [0.0 0.0 0.0]. + + + + + (Optional; PDF 1.4) A set of flags specifying style characteristics for displaying the outline + item’s text. Default value: 0. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a collection of outlines. + + + + + Can only be created as part of PdfOutline. + + + + + Indicates whether the outline collection has at least one entry. + + + + + Removes the first occurrence of a specific item from the collection. + + + + + Gets the number of entries in this collection. + + + + + Returns false. + + + + + Adds the specified outline. + + + + + Removes all elements form the collection. + + + + + Determines whether the specified element is in the collection. + + + + + Copies the collection to an array, starting at the specified index of the target array. + + + + + Adds the specified outline entry. + + The outline text. + The destination page. + Specifies whether the node is displayed expanded (opened) or collapsed. + The font style used to draw the outline text. + The color used to draw the outline text. + + + + Adds the specified outline entry. + + The outline text. + The destination page. + Specifies whether the node is displayed expanded (opened) or collapsed. + The font style used to draw the outline text. + + + + Adds the specified outline entry. + + The outline text. + The destination page. + Specifies whether the node is displayed expanded (opened) or collapsed. + + + + Creates a PdfOutline and adds it into the outline collection. + + + + + Gets the index of the specified item. + + + + + Inserts the item at the specified index. + + + + + Removes the outline item at the specified index. + + + + + Gets the at the specified index. + + + + + Returns an enumerator that iterates through the outline collection. + + + + + The parent outine of this collection. + + + + + Represents a page in a PDF document. + + + + + Initializes a new page. The page must be added to a document before it can be used. + Depending of the IsMetric property of the current region the page size is set to + A4 or Letter respectively. If this size is not appropriate it should be changed before + any drawing operations are performed on the page. + + + + + Initializes a new instance of the class. + + The document. + + + + Gets or sets a user defined object that contains arbitrary information associated with this PDF page. + The tag is not used by PDFsharp. + + + + + Closes the page. A closed page cannot be modified anymore and it is not possible to + get an XGraphics object for a closed page. Closing a page is not required, but may save + resources if the document has many pages. + + + + + Gets a value indicating whether the page is closed. + + + + + Gets or sets the PdfDocument this page belongs to. + + + + + Gets or sets the orientation of the page. The default value PageOrientation.Portrait. + If an imported page has a /Rotate value that matches the formula 90 + n * 180 the + orientation is set to PageOrientation.Landscape. + + + + + Gets or sets one of the predefined standard sizes like. + + + + + Gets or sets the trim margins. + + + + + Gets or sets the media box directly. XGrahics is not prepared to work with a media box + with an origin other than (0,0). + + + + + Gets or sets the crop box. + + + + + Gets or sets the bleed box. + + + + + Gets or sets the art box. + + + + + Gets or sets the trim box. + + + + + Gets or sets the height of the page. If orientation is Landscape, this function applies to + the width. + + + + + Gets or sets the width of the page. If orientation is Landscape, this function applies to + the height. + + + + + Gets or sets the /Rotate entry of the PDF page. The value is the number of degrees by which the page + should be rotated clockwise when displayed or printed. The value must be a multiple of 90. + PDFsharp does not set this value, but for imported pages this value can be set and must be taken + into account when adding graphic to such a page. + + + + + The content stream currently used by an XGraphics object for rendering. + + + + + Gets the array of content streams of the page. + + + + + Gets the annotations array of this page. + + + + + Gets the annotations array of this page. + + + + + Adds an intra document link. + + The rect. + The destination page. + + + + Adds a link to the Web. + + The rect. + The URL. + + + + Adds a link to a file. + + The rect. + Name of the file. + + + + Gets or sets the custom values. + + + + + Gets the PdfResources object of this page. + + + + + Implements the interface because the primary function is internal. + + + + + Gets the resource name of the specified font within this page. + + + + + Tries to get the resource name of the specified font data within this page. + Returns null if no such font exists. + + + + + Gets the resource name of the specified font data within this page. + + + + + Gets the resource name of the specified image within this page. + + + + + Implements the interface because the primary function is internal. + + + + + Gets the resource name of the specified form within this page. + + + + + Implements the interface because the primary function is internal. + + + + + Hack to indicate that a page-level transparency group must be created. + + + + + Inherit values from parent node. + + + + + Add all inheritable values from the specified page to the specified values structure. + + + + + Predefined keys of this dictionary. + + + + + (Required) The type of PDF object that this dictionary describes; + must be Page for a page object. + + + + + (Required; must be an indirect reference) + The page tree node that is the immediate parent of this page object. + + + + + (Required if PieceInfo is present; optional otherwise; PDF 1.3) The date and time + when the page’s contents were most recently modified. If a page-piece dictionary + (PieceInfo) is present, the modification date is used to ascertain which of the + application data dictionaries that it contains correspond to the current content + of the page. + + + + + (Optional; PDF 1.3) A rectangle, expressed in default user space units, defining the + region to which the contents of the page should be clipped when output in a production + environment. Default value: the value of CropBox. + + + + + (Optional; PDF 1.3) A rectangle, expressed in default user space units, defining the + intended dimensions of the finished page after trimming. Default value: the value of + CropBox. + + + + + (Optional; PDF 1.3) A rectangle, expressed in default user space units, defining the + extent of the page’s meaningful content (including potential white space) as intended + by the page’s creator. Default value: the value of CropBox. + + + + + (Optional; PDF 1.4) A box color information dictionary specifying the colors and other + visual characteristics to be used in displaying guidelines on the screen for the various + page boundaries. If this entry is absent, the application should use its own current + default settings. + + + + + (Optional) A content stream describing the contents of this page. If this entry is absent, + the page is empty. The value may be either a single stream or an array of streams. If the + value is an array, the effect is as if all of the streams in the array were concatenated, + in order, to form a single stream. This allows PDF producers to create image objects and + other resources as they occur, even though they interrupt the content stream. The division + between streams may occur only at the boundaries between lexical tokens but is unrelated + to the page’s logical content or organization. Applications that consume or produce PDF + files are not required to preserve the existing structure of the Contents array. + + + + + (Optional; PDF 1.4) A group attributes dictionary specifying the attributes of the page’s + page group for use in the transparent imaging model. + + + + + (Optional) A stream object defining the page’s thumbnail image. + + + + + (Optional; PDF 1.1; recommended if the page contains article beads) An array of indirect + references to article beads appearing on the page. The beads are listed in the array in + natural reading order. + + + + + (Optional; PDF 1.1) The page’s display duration (also called its advance timing): the + maximum length of time, in seconds, that the page is displayed during presentations before + the viewer application automatically advances to the next page. By default, the viewer does + not advance automatically. + + + + + (Optional; PDF 1.1) A transition dictionary describing the transition effect to be used + when displaying the page during presentations. + + + + + (Optional) An array of annotation dictionaries representing annotations associated with + the page. + + + + + (Optional; PDF 1.2) An additional-actions dictionary defining actions to be performed + when the page is opened or closed. + + + + + (Optional; PDF 1.4) A metadata stream containing metadata for the page. + + + + + (Optional; PDF 1.3) A page-piece dictionary associated with the page. + + + + + (Required if the page contains structural content items; PDF 1.3) + The integer key of the page’s entry in the structural parent tree. + + + + + (Optional; PDF 1.3; indirect reference preferred) The digital identifier of + the page’s parent Web Capture content set. + + + + + (Optional; PDF 1.3) The page’s preferred zoom (magnification) factor: the factor + by which it should be scaled to achieve the natural display magnification. + + + + + (Optional; PDF 1.3) A separation dictionary containing information needed + to generate color separations for the page. + + + + + (Optional; PDF 1.5) A name specifying the tab order to be used for annotations + on the page. The possible values are R (row order), C (column order), + and S (structure order). + + + + + (Required if this page was created from a named page object; PDF 1.5) + The name of the originating page object. + + + + + (Optional; PDF 1.5) A navigation node dictionary representing the first node + on the page. + + + + + (Optional; PDF 1.6) A positive number giving the size of default user space units, + in multiples of 1/72 inch. The range of supported values is implementation-dependent. + + + + + (Optional; PDF 1.6) An array of viewport dictionaries specifying rectangular regions + of the page. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Predefined keys common to PdfPage and PdfPages. + + + + + (Required; inheritable) A dictionary containing any resources required by the page. + If the page requires no resources, the value of this entry should be an empty dictionary. + Omitting the entry entirely indicates that the resources are to be inherited from an + ancestor node in the page tree. + + + + + (Required; inheritable) A rectangle, expressed in default user space units, defining the + boundaries of the physical medium on which the page is intended to be displayed or printed. + + + + + (Optional; inheritable) A rectangle, expressed in default user space units, defining the + visible region of default user space. When the page is displayed or printed, its contents + are to be clipped (cropped) to this rectangle and then imposed on the output medium in some + implementation defined manner. Default value: the value of MediaBox. + + + + + (Optional; inheritable) The number of degrees by which the page should be rotated clockwise + when displayed or printed. The value must be a multiple of 90. Default value: 0. + + + + + Values inherited from a parent in the parent chain of a page tree. + + + + + Represents the pages of the document. + + + + + Gets the number of pages. + + + + + Gets the page with the specified index. + + + + + Finds a page by its id. Transforms it to PdfPage if necessary. + + + + + Creates a new PdfPage, adds it to the end of this document, and returns it. + + + + + Adds the specified PdfPage to the end of this document and maybe returns a new PdfPage object. + The value returned is a new object if the added page comes from a foreign document. + + + + + Creates a new PdfPage, inserts it at the specified position into this document, and returns it. + + + + + Inserts the specified PdfPage at the specified position to this document and maybe returns a new PdfPage object. + The value returned is a new object if the inserted page comes from a foreign document. + + + + + Inserts pages of the specified document into this document. + + The index in this document where to insert the page . + The document to be inserted. + The index of the first page to be inserted. + The number of pages to be inserted. + + + + Inserts all pages of the specified document into this document. + + The index in this document where to insert the page . + The document to be inserted. + + + + Inserts all pages of the specified document into this document. + + The index in this document where to insert the page . + The document to be inserted. + The index of the first page to be inserted. + + + + Removes the specified page from the document. + + + + + Removes the specified page from the document. + + + + + Moves a page within the page sequence. + + The page index before this operation. + The page index after this operation. + + + + Imports an external page. The elements of the imported page are cloned and added to this document. + Important: In contrast to PdfFormXObject adding an external page always make a deep copy + of their transitive closure. Any reuse of already imported objects is not intended because + any modification of an imported page must not change another page. + + + + + Helper function for ImportExternalPage. + + + + + Gets a PdfArray containing all pages of this document. The array must not be modified. + + + + + Replaces the page tree by a flat array of indirect references to the pages objects. + + + + + Recursively converts the page tree into a flat array. + + + + + Prepares the document for saving. + + + + + Gets the enumerator. + + + + + Predefined keys of this dictionary. + + + + + (Required) The type of PDF object that this dictionary describes; + must be Pages for a page tree node. + + + + + (Required except in root node; must be an indirect reference) + The page tree node that is the immediate parent of this one. + + + + + (Required) An array of indirect references to the immediate children of this node. + The children may be page objects or other page tree nodes. + + + + + (Required) The number of leaf nodes (page objects) that are descendants of this node + within the page tree. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents a direct real value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The value. + + + + Gets the value as double. + + + + + Returns the real number as string. + + + + + Writes the real value with up to three digits. + + + + + Represents an indirect real value. This type is not used by PDFsharp. If it is imported from + an external PDF file, the value is converted into a direct object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The value. + + + + Initializes a new instance of the class. + + The document. + The value. + + + + Gets or sets the value. + + + + + Returns the real as a culture invariant string. + + + + + Writes the real literal. + + + + + Represents a PDF rectangle value, that is internally an array with 4 real values. + + + + + Initializes a new instance of the PdfRectangle class. + + + + + Initializes a new instance of the PdfRectangle class with two points specifying + two diagonally opposite corners. Notice that in contrast to GDI+ convention the + 3rd and the 4th parameter specify a point and not a width. This is so much confusing + that this function is for internal use only. + + + + + Initializes a new instance of the PdfRectangle class with two points specifying + two diagonally opposite corners. + + + + + Initializes a new instance of the PdfRectangle class with the specified location and size. + + + + + Initializes a new instance of the PdfRectangle class with the specified XRect. + + + + + Initializes a new instance of the PdfRectangle class with the specified PdfArray. + + + + + Clones this instance. + + + + + Implements cloning this instance. + + + + + Tests whether all coordinate are zero. + + + + + Tests whether the specified object is a PdfRectangle and has equal coordinates. + + + + + Serves as a hash function for a particular type. + + + + + Tests whether two structures have equal coordinates. + + + + + Tests whether two structures differ in one or more coordinates. + + + + + Gets or sets the x-coordinate of the first corner of this PdfRectangle. + + + + + Gets or sets the y-coordinate of the first corner of this PdfRectangle. + + + + + Gets or sets the x-coordinate of the second corner of this PdfRectangle. + + + + + Gets or sets the y-coordinate of the second corner of this PdfRectangle. + + + + + Gets X2 - X1. + + + + + Gets Y2 - Y1. + + + + + Gets or sets the coordinates of the first point of this PdfRectangle. + + + + + Gets or sets the size of this PdfRectangle. + + + + + Determines if the specified point is contained within this PdfRectangle. + + + + + Determines if the specified point is contained within this PdfRectangle. + + + + + Determines if the rectangular region represented by rect is entirely contained within this PdfRectangle. + + + + + Determines if the rectangular region represented by rect is entirely contained within this PdfRectangle. + + + + + Returns the rectangle as an XRect object. + + + + + Returns the rectangle as a string in the form «[x1 y1 x2 y2]». + + + + + Writes the rectangle. + + + + + Gets the DebuggerDisplayAttribute text. + + + + + Represents an empty PdfRectangle. + + + + + Represents the cross-reference table of a PDF document. + It contains all indirect objects of a document. + + + + + Represents the relation between PdfObjectID and PdfReference for a PdfDocument. + + + + + Adds a cross reference entry to the table. Used when parsing the trailer. + + + + + Adds a PdfObject to the table. + + + + + Gets a cross reference entry from an object identifier. + Returns null if no object with the specified ID exists in the object table. + + + + + Indicates whether the specified object identifier is in the table. + + + + + Returns the next free object number. + + + + + Writes the xref section in pdf stream. + + + + + Gets an array of all object identifier. For debugging purposes only. + + + + + Gets an array of all cross references in ascending order by their object identifier. + + + + + Removes all objects that cannot be reached from the trailer. + Returns the number of removed objects. + + + + + Renumbers the objects starting at 1. + + + + + Checks the logical consistence for debugging purposes (useful after reconstruction work). + + + + + Calculates the transitive closure of the specified PdfObject, i.e. all indirect objects + recursively reachable from the specified object. + + + + + Calculates the transitive closure of the specified PdfObject with the specified depth, i.e. all indirect objects + recursively reachable from the specified object in up to maximally depth steps. + + + + + Gets the cross reference to an objects used for undefined indirect references. + + + + + Determines the encoding of a PdfString or PdfStringObject. + + + + + The characters of the string are actually bytes with an unknown or context specific meaning or encoding. + With this encoding the 8 high bits of each character is zero. + + + + + Not yet used by PDFsharp. + + + + + The characters of the string are actually bytes with PDF document encoding. + With this encoding the 8 high bits of each character is zero. + + + + + The characters of the string are actually bytes with Windows ANSI encoding. + With this encoding the 8 high bits of each character is zero. + + + + + Not yet used by PDFsharp. + + + + + Not yet used by PDFsharp. + + + + + The characters of the string are Unicode characters. + + + + + Internal wrapper for PdfStringEncoding. + + + + + Represents a direct text string value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The value. + + + + Initializes a new instance of the class. + + The value. + The encoding. + + + + Gets the number of characters in this string. + + + + + Gets the encoding. + + + + + Gets a value indicating whether the string is a hexadecimal literal. + + + + + Gets the string value. + + + + + Gets or sets the string value for encryption purposes. + + + + + Returns the string. + + + + + Hack for document encoded bookmarks. + + + + + Writes the string DocEncoded. + + + + + Represents an indirect text string value. This type is not used by PDFsharp. If it is imported from + an external PDF file, the value is converted into a direct object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The document. + The value. + + + + Initializes a new instance of the class. + + The value. + The encoding. + + + + Gets the number of characters in this string. + + + + + Gets or sets the encoding. + + + + + Gets a value indicating whether the string is a hexadecimal literal. + + + + + Gets or sets the value as string + + + + + Gets or sets the string value for encryption purposes. + + + + + Returns the string. + + + + + Writes the string literal with encoding DOCEncoded. + + + + + Represents a direct unsigned integer value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the value as integer. + + + + + Returns the unsigned integer as string. + + + + + Writes the integer as string. + + + + + Converts the value of this instance to an equivalent 64-bit unsigned integer. + + + + + Converts the value of this instance to an equivalent 8-bit signed integer. + + + + + Converts the value of this instance to an equivalent double-precision floating-point number. + + + + + Returns an undefined DateTime structure. + + + + + Converts the value of this instance to an equivalent single-precision floating-point number. + + + + + Converts the value of this instance to an equivalent Boolean value. + + + + + Converts the value of this instance to an equivalent 32-bit signed integer. + + + + + Converts the value of this instance to an equivalent 16-bit unsigned integer. + + + + + Converts the value of this instance to an equivalent 16-bit signed integer. + + + + + Converts the value of this instance to an equivalent . + + + + + Converts the value of this instance to an equivalent 8-bit unsigned integer. + + + + + Converts the value of this instance to an equivalent Unicode character. + + + + + Converts the value of this instance to an equivalent 64-bit signed integer. + + + + + Returns type code for 32-bit integers. + + + + + Converts the value of this instance to an equivalent number. + + + + + Returns null. + + + + + Converts the value of this instance to an equivalent 32-bit unsigned integer. + + + + + Represents an indirect integer value. This type is not used by PDFsharp. If it is imported from + an external PDF file, the value is converted into a direct object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The value. + + + + Initializes a new instance of the class. + + The document. + The value. + + + + Gets the value as unsigned integer. + + + + + Returns the integer as string. + + + + + Writes the integer literal. + + + + + Represents the PDF document viewer preferences dictionary. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to hide the viewer application’s tool + bars when the document is active. + + + + + Gets or sets a value indicating whether to hide the viewer application’s + menu bar when the document is active. + + + + + Gets or sets a value indicating whether to hide user interface elements in + the document’s window (such as scroll bars and navigation controls), + leaving only the document’s contents displayed. + + + + + Gets or sets a value indicating whether to resize the document’s window to + fit the size of the first displayed page. + + + + + Gets or sets a value indicating whether to position the document’s window + in the center of the screen. + + + + + Gets or sets a value indicating whether the window’s title bar + should display the document title taken from the Title entry of the document + information dictionary. If false, the title bar should instead display the name + of the PDF file containing the document. + + + + + The predominant reading order for text: LeftToRight or RightToLeft + (including vertical writing systems, such as Chinese, Japanese, and Korean). + This entry has no direct effect on the document’s contents or page numbering + but can be used to determine the relative positioning of pages when displayed + side by side or printed n-up. Default value: LeftToRight. + + + + + Predefined keys of this dictionary. + + + + + (Optional) A flag specifying whether to hide the viewer application’s tool + bars when the document is active. Default value: false. + + + + + (Optional) A flag specifying whether to hide the viewer application’s + menu bar when the document is active. Default value: false. + + + + + (Optional) A flag specifying whether to hide user interface elements in + the document’s window (such as scroll bars and navigation controls), + leaving only the document’s contents displayed. Default value: false. + + + + + (Optional) A flag specifying whether to resize the document’s window to + fit the size of the first displayed page. Default value: false. + + + + + (Optional) A flag specifying whether to position the document’s window + in the center of the screen. Default value: false. + + + + + (Optional; PDF 1.4) A flag specifying whether the window’s title bar + should display the document title taken from the Title entry of the document + information dictionary. If false, the title bar should instead display the name + of the PDF file containing the document. Default value: false. + + + + + (Optional) The document’s page mode, specifying how to display the document on + exiting full-screen mode: + UseNone Neither document outline nor thumbnail images visible + UseOutlines Document outline visible + UseThumbs Thumbnail images visible + UseOC Optional content group panel visible + This entry is meaningful only if the value of the PageMode entry in the catalog + dictionary is FullScreen; it is ignored otherwise. Default value: UseNone. + + + + + (Optional; PDF 1.3) The predominant reading order for text: + L2R Left to right + R2L Right to left (including vertical writing systems, such as Chinese, Japanese, and Korean) + This entry has no direct effect on the document’s contents or page numbering + but can be used to determine the relative positioning of pages when displayed + side by side or printed n-up. Default value: L2R. + + + + + (Optional; PDF 1.4) The name of the page boundary representing the area of a page + to be displayed when viewing the document on the screen. The value is the key + designating the relevant page boundary in the page object. If the specified page + boundary is not defined in the page object, its default value is used. + Default value: CropBox. + Note: This entry is intended primarily for use by prepress applications that + interpret or manipulate the page boundaries as described in Section 10.10.1, “Page Boundaries.” + Most PDF consumer applications disregard it. + + + + + (Optional; PDF 1.4) The name of the page boundary to which the contents of a page + are to be clipped when viewing the document on the screen. The value is the key + designating the relevant page boundary in the page object. If the specified page + boundary is not defined in the page object, its default value is used. + Default value: CropBox. + Note: This entry is intended primarily for use by prepress applications that + interpret or manipulate the page boundaries as described in Section 10.10.1, “Page Boundaries.” + Most PDF consumer applications disregard it. + + + + + (Optional; PDF 1.4) The name of the page boundary representing the area of a page + to be rendered when printing the document. The value is the key designating the + relevant page boundary in the page object. If the specified page boundary is not + defined in the page object, its default value is used. + Default value: CropBox. + Note: This entry is intended primarily for use by prepress applications that + interpret or manipulate the page boundaries as described in Section 10.10.1, “Page Boundaries.” + Most PDF consumer applications disregard it. + + + + + (Optional; PDF 1.4) The name of the page boundary to which the contents of a page + are to be clipped when printing the document. The value is the key designating the + relevant page boundary in the page object. If the specified page boundary is not + defined in the page object, its default value is used. + Default value: CropBox. + Note: This entry is intended primarily for use by prepress applications that interpret + or manipulate the page boundaries. Most PDF consumer applications disregard it. + + + + + (Optional; PDF 1.6) The page scaling option to be selected when a print dialog is + displayed for this document. Valid values are None, which indicates that the print + dialog should reflect no page scaling, and AppDefault, which indicates that + applications should use the current print scaling. If this entry has an unrecognized + value, applications should use the current print scaling. + Default value: AppDefault. + Note: If the print dialog is suppressed and its parameters are provided directly + by the application, the value of this entry should still be used. + + + + + Gets the KeysMeta for these keys. + + + + + Gets the KeysMeta of this dictionary type. + + + + + Represents trim margins added to the page. + + + + + Sets all four crop margins simultaneously. + + + + + Gets or sets the left crop margin. + + + + + Gets or sets the right crop margin. + + + + + Gets or sets the top crop margin. + + + + + Gets or sets the bottom crop margin. + + + + + Gets a value indicating whether this instance has at least one margin with a value other than zero. + + + + + Base namespace of PDFsharp. Most classes are implemented in nested namespaces like e. g. PdfSharp.Pdf. + + + + + + Specifies the orientation of a page. + + + + + The default page orientation. + + + + + The width and height of the page are reversed. + + + + + Identifies the most popular predefined page sizes. + + + + + The width or height of the page are set manually and override the PageSize property. + + + + + Identifies a paper sheet size of 841 mm times 1189 mm or 33.11 inch times 46.81 inch. + + + + + Identifies a paper sheet size of 594 mm times 841 mm or 23.39 inch times 33.1 inch. + + + + + Identifies a paper sheet size of 420 mm times 594 mm or 16.54 inch times 23.29 inch. + + + + + Identifies a paper sheet size of 297 mm times 420 mm or 11.69 inch times 16.54 inch. + + + + + Identifies a paper sheet size of 210 mm times 297 mm or 8.27 inch times 11.69 inch. + + + + + Identifies a paper sheet size of 148 mm times 210 mm or 5.83 inch times 8.27 inch. + + + + + Identifies a paper sheet size of 860 mm times 1220 mm. + + + + + Identifies a paper sheet size of 610 mm times 860 mm. + + + + + Identifies a paper sheet size of 430 mm times 610 mm. + + + + + Identifies a paper sheet size of 305 mm times 430 mm. + + + + + Identifies a paper sheet size of 215 mm times 305 mm. + + + + + Identifies a paper sheet size of 153 mm times 215 mm. + + + + + Identifies a paper sheet size of 1000 mm times 1414 mm or 39.37 inch times 55.67 inch. + + + + + Identifies a paper sheet size of 707 mm times 1000 mm or 27.83 inch times 39.37 inch. + + + + + Identifies a paper sheet size of 500 mm times 707 mm or 19.68 inch times 27.83 inch. + + + + + Identifies a paper sheet size of 353 mm times 500 mm or 13.90 inch times 19.68 inch. + + + + + Identifies a paper sheet size of 250 mm times 353 mm or 9.84 inch times 13.90 inch. + + + + + Identifies a paper sheet size of 176 mm times 250 mm or 6.93 inch times 9.84 inch. + + + + + Identifies a paper sheet size of 10 inch times 8 inch or 254 mm times 203 mm. + + + + + Identifies a paper sheet size of 13 inch times 8 inch or 330 mm times 203 mm. + + + + + Identifies a paper sheet size of 10.5 inch times 7.25 inch or 267 mm times 184 mm. + + + + + Identifies a paper sheet size of 10.5 inch times 8 inch 267 mm times 203 mm. + + + + + Identifies a paper sheet size of 11 inch times 8.5 inch 279 mm times 216 mm. + + + + + Identifies a paper sheet size of 14 inch times 8.5 inch 356 mm times 216 mm. + + + + + Identifies a paper sheet size of 17 inch times 11 inch or 432 mm times 279 mm. + + + + + Identifies a paper sheet size of 17 inch times 11 inch or 432 mm times 279 mm. + + + + + Identifies a paper sheet size of 19.25 inch times 15.5 inch 489 mm times 394 mm. + + + + + 20 ×Identifies a paper sheet size of 20 inch times 15 inch or 508 mm times 381 mm. + + + + + Identifies a paper sheet size of 21 inch times 16.5 inch 533 mm times 419 mm. + + + + + Identifies a paper sheet size of 22.5 inch times 17.5 inch 572 mm times 445 mm. + + + + + Identifies a paper sheet size of 23 inch times 18 inch or 584 mm times 457 mm. + + + + + Identifies a paper sheet size of 25 inch times 20 inch or 635 mm times 508 mm. + + + + + Identifies a paper sheet size of 28 inch times 23 inch or 711 mm times 584 mm. + + + + + Identifies a paper sheet size of 35 inch times 23.5 inch or 889 mm times 597 mm. + + + + + Identifies a paper sheet size of 45 inch times 35 inch 1143 times 889 mm. + + + + + Identifies a paper sheet size of 8.5 inch times 5.5 inch or 216 mm times 396 mm. + + + + + Identifies a paper sheet size of 8.5 inch times 13 inch or 216 mm times 330 mm. + + + + + Identifies a paper sheet size of 5.5 inch times 8.5 inch or 396 mm times 216 mm. + + + + + Identifies a paper sheet size of 10 inch times 14 inch. + + + + + Represents IDs for error and diagnostic messages generated by PDFsharp. + + + + + PSMsgID. + + + + + PSMsgID. + + + + + PSMsgID. + + + + + PSMsgID. + + + + + PSMsgID. + + + + + PSMsgID. + + + + + Converter from to . + + + + + Converts the specified page size enumeration to a pair of values in point. + + + + + Base class of all exceptions in the PDFsharp frame work. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + Initializes a new instance of the class. + + The exception message. + The inner exception. + + + + Version info base for all PDFsharp related assemblies. + + + + + The title of the product. + + + + + A characteristic description of the product. + + + + + The PDF producer information string. + TODO: Called Creator in MigraDoc??? + + + + + The PDF producer information string including VersionPatch. + + + + + The full version number. + + + + + The full version string. + + + + + The home page of this product. + + + + + Unused. + + + + + The company that created/owned the product. + + + + + The name the product. + + + + + The copyright information. + + + + + The trademark the product. + + + + + Unused. + + + + + The major version number of the product. + + + + + The minor version number of the product. + + + + + The build number of the product. + + + + + The patch number of the product. + + + + + The Version Prerelease String for NuGet. + + + + + E.g. "2005-01-01", for use in NuGet Script. + + + + + Use _ instead of blanks and special characters. Can be complemented with a suffix in the NuGet Script. + Nuspec Doc: The unique identifier for the package. This is the package name that is shown when packages + are listed using the Package Manager Console. These are also used when installing a package using the + Install-Package command within the Package Manager Console. Package IDs may not contain any spaces + or characters that are invalid in an URL. In general, they follow the same rules as .NET namespaces do. + So Foo.Bar is a valid ID, Foo! and Foo Bar are not. + + + + + Nuspec Doc: The human-friendly title of the package displayed in the Manage NuGet Packages dialog. + If none is specified, the ID is used instead. + + + + + Nuspec Doc: A comma-separated list of authors of the package code. + + + + + Nuspec Doc: A comma-separated list of the package creators. This is often the same list as in authors. + This is ignored when uploading the package to the NuGet.org Gallery. + + + + + Nuspec Doc: A long description of the package. This shows up in the right pane of the Add Package Dialog + as well as in the Package Manager Console when listing packages using the Get-Package command. + + + + + Nuspec Doc: A description of the changes made in each release of the package. This field only shows up + when the _Updates_ tab is selected and the package is an update to a previously installed package. + It is displayed where the Description would normally be displayed. + + + + + Nuspec Doc: A short description of the package. If specified, this shows up in the middle pane of the + Add Package Dialog. If not specified, a truncated version of the description is used instead. + + + + + Nuspec Doc: The locale ID for the package, such as en-us. + + + + + Nuspec Doc: A URL for the home page of the package. + + + http://www.pdfsharp.net/NuGetPackage_PDFsharp-GDI.ashx + http://www.pdfsharp.net/NuGetPackage_PDFsharp-WPF.ashx + + + + + Nuspec Doc: A URL for the image to use as the icon for the package in the Manage NuGet Packages + dialog box. This should be a 32x32-pixel .png file that has a transparent background. + + + + + Nuspec Doc: A link to the license that the package is under. + + + + + Nuspec Doc: A Boolean value that specifies whether the client needs to ensure that the package license (described by licenseUrl) is accepted before the package is installed. + + + + + Nuspec Doc: A space-delimited list of tags and keywords that describe the package. This information is used to help make sure users can find the package using + searches in the Add Package Reference dialog box or filtering in the Package Manager Console window. + + + + + The technology tag of the product: + (none) Pure .NET + -gdi : GDI+, + -wpf : WPF, + -hybrid : Both GDI+ and WPF (hybrid). + -sl : Silverlight + -wp : Windows Phone + -wrt : Windows RunTime + + + + + The Pdf-Sharp-String-Resources. + + + + + Loads the message from the resource associated with the enum type and formats it + using 'String.Format'. Because this function is intended to be used during error + handling it never raises an exception. + + The type of the parameter identifies the resource + and the name of the enum identifies the message in the resource. + Parameters passed through 'String.Format'. + The formatted message. + + + + Gets the localized message identified by the specified DomMsgID. + + + + + Gets the resource manager for this module. + + + + + Writes all messages defined by PSMsgID. + + + + + Version info of this assembly. + + + + + Computes Adler32 checksum for a stream of data. An Adler32 + checksum is not as reliable as a CRC32 checksum, but a lot faster to + compute. + + The specification for Adler32 may be found in RFC 1950. + ZLIB Compressed Data Format Specification version 3.3) + + + From that document: + + "ADLER32 (Adler-32 checksum) + This contains a checksum value of the uncompressed data + (excluding any dictionary data) computed according to Adler-32 + algorithm. This algorithm is a 32-bit extension and improvement + of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073 + standard. + + Adler-32 is composed of two sums accumulated per byte: s1 is + the sum of all bytes, s2 is the sum of all s1 values. Both sums + are done modulo 65521. s1 is initialized to 1, s2 to zero. The + Adler-32 checksum is stored as s2*65536 + s1 in most- + significant-byte first (network) order." + + "8.2. The Adler-32 algorithm + + The Adler-32 algorithm is much faster than the CRC32 algorithm yet + still provides an extremely low probability of undetected errors. + + The modulo on unsigned long accumulators can be delayed for 5552 + bytes, so the modulo operation time is negligible. If the bytes + are a, b, c, the second sum is 3a + 2b + c + 3, and so is position + and order sensitive, unlike the first sum, which is just a + checksum. That 65521 is prime is important to avoid a possible + large class of two-byte errors that leave the check unchanged. + (The Fletcher checksum uses 255, which is not prime and which also + makes the Fletcher check insensitive to single byte changes 0 - + 255.) + + The sum s1 is initialized to 1 instead of zero to make the length + of the sequence part of s2, so that the length does not have to be + checked separately. (Any sequence of zeroes has a Fletcher + checksum of zero.)" + + + + + + + largest prime smaller than 65536 + + + + + Returns the Adler32 data checksum computed so far. + + + + + Creates a new instance of the Adler32 class. + The checksum starts off with a value of 1. + + + + + Resets the Adler32 checksum to the initial value. + + + + + Updates the checksum with a byte value. + + + The data value to add. The high byte of the int is ignored. + + + + + Updates the checksum with an array of bytes. + + + The source of the data to update with. + + + + + Updates the checksum with the bytes taken from the array. + + + an array of bytes + + + the start of the data used for this update + + + the number of bytes to use for this update + + + + + Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: + x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. + + Polynomials over GF(2) are represented in binary, one bit per coefficient, + with the lowest powers in the most significant bit. Then adding polynomials + is just exclusive-or, and multiplying a polynomial by x is a right shift by + one. If we call the above polynomial p, and represent a byte as the + polynomial q, also with the lowest power in the most significant bit (so the + byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + where a mod b means the remainder after dividing a by b. + + This calculation is done using the shift-register method of multiplying and + taking the remainder. The register is initialized to zero, and for each + incoming bit, x^32 is added mod p to the register if the bit is a one (where + x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + x (which is shifting right by one and adding x^32 mod p if the bit shifted + out is a one). We start with the highest power (least significant bit) of + q and repeat for all eight bits of q. + + The table is simply the CRC of all possible eight bit values. This is all + the information needed to generate CRC's on data a byte at a time for all + combinations of CRC register values and incoming bytes. + + + + + The crc data checksum so far. + + + + + Returns the CRC32 data checksum computed so far. + + + + + Resets the CRC32 data checksum as if no update was ever called. + + + + + Updates the checksum with the int bval. + + + the byte is taken as the lower 8 bits of value + + + + + Updates the checksum with the bytes taken from the array. + + + buffer an array of bytes + + + + + Adds the byte array to the data checksum. + + + The buffer which contains the data + + + The offset in the buffer where the data starts + + + The number of data bytes to update the CRC with. + + + + + Interface to compute a data checksum used by checked input/output streams. + A data checksum can be updated by one byte or with a byte array. After each + update the value of the current checksum can be returned by calling + getValue. The complete checksum object can also be reset + so it can be used again with new data. + + + + + Returns the data checksum computed so far. + + + + + Resets the data checksum as if no update was ever called. + + + + + Adds one byte to the data checksum. + + + the data value to add. The high byte of the int is ignored. + + + + + Updates the data checksum with the bytes taken from the array. + + + buffer an array of bytes + + + + + Adds the byte array to the data checksum. + + + The buffer which contains the data + + + The offset in the buffer where the data starts + + + the number of data bytes to add. + + + + + SharpZipBaseException is the base exception class for the SharpZipLibrary. + All library exceptions are derived from this. + + NOTE: Not all exceptions thrown will be derived from this class. + A variety of other exceptions are possible for example + + + + Initializes a new instance of the SharpZipBaseException class. + + + + + Initializes a new instance of the SharpZipBaseException class with a specified error message. + + A message describing the exception. + + + + Initializes a new instance of the SharpZipBaseException class with a specified + error message and a reference to the inner exception that is the cause of this exception. + + A message describing the exception. + The inner exception + + + + This is the Deflater class. The deflater class compresses input + with the deflate algorithm described in RFC 1951. It has several + compression levels and three different strategies described below. + + This class is not thread safe. This is inherent in the API, due + to the split of deflate and setInput. + + Author of the original java version: Jochen Hoenicke + + + + + The best and slowest compression level. This tries to find very + long and distant string repetitions. + + + + + The worst but fastest compression level. + + + + + The default compression level. + + + + + This level won't compress at all but output uncompressed blocks. + + + + + The compression method. This is the only method supported so far. + There is no need to use this constant at all. + + + + + Creates a new deflater with default compression level. + + + + + Creates a new deflater with given compression level. + + + the compression level, a value between NO_COMPRESSION + and BEST_COMPRESSION, or DEFAULT_COMPRESSION. + + if lvl is out of range. + + + + Creates a new deflater with given compression level. + + + the compression level, a value between NO_COMPRESSION + and BEST_COMPRESSION. + + + true, if we should suppress the Zlib/RFC1950 header at the + beginning and the adler checksum at the end of the output. This is + useful for the GZIP/PKZIP formats. + + if lvl is out of range. + + + + Resets the deflater. The deflater acts afterwards as if it was + just created with the same compression level and strategy as it + had before. + + + + + Gets the current adler checksum of the data that was processed so far. + + + + + Gets the number of input bytes processed so far. + + + + + Gets the number of output bytes so far. + + + + + Flushes the current input block. Further calls to deflate() will + produce enough output to inflate everything in the current input + block. This is not part of Sun's JDK so I have made it package + private. It is used by DeflaterOutputStream to implement + flush(). + + + + + Finishes the deflater with the current input block. It is an error + to give more input after this method was called. This method must + be called to force all bytes to be flushed. + + + + + Returns true if the stream was finished and no more output bytes + are available. + + + + + Returns true, if the input buffer is empty. + You should then call setInput(). + NOTE: This method can also return true when the stream + was finished. + + + + + Sets the data which should be compressed next. This should be only + called when needsInput indicates that more input is needed. + If you call setInput when needsInput() returns false, the + previous input that is still pending will be thrown away. + The given byte array should not be changed, before needsInput() returns + true again. + This call is equivalent to setInput(input, 0, input.length). + + + the buffer containing the input data. + + + if the buffer was finished() or ended(). + + + + + Sets the data which should be compressed next. This should be + only called when needsInput indicates that more input is needed. + The given byte array should not be changed, before needsInput() returns + true again. + + + the buffer containing the input data. + + + the start of the data. + + + the number of data bytes of input. + + + if the buffer was Finish()ed or if previous input is still pending. + + + + + Sets the compression level. There is no guarantee of the exact + position of the change, but if you call this when needsInput is + true the change of compression level will occur somewhere near + before the end of the so far given input. + + + the new compression level. + + + + + Get current compression level + + Returns the current compression level + + + + Sets the compression strategy. Strategy is one of + DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact + position where the strategy is changed, the same as for + SetLevel() applies. + + + The new compression strategy. + + + + + Deflates the current input block with to the given array. + + + The buffer where compressed data is stored + + + The number of compressed bytes added to the output, or 0 if either + IsNeedingInput() or IsFinished returns true or length is zero. + + + + + Deflates the current input block to the given array. + + + Buffer to store the compressed data. + + + Offset into the output array. + + + The maximum number of bytes that may be stored. + + + The number of compressed bytes added to the output, or 0 if either + needsInput() or finished() returns true or length is zero. + + + If Finish() was previously called. + + + If offset or length don't match the array length. + + + + + Sets the dictionary which should be used in the deflate process. + This call is equivalent to setDictionary(dict, 0, dict.Length). + + + the dictionary. + + + if SetInput () or Deflate () were already called or another dictionary was already set. + + + + + Sets the dictionary which should be used in the deflate process. + The dictionary is a byte array containing strings that are + likely to occur in the data which should be compressed. The + dictionary is not stored in the compressed output, only a + checksum. To decompress the output you need to supply the same + dictionary again. + + + The dictionary data + + + The index where dictionary information commences. + + + The number of bytes in the dictionary. + + + If SetInput () or Deflate() were already called or another dictionary was already set. + + + + + Compression level. + + + + + If true no Zlib/RFC1950 headers or footers are generated + + + + + The current state. + + + + + The total bytes of output written. + + + + + The pending output. + + + + + The deflater engine. + + + + + This class contains constants used for deflation. + + + + + Set to true to enable debugging + + + + + Written to Zip file to identify a stored block + + + + + Identifies static tree in Zip file + + + + + Identifies dynamic tree in Zip file + + + + + Header flag indicating a preset dictionary for deflation + + + + + Sets internal buffer sizes for Huffman encoding + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Strategies for deflater + + + + + The default strategy + + + + + This strategy will only allow longer string repetitions. It is + useful for random data with a small character set. + + + + + This strategy will not look for string repetitions at all. It + only encodes with Huffman trees (which means, that more common + characters get a smaller encoding. + + + + + Low level compression engine for deflate algorithm which uses a 32K sliding window + with secondary compression from Huffman/Shannon-Fano codes. + + + + + Construct instance with pending buffer + + + Pending buffer to use + > + + + + Deflate drives actual compression of data + + True to flush input buffers + Finish deflation with the current input. + Returns true if progress has been made. + + + + Sets input data to be deflated. Should only be called when NeedsInput() + returns true + + The buffer containing input data. + The offset of the first byte of data. + The number of bytes of data to use as input. + + + + Determines if more input is needed. + + Return true if input is needed via SetInput + + + + Set compression dictionary + + The buffer containing the dictionary data + The offset in the buffer for the first byte of data + The length of the dictionary data. + + + + Reset internal state + + + + + Reset Adler checksum + + + + + Get current value of Adler checksum + + + + + Total data processed + + + + + Get/set the deflate strategy + + + + + Set the deflate level (0-9) + + The value to set the level to. + + + + Fill the window + + + + + Inserts the current string in the head hash and returns the previous + value for this hash. + + The previous hash value + + + + Find the best (longest) string in the window matching the + string starting at strstart. + + Preconditions: + + strstart + MAX_MATCH <= window.length. + + + True if a match greater than the minimum length is found + + + + Hashtable, hashing three characters to an index for window, so + that window[index]..window[index+2] have this hash code. + Note that the array should really be unsigned short, so you need + to and the values with 0xffff. + + + + + prev[index & WMASK] points to the previous index that has the + same hash code as the string starting at index. This way + entries with the same hash code are in a linked list. + Note that the array should really be unsigned short, so you need + to and the values with 0xffff. + + + + + Points to the current character in the window. + + + + + lookahead is the number of characters starting at strstart in + window that are valid. + So window[strstart] until window[strstart+lookahead-1] are valid + characters. + + + + + This array contains the part of the uncompressed stream that + is of relevance. The current character is indexed by strstart. + + + + + The current compression function. + + + + + The input data for compression. + + + + + The total bytes of input read. + + + + + The offset into inputBuf, where input data starts. + + + + + The end offset of the input data. + + + + + The adler checksum + + + + + This is the DeflaterHuffman class. + + This class is not thread safe. This is inherent in the API, due + to the split of Deflate and SetInput. + + author of the original java version : Jochen Hoenicke + + + + + Resets the internal state of the tree + + + + + Check that all frequencies are zero + + + At least one frequency is non-zero + + + + + Set static codes and length + + new codes + length for new codes + + + + Build dynamic codes and lengths + + + + + Get encoded length + + Encoded length, the sum of frequencies * lengths + + + + Scan a literal or distance tree to determine the frequencies of the codes + in the bit length tree. + + + + + Write tree values + + Tree to write + + + + Pending buffer to use + + + + + Construct instance with pending buffer + + Pending buffer to use + + + + Reset internal state + + + + + Write all trees to pending buffer + + The number/rank of treecodes to send. + + + + Compress current buffer writing data to pending buffer + + + + + Flush block to output with no compression + + Data to write + Index of first byte to write + Count of bytes to write + True if this is the last block + + + + Flush block to output with compression + + Data to flush + Index of first byte to flush + Count of bytes to flush + True if this is the last block + + + + Get value indicating if internal buffer is full + + true if buffer is full + + + + Add literal to buffer + + Literal value to add to buffer. + Value indicating internal buffer is full + + + + Add distance code and length to literal and distance trees + + Distance code + Length + Value indicating if internal buffer is full + + + + Reverse the bits of a 16 bit value. + + Value to reverse bits + Value with bits reversed + + + + This class stores the pending output of the Deflater. + + Author of the original java version: Jochen Hoenicke + + + + + Construct instance with default buffer size + + + + + Inflater is used to decompress data that has been compressed according + to the "deflate" standard described in rfc1951. + + By default Zlib (rfc1950) headers and footers are expected in the input. + You can use constructor public Inflater(bool noHeader) passing true + if there is no Zlib header information + + The usage is as following. First you have to set some input with + SetInput(), then Inflate() it. If inflate doesn't + inflate any bytes there may be three reasons: +
    +
  • IsNeedingInput() returns true because the input buffer is empty. + You have to provide more input with SetInput(). + NOTE: IsNeedingInput() also returns true when, the stream is finished. +
  • +
  • IsNeedingDictionary() returns true, you have to provide a preset + dictionary with SetDictionary().
  • +
  • IsFinished returns true, the inflater has finished.
  • +
+ Once the first output byte is produced, a dictionary will not be + needed at a later stage. + + Author of the original java version: John Leuner, Jochen Hoenicke +
+
+ + + Copy lengths for literal codes 257..285 + + + + + Extra bits for literal codes 257..285 + + + + + Copy offsets for distance codes 0..29 + + + + + Extra bits for distance codes + + + + + These are the possible states for an inflater + + + + + This variable contains the current state. + + + + + The adler checksum of the dictionary or of the decompressed + stream, as it is written in the header resp. footer of the + compressed stream. + Only valid if mode is DECODE_DICT or DECODE_CHKSUM. + + + + + The number of bits needed to complete the current state. This + is valid, if mode is DECODE_DICT, DECODE_CHKSUM, + DECODE_HUFFMAN_LENBITS or DECODE_HUFFMAN_DISTBITS. + + + + + True, if the last block flag was set in the last block of the + inflated stream. This means that the stream ends after the + current block. + + + + + The total number of inflated bytes. + + + + + The total number of bytes set with setInput(). This is not the + value returned by the TotalIn property, since this also includes the + unprocessed input. + + + + + This variable stores the noHeader flag that was given to the constructor. + True means, that the inflated stream doesn't contain a Zlib header or + footer. + + + + + Creates a new inflater or RFC1951 decompressor + RFC1950/Zlib headers and footers will be expected in the input data + + + + + Creates a new inflater. + + + True if no RFC1950/Zlib header and footer fields are expected in the input data + + This is used for GZIPed/Zipped input. + + For compatibility with + Sun JDK you should provide one byte of input more than needed in + this case. + + + + + Resets the inflater so that a new stream can be decompressed. All + pending input and output will be discarded. + + + + + Decodes a zlib/RFC1950 header. + + + False if more input is needed. + + + The header is invalid. + + + + + Decodes the dictionary checksum after the deflate header. + + + False if more input is needed. + + + + + Decodes the huffman encoded symbols in the input stream. + + + false if more input is needed, true if output window is + full or the current block ends. + + + if deflated stream is invalid. + + + + + Decodes the adler checksum after the deflate stream. + + + false if more input is needed. + + + If checksum doesn't match. + + + + + Decodes the deflated stream. + + + false if more input is needed, or if finished. + + + if deflated stream is invalid. + + + + + Sets the preset dictionary. This should only be called, if + needsDictionary() returns true and it should set the same + dictionary, that was used for deflating. The getAdler() + function returns the checksum of the dictionary needed. + + + The dictionary. + + + + + Sets the preset dictionary. This should only be called, if + needsDictionary() returns true and it should set the same + dictionary, that was used for deflating. The getAdler() + function returns the checksum of the dictionary needed. + + + The dictionary. + + + The index into buffer where the dictionary starts. + + + The number of bytes in the dictionary. + + + No dictionary is needed. + + + The adler checksum for the buffer is invalid + + + + + Sets the input. This should only be called, if needsInput() + returns true. + + + the input. + + + + + Sets the input. This should only be called, if needsInput() + returns true. + + + The source of input data + + + The index into buffer where the input starts. + + + The number of bytes of input to use. + + + No input is needed. + + + The index and/or count are wrong. + + + + + Inflates the compressed stream to the output buffer. If this + returns 0, you should check, whether IsNeedingDictionary(), + IsNeedingInput() or IsFinished() returns true, to determine why no + further output is produced. + + + the output buffer. + + + The number of bytes written to the buffer, 0 if no further + output can be produced. + + + if buffer has length 0. + + + if deflated stream is invalid. + + + + + Inflates the compressed stream to the output buffer. If this + returns 0, you should check, whether needsDictionary(), + needsInput() or finished() returns true, to determine why no + further output is produced. + + + the output buffer. + + + the offset in buffer where storing starts. + + + the maximum number of bytes to output. + + + the number of bytes written to the buffer, 0 if no further output can be produced. + + + if count is less than 0. + + + if the index and / or count are wrong. + + + if deflated stream is invalid. + + + + + Returns true, if the input buffer is empty. + You should then call setInput(). + NOTE: This method also returns true when the stream is finished. + + + + + Returns true, if a preset dictionary is needed to inflate the input. + + + + + Returns true, if the inflater has finished. This means, that no + input is needed and no output can be produced. + + + + + Gets the adler checksum. This is either the checksum of all + uncompressed bytes returned by inflate(), or if needsDictionary() + returns true (and thus no output was yet produced) this is the + adler checksum of the expected dictionary. + + + the adler checksum. + + + + + Gets the total number of output bytes returned by Inflate(). + + + the total number of output bytes. + + + + + Gets the total number of processed compressed input bytes. + + + The total number of bytes of processed input bytes. + + + + + Gets the number of unprocessed input bytes. Useful, if the end of the + stream is reached and you want to further process the bytes after + the deflate stream. + + + The number of bytes of the input which have not been processed. + + + + + Huffman tree used for inflation + + + + + Literal length tree + + + + + Distance tree + + + + + Constructs a Huffman tree from the array of code lengths. + + + the array of code lengths + + + + + Reads the next symbol from input. The symbol is encoded using the + huffman tree. + + + input the input source. + + + the next symbol, or -1 if not enough input is available. + + + + + This class is general purpose class for writing data to a buffer. + + It allows you to write bits as well as bytes + Based on DeflaterPending.java + + Author of the original java version: Jochen Hoenicke + + + + + Internal work buffer + + + + + construct instance using default buffer size of 4096 + + + + + construct instance using specified buffer size + + + size to use for internal buffer + + + + + Clear internal state/buffers + + + + + Write a byte to buffer + + + The value to write + + + + + Write a short value to buffer LSB first + + + The value to write. + + + + + write an integer LSB first + + The value to write. + + + + Write a block of data to buffer + + data to write + offset of first byte to write + number of bytes to write + + + + The number of bits written to the buffer + + + + + Align internal buffer on a byte boundary + + + + + Write bits to internal buffer + + source of bits + number of bits to write + + + + Write a short value to internal buffer most significant byte first + + value to write + + + + Indicates if buffer has been flushed + + + + + Flushes the pending buffer into the given output array. If the + output array is to small, only a partial flush is done. + + The output array. + The offset into output array. + The maximum number of bytes to store. + The number of bytes flushed. + + + + Convert internal buffer to byte array. + Buffer is empty on completion + + + The internal buffer contents converted to a byte array. + + + + + A special stream deflating or compressing the bytes that are + written to it. It uses a Deflater to perform actual deflating.
+ Authors of the original java version: Tom Tromey, Jochen Hoenicke +
+
+ + + Creates a new DeflaterOutputStream with a default Deflater and default buffer size. + + + the output stream where deflated output should be written. + + + + + Creates a new DeflaterOutputStream with the given Deflater and + default buffer size. + + + the output stream where deflated output should be written. + + + the underlying deflater. + + + + + Creates a new DeflaterOutputStream with the given Deflater and + buffer size. + + + The output stream where deflated output is written. + + + The underlying deflater to use + + + The buffer size in bytes to use when deflating (minimum value 512) + + + bufsize is less than or equal to zero. + + + baseOutputStream does not support writing + + + deflater instance is null + + + + + Finishes the stream by calling finish() on the deflater. + + + Not all input is deflated + + + + + Get/set flag indicating ownership of the underlying stream. + When the flag is true will close the underlying stream also. + + + + + Allows client to determine if an entry can be patched after its added + + + + + Get/set the password used for encryption. + + When set to null or if the password is empty no encryption is performed + + + + Encrypt a block of data + + + Data to encrypt. NOTE the original contents of the buffer are lost + + + Offset of first byte in buffer to encrypt + + + Number of bytes in buffer to encrypt + + + + + Initializes encryption keys based on given . + + The password. + + + + Encrypt a single byte + + + The encrypted value + + + + + Update encryption keys + + + + + Deflates everything in the input buffers. This will call + def.deflate() until all bytes from the input buffers + are processed. + + + + + Gets value indicating stream can be read from + + + + + Gets a value indicating if seeking is supported for this stream + This property always returns false + + + + + Get value indicating if this stream supports writing + + + + + Get current length of stream + + + + + Gets the current position within the stream. + + Any attempt to set position + + + + Sets the current position of this stream to the given value. Not supported by this class! + + The offset relative to the to seek. + The to seek from. + The new position in the stream. + Any access + + + + Sets the length of this stream to the given value. Not supported by this class! + + The new stream length. + Any access + + + + Read a byte from stream advancing position by one + + The byte read cast to an int. THe value is -1 if at the end of the stream. + Any access + + + + Read a block of bytes from stream + + The buffer to store read data in. + The offset to start storing at. + The maximum number of bytes to read. + The actual number of bytes read. Zero if end of stream is detected. + Any access + + + + Asynchronous reads are not supported a NotSupportedException is always thrown + + The buffer to read into. + The offset to start storing data at. + The number of bytes to read + The async callback to use. + The state to use. + Returns an + Any access + + + + Asynchronous writes arent supported, a NotSupportedException is always thrown + + The buffer to write. + The offset to begin writing at. + The number of bytes to write. + The to use. + The state object. + Returns an IAsyncResult. + Any access + + + + Flushes the stream by calling Flush on the deflater and then + on the underlying stream. This ensures that all bytes are flushed. + + + + + Calls and closes the underlying + stream when is true. + + + + + Writes a single byte to the compressed output stream. + + + The byte value. + + + + + Writes bytes from an array to the compressed stream. + + + The byte array + + + The offset into the byte array where to start. + + + The number of bytes to write. + + + + + This buffer is used temporarily to retrieve the bytes from the + deflater and write them to the underlying output stream. + + + + + The deflater which is used to deflate the stream. + + + + + Base stream the deflater depends on. + + + + + An input buffer customised for use by + + + The buffer supports decryption of incoming data. + + + + + Initialise a new instance of with a default buffer size + + The stream to buffer. + + + + Initialise a new instance of + + The stream to buffer. + The size to use for the buffer + A minimum buffer size of 1KB is permitted. Lower sizes are treated as 1KB. + + + + Get the length of bytes bytes in the + + + + + Get the contents of the raw data buffer. + + This may contain encrypted data. + + + + Get the number of useable bytes in + + + + + Get the contents of the clear text buffer. + + + + + Get/set the number of bytes available + + + + + Call passing the current clear text buffer contents. + + The inflater to set input for. + + + + Fill the buffer from the underlying input stream. + + + + + Read a buffer directly from the input stream + + The buffer to fill + Returns the number of bytes read. + + + + Read a buffer directly from the input stream + + The buffer to read into + The offset to start reading data into. + The number of bytes to read. + Returns the number of bytes read. + + + + Read clear text data from the input stream. + + The buffer to add data to. + The offset to start adding data at. + The number of bytes to read. + Returns the number of bytes actually read. + + + + Read a from the input stream. + + Returns the byte read. + + + + Read an in little endian byte order. + + The short value read case to an int. + + + + Read an in little endian byte order. + + The int value read. + + + + Read a in little endian byte order. + + The long value read. + + + + This filter stream is used to decompress data compressed using the "deflate" + format. The "deflate" format is described in RFC 1951. + + This stream may form the basis for other decompression filters, such + as the GZipInputStream. + + Author of the original java version: John Leuner. + + + + + Create an InflaterInputStream with the default decompressor + and a default buffer size of 4KB. + + + The InputStream to read bytes from + + + + + Create an InflaterInputStream with the specified decompressor + and a default buffer size of 4KB. + + + The source of input data + + + The decompressor used to decompress data read from baseInputStream + + + + + Create an InflaterInputStream with the specified decompressor + and the specified buffer size. + + + The InputStream to read bytes from + + + The decompressor to use + + + Size of the buffer to use + + + + + Get/set flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + + The default value is true. + + + + + Skip specified number of bytes of uncompressed data + + + Number of bytes to skip + + + The number of bytes skipped, zero if the end of + stream has been reached + + + The number of bytes to skip is less than or equal to zero. + + + + + Clear any cryptographic state. + + + + + Returns 0 once the end of the stream (EOF) has been reached. + Otherwise returns 1. + + + + + Fills the buffer with more data to decompress. + + + Stream ends early + + + + + Gets a value indicating whether the current stream supports reading + + + + + Gets a value of false indicating seeking is not supported for this stream. + + + + + Gets a value of false indicating that this stream is not writeable. + + + + + A value representing the length of the stream in bytes. + + + + + The current position within the stream. + Throws a NotSupportedException when attempting to set the position + + Attempting to set the position + + + + Flushes the baseInputStream + + + + + Sets the position within the current stream + Always throws a NotSupportedException + + The relative offset to seek to. + The defining where to seek from. + The new position in the stream. + Any access + + + + Set the length of the current stream + Always throws a NotSupportedException + + The new length value for the stream. + Any access + + + + Writes a sequence of bytes to stream and advances the current position + This method always throws a NotSupportedException + + Thew buffer containing data to write. + The offset of the first byte to write. + The number of bytes to write. + Any access + + + + Writes one byte to the current stream and advances the current position + Always throws a NotSupportedException + + The byte to write. + Any access + + + + Entry point to begin an asynchronous write. Always throws a NotSupportedException. + + The buffer to write data from + Offset of first byte to write + The maximum number of bytes to write + The method to be called when the asynchronous write operation is completed + A user-provided object that distinguishes this particular asynchronous write request from other requests + An IAsyncResult that references the asynchronous write + Any access + + + + Closes the input stream. When + is true the underlying stream is also closed. + + + + + Reads decompressed data into the provided buffer byte array + + + The array to read and decompress data into + + + The offset indicating where the data should be placed + + + The number of bytes to decompress + + The number of bytes read. Zero signals the end of stream + + Inflater needs a dictionary + + + + + Decompressor for this stream + + + + + Input buffer for this stream. + + + + + Base stream the inflater reads from. + + + + + Flag indicating wether this instance has been closed or not. + + + + + Flag indicating wether this instance is designated the stream owner. + When closing if this flag is true the underlying stream is closed. + + + + + Contains the output from the Inflation process. + We need to have a window so that we can refer backwards into the output stream + to repeat stuff.
+ Author of the original java version: John Leuner +
+
+ + + Write a byte to this output window + + value to write + + if window is full + + + + + Append a byte pattern already in the window itself + + length of pattern to copy + distance from end of window pattern occurs + + If the repeated data overflows the window + + + + + Copy from input manipulator to internal window + + source of data + length of data to copy + the number of bytes copied + + + + Copy dictionary to window + + source dictionary + offset of start in source dictionary + length of dictionary + + If window isnt empty + + + + + Get remaining unfilled space in window + + Number of bytes left in window + + + + Get bytes available for output in window + + Number of bytes filled + + + + Copy contents of window to output + + buffer to copy to + offset to start at + number of bytes to count + The number of bytes copied + + If a window underflow occurs + + + + + Reset by clearing window so GetAvailable returns 0 + + + + + This class allows us to retrieve a specified number of bits from + the input buffer, as well as copy big byte blocks. + + It uses an int buffer to store up to 31 bits for direct + manipulation. This guarantees that we can get at least 16 bits, + but we only need at most 15, so this is all safe. + + There are some optimizations in this class, for example, you must + never peek more than 8 bits more than needed, and you must first + peek bits before you may drop them. This is not a general purpose + class but optimized for the behaviour of the Inflater. + + Authors of the original java version: John Leuner, Jochen Hoenicke + + + + + Constructs a default StreamManipulator with all buffers empty + + + + + Get the next sequence of bits but don't increase input pointer. bitCount must be + less or equal 16 and if this call succeeds, you must drop + at least n - 8 bits in the next call. + + The number of bits to peek. + + the value of the bits, or -1 if not enough bits available. */ + + + + + Drops the next n bits from the input. You should have called PeekBits + with a bigger or equal n before, to make sure that enough bits are in + the bit buffer. + + The number of bits to drop. + + + + Gets the next n bits and increases input pointer. This is equivalent + to followed by , except for correct error handling. + + The number of bits to retrieve. + + the value of the bits, or -1 if not enough bits available. + + + + + Gets the number of bits available in the bit buffer. This must be + only called when a previous PeekBits() returned -1. + + + the number of bits available. + + + + + Gets the number of bytes available. + + + The number of bytes available. + + + + + Skips to the next byte boundary. + + + + + Returns true when SetInput can be called + + + + + Copies bytes from input buffer to output buffer starting + at output[offset]. You have to make sure, that the buffer is + byte aligned. If not enough bytes are available, copies fewer + bytes. + + + The buffer to copy bytes to. + + + The offset in the buffer at which copying starts + + + The length to copy, 0 is allowed. + + + The number of bytes copied, 0 if no bytes were available. + + + Length is less than zero + + + Bit buffer isnt byte aligned + + + + + Resets state and empties internal buffers + + + + + Add more input for consumption. + Only call when IsNeedingInput returns true + + data to be input + offset of first byte of input + number of bytes of input to add. + + + + Determines how entries are tested to see if they should use Zip64 extensions or not. + + + + + Zip64 will not be forced on entries during processing. + + An entry can have this overridden if required ZipEntry.ForceZip64" + + + + Zip64 should always be used. + + + + + #ZipLib will determine use based on entry values when added to archive. + + + + + The kind of compression used for an entry in an archive + + + + + A direct copy of the file contents is held in the archive + + + + + Common Zip compression method using a sliding dictionary + of up to 32KB and secondary compression from Huffman/Shannon-Fano trees + + + + + An extension to deflate with a 64KB window. Not supported by #Zip currently + + + + + BZip2 compression. Not supported by #Zip. + + + + + WinZip special for AES encryption, Now supported by #Zip. + + + + + Identifies the encryption algorithm used for an entry + + + + + No encryption has been used. + + + + + Encrypted using PKZIP 2.0 or 'classic' encryption. + + + + + DES encryption has been used. + + + + + RC2 encryption has been used for encryption. + + + + + Triple DES encryption with 168 bit keys has been used for this entry. + + + + + Triple DES with 112 bit keys has been used for this entry. + + + + + AES 128 has been used for encryption. + + + + + AES 192 has been used for encryption. + + + + + AES 256 has been used for encryption. + + + + + RC2 corrected has been used for encryption. + + + + + Blowfish has been used for encryption. + + + + + Twofish has been used for encryption. + + + + + RC4 has been used for encryption. + + + + + An unknown algorithm has been used for encryption. + + + + + Defines the contents of the general bit flags field for an archive entry. + + + + + Bit 0 if set indicates that the file is encrypted + + + + + Bits 1 and 2 - Two bits defining the compression method (only for Method 6 Imploding and 8,9 Deflating) + + + + + Bit 3 if set indicates a trailing data desciptor is appended to the entry data + + + + + Bit 4 is reserved for use with method 8 for enhanced deflation + + + + + Bit 5 if set indicates the file contains Pkzip compressed patched data. + Requires version 2.7 or greater. + + + + + Bit 6 if set indicates strong encryption has been used for this entry. + + + + + Bit 7 is currently unused + + + + + Bit 8 is currently unused + + + + + Bit 9 is currently unused + + + + + Bit 10 is currently unused + + + + + Bit 11 if set indicates the filename and + comment fields for this file must be encoded using UTF-8. + + + + + Bit 12 is documented as being reserved by PKware for enhanced compression. + + + + + Bit 13 if set indicates that values in the local header are masked to hide + their actual values, and the central directory is encrypted. + + + Used when encrypting the central directory contents. + + + + + Bit 14 is documented as being reserved for use by PKware + + + + + Bit 15 is documented as being reserved for use by PKware + + + + + This class contains constants used for Zip format files + + + + + The version made by field for entries in the central header when created by this library + + + This is also the Zip version for the library when comparing against the version required to extract + for an entry. See ZipEntry.CanDecompress. + + + + + The version made by field for entries in the central header when created by this library + + + This is also the Zip version for the library when comparing against the version required to extract + for an entry. See ZipInputStream.CanDecompressEntry. + + + + + The minimum version required to support strong encryption + + + + + The minimum version required to support strong encryption + + + + + Version indicating AES encryption + + + + + The version required for Zip64 extensions (4.5 or higher) + + + + + Size of local entry header (excluding variable length fields at end) + + + + + Size of local entry header (excluding variable length fields at end) + + + + + Size of Zip64 data descriptor + + + + + Size of data descriptor + + + + + Size of data descriptor + + + + + Size of central header entry (excluding variable fields) + + + + + Size of central header entry + + + + + Size of end of central record (excluding variable fields) + + + + + Size of end of central record (excluding variable fields) + + + + + Size of 'classic' cryptographic header stored before any entry data + + + + + Size of cryptographic header stored before entry data + + + + + Signature for local entry header + + + + + Signature for local entry header + + + + + Signature for spanning entry + + + + + Signature for spanning entry + + + + + Signature for temporary spanning entry + + + + + Signature for temporary spanning entry + + + + + Signature for data descriptor + + + This is only used where the length, Crc, or compressed size isnt known when the + entry is created and the output stream doesnt support seeking. + The local entry cannot be 'patched' with the correct values in this case + so the values are recorded after the data prefixed by this header, as well as in the central directory. + + + + + Signature for data descriptor + + + This is only used where the length, Crc, or compressed size isnt known when the + entry is created and the output stream doesnt support seeking. + The local entry cannot be 'patched' with the correct values in this case + so the values are recorded after the data prefixed by this header, as well as in the central directory. + + + + + Signature for central header + + + + + Signature for central header + + + + + Signature for Zip64 central file header + + + + + Signature for Zip64 central file header + + + + + Signature for Zip64 central directory locator + + + + + Signature for archive extra data signature (were headers are encrypted). + + + + + Central header digitial signature + + + + + Central header digitial signature + + + + + End of central directory record signature + + + + + End of central directory record signature + + + + + Default encoding used for string conversion. 0 gives the default system OEM code page. + Dont use unicode encodings if you want to be Zip compatible! + Using the default code page isnt the full solution necessarily + there are many variable factors, codepage 850 is often a good choice for + European users, however be careful about compatibility. + + + + + Convert a portion of a byte array to a string. + + + Data to convert to string + + + Number of bytes to convert starting from index 0 + + + data[0]..data[count - 1] converted to a string + + + + + Convert a byte array to string + + + Byte array to convert + + + dataconverted to a string + + + + + Convert a byte array to string + + The applicable general purpose bits flags + + Byte array to convert + + The number of bytes to convert. + + dataconverted to a string + + + + + Convert a byte array to string + + + Byte array to convert + + The applicable general purpose bits flags + + dataconverted to a string + + + + + Convert a string to a byte array + + + String to convert to an array + + Converted array + + + + Convert a string to a byte array + + The applicable general purpose bits flags + + String to convert to an array + + Converted array + + + + Initialise default instance of ZipConstants + + + Private to prevent instances being created. + + + + + Represents exception conditions specific to Zip archive handling + + + + + Initializes a new instance of the ZipException class. + + + + + Initializes a new instance of the ZipException class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initialise a new instance of ZipException. + + A message describing the error. + The exception that is the cause of the current exception. + +
+
diff --git a/GenesisCordonelInterface/bin/Debug/QRCoder.dll b/GenesisCordonelInterface/bin/Debug/QRCoder.dll new file mode 100644 index 000000000..6cfbf076e Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/QRCoder.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/RegAsm4.exe b/GenesisCordonelInterface/bin/Debug/RegAsm4.exe new file mode 100644 index 000000000..b157462fe Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/RegAsm4.exe differ diff --git a/GenesisCordonelInterface/bin/Debug/RestSharp.dll b/GenesisCordonelInterface/bin/Debug/RestSharp.dll new file mode 100644 index 000000000..ce4ed3839 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/RestSharp.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/RestSharp.xml b/GenesisCordonelInterface/bin/Debug/RestSharp.xml new file mode 100644 index 000000000..5069712d1 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/RestSharp.xml @@ -0,0 +1,3024 @@ + + + + RestSharp + + + + + Tries to Authenticate with the credentials of the currently logged in user, or impersonate a user + + + + + Authenticate with the credentials of the currently logged in user + + + + + Authenticate by impersonation + + + + + + + Authenticate by impersonation, using an existing ICredentials instance + + + + + + + + + Base class for OAuth 2 Authenticators. + + + Since there are many ways to authenticate in OAuth2, + this is used as a base class to differentiate between + other authenticators. + + Any other OAuth2 authenticators must derive from this + abstract class. + + + + + Access token to be used when authenticating. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + Gets the access token. + + + + + The OAuth 2 authenticator using URI query parameter. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.2 + + + + + Initializes a new instance of the class. + + + The access token. + + + + + The OAuth 2 authenticator using the authorization request header field. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.1 + + + + + Stores the Authorization header value as "[tokenType] accessToken". used for performance. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + Initializes a new instance of the class. + + + The access token. + + + The token type. + + + + + All text parameters are UTF-8 encoded (per section 5.1). + + + + + + Generates a random 16-byte lowercase alphanumeric string. + + + + + + + Generates a timestamp based on the current elapsed seconds since '01/01/1970 0000 GMT" + + + + + + + Generates a timestamp based on the elapsed seconds of a given time since '01/01/1970 0000 GMT" + + + A specified point in time. + + + + + The set of characters that are unreserved in RFC 2396 but are NOT unreserved in RFC 3986. + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + The value to escape. + The escaped value. + + The method is supposed to take on + RFC 3986 behavior if certain elements are present in a .config file. Even if this + actually worked (which in my experiments it doesn't), we can't rely on every + host actually having this configuration element present. + + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + + + + + + Sorts a collection of key-value pairs by name, and then value if equal, + concatenating them into a single string. This string should be encoded + prior to, or after normalization is run. + + + + + + + + Sorts a by name, and then value if equal. + + A collection of parameters to sort + A sorted parameter collection + + + + Creates a request URL suitable for making OAuth requests. + Resulting URLs must exclude port 80 or port 443 when accompanied by HTTP and HTTPS, respectively. + Resulting URLs must be lower case. + + + The original request URL + + + + + Creates a request elements concatentation value to send with a request. + This is also known as the signature base. + + + + The request's HTTP method type + The request URL + The request's parameters + A signature base string + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The signature base + The consumer secret + The token secret + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer secret + The token secret + + + + + A class to encapsulate OAuth authentication flow. + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + Any existing, non-OAuth query parameters desired in the request + + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + Generates a instance to pass to an + for the purpose of exchanging user credentials + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + + + + + + + + + + Allows control how class and property names and values are deserialized by XmlAttributeDeserializer + + + + + The name to use for the serialized element + + + + + Sets if the property to Deserialize is an Attribute or Element (Default: false) + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Types of parameters that can be added to requests + + + + + Data formats + + + + + HTTP method to use when making requests + + + + + Format strings for commonly-used date formats + + + + + .NET format string for ISO 8601 date format + + + + + .NET format string for roundtrip date format + + + + + Status for responses (surprised?) + + + + + Extension method overload! + + + + + Save a byte array to a file + + Bytes to save + Full path to save file to + + + + Read a stream into a byte array + + Stream to read + byte[] + + + + Copies bytes from one stream to another + + The input stream. + The output stream. + + + + Converts a byte array to a string, using its byte order mark to convert it to the right encoding. + http://www.shrinkrays.net/code-snippets/csharp/an-extension-method-for-converting-a-byte-array-to-a-string.aspx + + An array of bytes to convert + The byte as a string. + + + + Decodes an HTML-encoded string and returns the decoded string. + + The HTML string to decode. + The decoded text. + + + + Decodes an HTML-encoded string and sends the resulting output to a TextWriter output stream. + + The HTML string to decode + The TextWriter output stream containing the decoded string. + + + + HTML-encodes a string and sends the resulting output to a TextWriter output stream. + + The string to encode. + The TextWriter output stream containing the encoded string. + + + + Reflection extensions + + + + + Retrieve an attribute from a member (property) + + Type of attribute to retrieve + Member to retrieve attribute from + + + + + Retrieve an attribute from a type + + Type of attribute to retrieve + Type to retrieve attribute from + + + + + Checks a type to see if it derives from a raw generic (e.g. List[[]]) + + + + + + + + Find a value from a System.Enum by trying several possible variants + of the string value of the enum. + + Type of enum + Value for which to search + The culture used to calculate the name variants + + + + + Convert a to a instance. + + The response status. + + responseStatus + + + + Uses Uri.EscapeDataString() based on recommendations on MSDN + http://blogs.msdn.com/b/yangxind/archive/2006/11/09/don-t-use-net-system-uri-unescapedatastring-in-url-decoding.aspx + + + + + Check that a string is not null or empty + + String to check + bool + + + + Remove underscores from a string + + String to process + string + + + + Parses most common JSON date formats + + JSON value to parse + + DateTime + + + + Remove leading and trailing " from a string + + String to parse + String + + + + Checks a string to see if it matches a regex + + String to check + Pattern to match + bool + + + + Converts a string to pascal case + + String to convert + + string + + + + Converts a string to pascal case with the option to remove underscores + + String to convert + Option to remove underscores + + + + + + Converts a string to camel case + + String to convert + + String + + + + Convert the first letter of a string to lower case + + String to convert + string + + + + Checks to see if a string is all uppper case + + String to check + bool + + + + Add underscores to a pascal-cased string + + String to convert + string + + + + Add dashes to a pascal-cased string + + String to convert + string + + + + Add an undescore prefix to a pascasl-cased string + + + + + + + Add spaces to a pascal-cased string + + String to convert + string + + + + Return possible variants of a name for name matching. + + String to convert + The culture to use for conversion + IEnumerable<string> + + + + XML Extension Methods + + + + + Returns the name of an element with the namespace if specified + + Element name + XML Namespace + + + + + Container for files to be uploaded with requests + + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The content type to use in the request. + The + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The using the default content type. + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + HttpWebRequest wrapper (async methods) + + + HttpWebRequest wrapper + + + HttpWebRequest wrapper (sync methods) + + + + + Always send a multipart/form-data request - even when no Files are present. + + + + + An alternative to RequestBody, for when the caller already has the byte array. + + + + + Execute an async POST-style request with the specified HTTP Method. + + + The HTTP method to execute. + + + + + Execute an async GET-style request with the specified HTTP Method. + + + The HTTP method to execute. + + + + + Creates an IHttp + + + + + + Default constructor + + + + + Execute a POST request + + + + + Execute a PUT request + + + + + Execute a GET request + + + + + Execute a HEAD request + + + + + Execute an OPTIONS request + + + + + Execute a DELETE request + + + + + Execute a PATCH request + + + + + Execute a MERGE request + + + + + Execute a GET-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Execute a POST-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + True if this HTTP request has any HTTP parameters + + + + + True if this HTTP request has any HTTP cookies + + + + + True if a request body has been specified + + + + + True if files have been set to be uploaded + + + + + Always send a multipart/form-data request - even when no Files are present. + + + + + UserAgent to be sent with request + + + + + Timeout in milliseconds to be used for the request + + + + + The number of milliseconds before the writing or reading times out. + + + + + System.Net.ICredentials to be sent with request + + + + + The System.Net.CookieContainer to be used for the request + + + + + The method to use to write the response instead of reading into RawBytes + + + + + Collection of files to be sent with request + + + + + Whether or not HTTP 3xx response redirects should be automatically followed + + + + + X509CertificateCollection to be sent with request + + + + + Maximum number of automatic redirects to follow if FollowRedirects is true + + + + + Determine whether or not the "default credentials" (e.g. the user account under which the current process is running) + will be sent along to the server. + + + + + HTTP headers to be sent with request + + + + + HTTP parameters (QueryString or Form values) to be sent with request + + + + + HTTP cookies to be sent with request + + + + + Request body to be sent with request + + + + + Content type of the request body. + + + + + An alternative to RequestBody, for when the caller already has the byte array. + + + + + URL to call for this request + + + + + Flag to send authorisation header with the HttpWebRequest + + + + + Proxy info to be sent with request + + + + + Representation of an HTTP cookie + + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + + Container for HTTP file + + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + Representation of an HTTP header + + + + + Name of the header + + + + + Value of the header + + + + + Representation of an HTTP parameter (QueryString or Form value) + + + + + Name of the parameter + + + + + Value of the parameter + + + + + HTTP response data + + + + + HTTP response data + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + Default constructor + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + Lazy-loaded string representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + + + + + + + + + + + + + + + + + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes the request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + The cancellation token + + + + Executes the request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + + + + Executes a GET-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + + + + Executes a GET-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + The cancellation token + + + + Executes a POST-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + + + + Executes a POST-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + The cancellation token + + + + Executes the request and callback asynchronously, authenticating if needed + + Request to be executed + The cancellation token + + + + Executes the request asynchronously, authenticating if needed + + Request to be executed + + + + Executes a GET-style asynchronously, authenticating if needed + + Request to be executed + + + + Executes a GET-style asynchronously, authenticating if needed + + Request to be executed + The cancellation token + + + + Executes a POST-style asynchronously, authenticating if needed + + Request to be executed + + + + Executes a POST-style asynchronously, authenticating if needed + + Request to be executed + The cancellation token + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X509CertificateCollection to be sent with request + + + + + Adds a file to the Files collection to be included with a POST or PUT request + (other methods do not support file uploads). + + The parameter name to use in the request + Full path to file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + The default format is XML. Change RequestFormat if you wish to use a different serialization format. + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + The default format is XML. Change RequestFormat if you wish to use a different serialization format. + + The object to serialize + This request + + + + Serializes obj to JSON format and adds it to the request body. + + The object to serialize + This request + + + + Serializes obj to XML format and adds it to the request body. + + The object to serialize + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + Serializes obj to XML format and passes xmlNamespace then adds it to the request body. + + The object to serialize + The XML namespace to use when serializing + This request + + + + Calls AddParameter() for all public, readable properties specified in the includedProperties list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are five types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - Cookie: Adds the name/value pair to the HTTP request's Cookies collection + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Shortcut to AddParameter(name, value, QueryString) overload + + Name of the parameter to add + Value of the parameter to add + + + + + Always send a multipart/form-data request - even when no Files are present. + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Set this to write response to Stream rather than reading into memory. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + The number of milliseconds before the writing or reading times out. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Determine whether or not the "default credentials" (e.g. the user account under which the current process is running) + will be sent along to the server. The default is false. + + + + + Container for data sent back from API + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exceptions thrown during the request, if any. + + Will contain only network transport or framework exceptions thrown during the request. + HTTP protocol errors are handled by RestSharp and will not appear here. + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Parameter container for REST requests + + + + + Return a human-readable representation of this parameter + + String + + + + Name of the parameter + + + + + Value of the parameter + + + + + Type of the parameter + + + + + Client to translate RestRequests into Http requests and process response result + + + + + Executes the request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes the request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a GET-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + + + + Executes a GET-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + The cancellation token + + + + Executes a POST-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + + + + Executes a POST-style request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + The cancellation token + + + + Executes the request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + + + + Executes the request asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + The cancellation token + + + + Executes the request asynchronously, authenticating if needed + + Request to be executed + + + + Executes a GET-style asynchronously, authenticating if needed + + Request to be executed + + + + Executes a GET-style asynchronously, authenticating if needed + + Request to be executed + The cancellation token + + + + Executes a POST-style asynchronously, authenticating if needed + + Request to be executed + + + + Executes a POST-style asynchronously, authenticating if needed + + Request to be executed + The cancellation token + + + + Executes the request asynchronously, authenticating if needed + + Request to be executed + The cancellation token + + + + Default constructor that registers default content handlers + + + + + Sets the BaseUrl property for requests made by this client instance + + + + + + Sets the BaseUrl property for requests made by this client instance + + + + + + Registers a content handler to process response content + + MIME content type of the response content + Deserializer to use to process content + + + + Remove a content handler for the specified MIME content type + + MIME content type to remove + + + + Remove all content handlers + + + + + Retrieve the handler for the specified MIME content type + + MIME content type to retrieve + IDeserializer instance + + + + Assembles URL to call based on parameters, method and resource + + RestRequest to execute + Assembled System.Uri + + + + Executes the specified request and downloads the response data + + Request to execute + Response data + + + + Executes the request and returns a response, authenticating if needed + + Request to be executed + RestResponse + + + + Executes the specified request and deserializes the response content using the appropriate content handler + + Target deserialization type + Request to execute + RestResponse[[T]] with deserialized data in Data property + + + + Parameters included with every request made with this instance of RestClient + If specified in both client and request, the request wins + + + + + Maximum number of redirects to follow if FollowRedirects is true + + + + + X509CertificateCollection to be sent with request + + + + + Proxy to use for requests made by this client instance. + Passed on to underlying WebRequest if set. + + + + + Default is true. Determine whether or not requests that result in + HTTP status codes of 3xx should follow returned redirect + + + + + The CookieContainer used for requests made by this client instance + + + + + UserAgent to use for requests made by this client instance + + + + + Timeout in milliseconds to use for requests made by this client instance + + + + + The number of milliseconds before the writing or reading times out. + + + + + Whether to invoke async callbacks using the SynchronizationContext.Current captured when invoked + + + + + Authenticator to use for requests made by this client instance + + + + + Combined with Request.Resource to construct URL for request + Should include scheme and domain without trailing slash. + + + client.BaseUrl = new Uri("http://example.com"); + + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Request to be executed + Callback function to be executed upon completion + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Target deserialization type + Request to be executed + Callback function to be executed upon completion providing access to the async handle + + + + Add a parameter to use on every request made with this client instance + + The IRestClient instance + Parameter to add + + + + + Removes a parameter from the default parameters that are used on every request made with this client instance + + The IRestClient instance + The name of the parameter that needs to be removed + + + + + Adds a HTTP parameter (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + Used on every request made by this client instance + + The IRestClient instance + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + The IRestClient instance + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddDefaultParameter(name, value, HttpHeader) overload + + The IRestClient instance + Name of the header to add + Value of the header to add + + + + + Shortcut to AddDefaultParameter(name, value, UrlSegment) overload + + The IRestClient instance + Name of the segment to add + Value of the segment to add + + + + + Container for data used to make requests + + + + + Default constructor + + + + + Sets Method property to value of method + + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Adds a file to the Files collection to be included with a POST or PUT request + (other methods do not support file uploads). + + The parameter name to use in the request + Full path to file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + The default format is XML. Change RequestFormat if you wish to use a different serialization format. + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + The default format is XML. Change RequestFormat if you wish to use a different serialization format. + + The object to serialize + This request + + + + Serializes obj to JSON format and adds it to the request body. + + The object to serialize + This request + + + + Serializes obj to XML format and adds it to the request body. + + The object to serialize + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + Serializes obj to XML format and passes xmlNamespace then adds it to the request body. + + The object to serialize + The XML namespace to use when serializing + This request + + + + Calls AddParameter() for all public, readable properties specified in the includedProperties list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Shortcut to AddParameter(name, value, QueryString) overload + + Name of the parameter to add + Value of the parameter to add + + + + + Internal Method so that RestClient can increase the number of attempts + + + + + Always send a multipart/form-data request - even when no Files are present. + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Set this to write response to Stream rather than reading into memory. + + + + + Determine whether or not the "default credentials" (e.g. the user account under which the current process is running) + will be sent along to the server. The default is false. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + A function to run prior to deserializing starting (e.g. change settings if error encountered) + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Gets or sets a user-defined state object that contains information about a request and which can be later + retrieved when the request completes. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + The number of milliseconds before the writing or reading times out. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Base class for common properties shared by RestResponse and RestResponse[[T]] + + + + + Default constructor + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + The exception thrown during the request, if any + + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Container for data sent back from API + + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Encoding for serialized content + + + + + Need to subclass StringWriter in order to override Encoding + + + + + Default JSON serializer for request bodies + Doesn't currently use the SerializeAs attribute, defers to Newtonsoft's attributes + + + + + Default serializer + + + + + Serialize the object as JSON + + Object to serialize + JSON as String + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Content type for serialized content + + + + + Allows control how class and property names and values are serialized by XmlSerializer + Currently not supported with the JsonSerializer + When specified at the property level the class-level specification is overridden + + + + + Called by the attribute when NameStyle is speficied + + The string to transform + String + + + + The name to use for the serialized element + + + + + Sets the value to be serialized as an Attribute instead of an Element + + + + + The culture to use when serializing + + + + + Transforms the casing of the name based on the selected value. + + + + + The order to serialize the element. Default is int.MaxValue. + + + + + Options for transforming casing of element names + + + + + Default XML Serializer + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Determines if a given object is numeric in any way + (can be integer, double, null, etc). + + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Helper methods for validating required values + + + + + Require a parameter to not be null + + Name of the parameter + Value of the parameter + + + + Represents the json array. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The capacity of the json array. + + + + The json representation of the array. + + The json representation of the array. + + + + Represents the json object. + + + + + The internal member dictionary. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of . + + The implementation to use when comparing keys, or null to use the default for the type of the key. + + + + Adds the specified key. + + The key. + The value. + + + + Determines whether the specified key contains key. + + The key. + + true if the specified key contains key; otherwise, false. + + + + + Removes the specified key. + + The key. + + + + + Tries the get value. + + The key. + The value. + + + + + Adds the specified item. + + The item. + + + + Clears this instance. + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Removes the specified item. + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a json that represents the current . + + + A json that represents the current . + + + + + Gets the at the specified index. + + + + + + Gets the keys. + + The keys. + + + + Gets the values. + + The values. + + + + Gets or sets the with the specified key. + + + + + + Gets the count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + This class encodes and decodes JSON strings. + Spec. details, see http://www.json.org/ + + JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + All numbers are parsed to doubles. + + + + + Parses the string json into a value + + A JSON string. + An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + + + + Try parsing the json string into a value. + + + A JSON string. + + + The object. + + + Returns true if successfull otherwise false. + + + + + Converts a IDictionary<string,object> / IList<object> object into a JSON string + + A IDictionary<string,object> / IList<object> + Serializer strategy to use + A JSON encoded string, or null if object 'json' is not serializable + + + + Determines if a given object is numeric in any way + (can be integer, double, null, etc). + + + + + Helper methods for validating values + + + + + Validate an integer value is between the specified values (exclusive of min/max) + + Value to validate + Exclusive minimum value + Exclusive maximum value + + + + Validate a string length + + String to be validated + Maximum length of the string + + + diff --git a/GenesisCordonelInterface/bin/Debug/TempFlansh.exe b/GenesisCordonelInterface/bin/Debug/TempFlansh.exe new file mode 100644 index 000000000..16bfc8911 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/TempFlansh.exe differ diff --git a/GenesisCordonelInterface/bin/Debug/TempFlansh.exe.config b/GenesisCordonelInterface/bin/Debug/TempFlansh.exe.config new file mode 100644 index 000000000..4bfa00561 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/TempFlansh.exe.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/GenesisCordonelInterface/bin/Debug/TempFlansh.pdb b/GenesisCordonelInterface/bin/Debug/TempFlansh.pdb new file mode 100644 index 000000000..8f6bfbc03 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/TempFlansh.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.Configuration.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.Configuration.dll new file mode 100644 index 000000000..0b7328915 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.Configuration.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.Configuration.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.Configuration.pdb new file mode 100644 index 000000000..08282ede8 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.Configuration.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.ThreadWatcher.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.ThreadWatcher.dll new file mode 100644 index 000000000..f69cd2cea Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.ThreadWatcher.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.ThreadWatcher.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.ThreadWatcher.pdb new file mode 100644 index 000000000..e03753b6b Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.ThreadWatcher.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.dll new file mode 100644 index 000000000..dac35f3c5 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.pdb new file mode 100644 index 000000000..fe955161c Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.CommonCore.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.PortCore.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.PortCore.dll new file mode 100644 index 000000000..2aa7ee2f8 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.PortCore.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.PortCore.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.PortCore.pdb new file mode 100644 index 000000000..35c0572c3 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.PortCore.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.PortCore.xml b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.PortCore.xml new file mode 100644 index 000000000..743acbe1d --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.PortCore.xml @@ -0,0 +1,312 @@ + + + + Xylem.Common.Hardware.Interfaces.Ports.PortCore + + + + + + + + Marker for incoming record at time of the PC + + + + + + + + + + + + + + + + + + + + + + + Interface for port data event arguments + + + + + Read data + + + + + + Write data + + + + + + Reading received time + + + + + + Writing received time + + + + + + Setting the data marker + + + + + + Getting the data marker + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Interface for Ports + + + + + event for record received, either bytes or string + + + + + event for record received, either bytes or string + + + + + set specific mark + and flush or delete all incoming byte from buffer when SyncMarkRecord is or + + + + + + + if the port needs stuff to open, always open for better logical handling + + + + + close and dispose all connections + + + + + indicates if the Port is open (also on Ports that did not have an open state) + + + + + + Write byte[] to the Stream/Port on Child Class + wrapped with base class error handling + + Array of bytes to write + + + + discard all buffers + + + + + Return the port name + + name of the port as string + + + + Collection of port settings + + + + + Assigns a port name and creates the serial port object + Port name e.g. "COM2" + + + + + setup of port type from name (referenced as "Type" in config file) + + + + + using dotNets for connection + + + + + using dotNets for connection + + + + + Container for port configuration + + + + + Slot number + + + + + Request port settings + + + + + Streaming port settings + + + + + Streaming port settings + + + + + Definition of type for slot + + + + + Cordonel used as DUT with two serial ports + + + + + Cordonel used as temperature meter with one serial port streaming the temperature + + + + + Store Port settings set most likely from transmit protocol + + + + + The transmission protocol needs to inform the communication port how to set up, + this is the data container. + + + + + + + + + + + + + - String delimiter for ASCII to support others than LF "\n", + - Flexible DataBits, + - Flexible parity. + + + + + String delimiter for ASCII to support others than LF "\n" + + + + + Flexible DataBits to support 7 bits. + + + + + Flexible parity + + + + + start of receiving synchronization byte at byte receive routine + syncByte == null: use the readLine routine (ASCII) and NOT the BYTE routine, + lengthPosition and additionalLength are not used + + + + + position of length information field in received BYTE record + lengthIndex == null: take the constant receive length of additionalLength + because the record doesn't contain length information + + + + + additional record length NOT covert by the record length information field + lengthIndex == null: constant length for received record + Being used for the BYTE records indicated by a valid syncByte, + not being used for ASCII records. + + + + + Response time out in milliseconds + + + + + BaudRate for Port + + + + + lower threshold for buffer flushing if dataMarker != SkipDecoding + receiveBufferFlushThreshold == null: never flush the communication buffer + receiveBufferFlushThreshold == 0: flush always the communication buffer + receiveBufferFlushThreshold == x: flush communication buffer if it exceeds x Byte + waste old records if an up-to-date record is being needed for start/stop synchronization + of a measurement. This is the level at which the old data have to be flushed because the + data have been dammed up in the communication port input buffer which means they are to + old for synchronization purposes. + /// + + + + a special implementation may require the doubling of the sync byte to re-synchronize + + + + diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.SerialPorts.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.SerialPorts.dll new file mode 100644 index 000000000..1349ceb26 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.SerialPorts.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.SerialPorts.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.SerialPorts.pdb new file mode 100644 index 000000000..af131b449 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Ports.SerialPorts.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol.dll new file mode 100644 index 000000000..4acc353bf Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol.pdb new file mode 100644 index 000000000..0b436f273 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.ERegister.DataPackages.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.ERegister.DataPackages.dll new file mode 100644 index 000000000..9c4253906 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.ERegister.DataPackages.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.ERegister.DataPackages.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.ERegister.DataPackages.pdb new file mode 100644 index 000000000..1af2d68c4 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.ERegister.DataPackages.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.dll new file mode 100644 index 000000000..19f7c844f Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.dll.config b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.dll.config new file mode 100644 index 000000000..c764f5323 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.dll.config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.pdb new file mode 100644 index 000000000..e7b976d3b Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.dll new file mode 100644 index 000000000..09c531497 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.pdb new file mode 100644 index 000000000..cffb60645 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.xml b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.xml new file mode 100644 index 000000000..0469aee6d --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.xml @@ -0,0 +1,384 @@ + + + + Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages + + + + + + + + Stream record for calibration on channel + + + + + + + + + + + new record from Stream + + + + + + + + + + + new record from Stream + + + + + + + + + + + + Ctor with base record + + base record + base record + + + + Register witch has updated + + + + + New Value in Register + + + + + + EventArgs for Request Responses + + + + + Request response from meter + + + + + + + + + Streaming record for protocol M (information about bend detection and correction) + + + + + The status of the U0 detection for this measurement + + + + + Status okay + + + + + Error code as defined by field name + + + + + Error code as defined by field name + + + + + Error code as defined by field name + + + + + Error code as defined by field name + + + + + An enum describing the installation type detected + + + + + Installation type code as defined by field name + + + + + Installation type code as defined by field name + + + + + Installation type code as defined by field name + + + + + Status of U0 Bend detection + + + + + Installation type code + + + + + The proportion of the installation correction to apply based on the detected + installation. 100% == 0x8000 + + + + + The default proportion of the installation correction to apply based on the + detected installation. 100% == 0x8000 + + + + + Scale for correction factor to apply to convert it to percentage value 100% == 0x8000 + + + + + The volume in internal units before correction applied + + + + + The volume in internal units after correction applied + + + + + Get result as string + + + + + + + hold streaming record for protocol H (contains calibration record) + + + + + record validation + + + + + total time of flight in seconds + + + + + delta time of flight in seconds + + + + + total time of flight in cordonel units + + + + + delta time of flight in cordonel units + + + + + volume scale (default: 1024) means + 1024digits = 1ml + + + + + volume factor to convert raw to m³ + uses 1E-6 (ml to m³) / VolumeScaleRawPerMl + + + + + raw volume between two samples + + + + + calculated out of dRawVolume * VolumeFactorRawToQm . + in cubic meters + + + + + accumulated raw volume + + + + + sample interval between two samples in seconds + + + + + high threshold amplitude in V + + + + + low threshold amplitude in V + + + + + high ratio for pulse width + + + + + low ratio for pulse width + + + + + raw temperature + + + + + temperature scale + + + + + calculated temperature in degree C + + + + + Get result as string + + + + + + + struct to hold Led record for protocol F (contains measurement record) + + + + + Get result as string + + + + + + All parameters needed for radio setup + + + + + Pcb identification + + + + + Serial number + + + + + Radio address + + + + + Power level + + + + + Power level option + + + + + New code for impedance + + + + + Impedance code option + + + + + Encryption key + + + + + Frequency offset + + + + + + + + + + Register address and value to DB + + + + + + + Address + + + + + Value + + + + + Temperature Time Of Flight calculation + + + + + Reference data + + + + + Reference temperature + + + + + Time Of Flight + + + + diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.dll new file mode 100644 index 000000000..ece1d7de1 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.pdb new file mode 100644 index 000000000..2720205ed Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.dll new file mode 100644 index 000000000..e55455ab0 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.dll.config b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.dll.config new file mode 100644 index 000000000..c764f5323 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.dll.config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.pdb new file mode 100644 index 000000000..414f7d14e Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.xml b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.xml new file mode 100644 index 000000000..706df13ac --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.xml @@ -0,0 +1,2959 @@ + + + + Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore + + + + + Alarm messages + + + + + Power correction constants + + + + + Threshold for power correction EMEA version + + + + + Threshold for power correction NA version + + + + + Minimum region radio current NA + + + + + Minimum region radio current sensus radio RF mode EMEA + + + + + Minimum region radio current sensus radio TFX mode EMEA + + + + + Fixed current in production if production values are not logged in DB + and dispatched as 0 or null. + + + + + Fixed region radio current NA + + + + + Fixed region radio current sensus radio RF mode EMEA + + + + + Fixed region radio current sensus radio RF mode EMEA + + + + + Fixed region radio current sensus radio TFX mode EMEA + + + + + Pulse report length for pulse mode 1 to 4 even distribution 0 + + + + + Pulse report length for pulse mode 1 to 4 even distribution 1 + + + + + Pulse report length for pulse mode 5 to 6 even distribution 0 + + + + + Pulse report length for pulse mode 5 to 6 even distribution 1 + + + + + TFX mode mask of sensus radio system state + + + + + Update capability check for all necessary settings according to meter. + + + + + It is allowed to upgrade the metrology, causing an upgrade capability check to pass always. + + + + + The name of the metrology application. + + + + + Common definition for Meter handling in production and on test benches + + + 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! + + + + + everything is good + + + + + problems on initialization + + + + + problems on Measurement + + + + + Problem on communication with meter + + + + + Problem on optical output on meter + + + + + if pulse can not readout + + + + + no (or no good) reference flow available + + + + + Calibration went wrong + + + + + calibration is out of range. Check documentation from meter to find limitation + + + + + blue screen like error + + + + + 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 + + + + + Test mode with raw record to log. + Should give one + 3 times and + one + + + + + Test mode with raw record to log. Should give one + 3 times and repeat this till led mode is switch + + + + + Test mode should give out + + + + + Calibration mode should give out + + + + + Deactivate streaming + + + + + not set or an new not supported Streaming mode + + + + + Interface of special GenesisMeter derived from IMeter + + + + + Represent + proposed for login + + + + + 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'. + + + + + Interface information + + + + + This FW version is supported by the interface "configuration.json". + + + + + Transmit protocol access for underlie objects to change response timeout + + + + + List of all present meter applications installed in meter + + + + + Successfully logged on to meter + + + + + Core revision of boot code. + + + + + Core revision of boot code as string. + + + + + This is the FLEXNETVERSION version which describes the entire packet. + + + + + This is the FLEXNETVERSION version which describes the entire packet. + + + + + This is the Metrology Lookup Table CRC. + + + + + This is the meter size. + + + + + Length of the meter. + + + + + Pressure sensor assembled to meter. + + + + + Region (EMEA, NA or China). + + + + + Radio frequency in MHz (433 or 868 or null). + + + + + Metrology upgrade permission. + + + + + Order number under which this meter has to be produced + + + + + Radio address + + + + + Process configuration + + + + + Customer serial number for informal issues + + + + + Unlocked the property change ability for special sequences. + + + + + Check region and size. + After reading the version, all valid registers are going to be selected. + + + + + Unlocked the property change ability for special sequences. + + + + + Set the meter size if previously unlocked. + The data types are: - String like "DN50" or + + + + + Set the pressure sensor if previously unlocked + + + + + Reset the empty pipe alarm + + + + + Upload app list to database + + + + + + + + Clear password to force new password reading + + + + + Executes all StoreConfiguration and StoreCalibration for each application. + + true if all configurations are stored + + + + Login with identical password as last time to avoid get password from database + + + + + Returns meter registers + + + + + + Common routine for reboot being able to override this routine which will be called in + MeteResetPsu to simulate a reboot. + + + + + + Write Register, optional: wait for result and validate, + write register will ALWAYS log the data DON'T use for password write + + Data type of Register + Register name + Value to save as byte array in raw format + wait until result is ready + check the content of the register by read back + skip retries on this error code return + true on successful operation + + + + Read Register and return byte array + + Register name + expected length for response + skip retries on this error code return + value as byte array in raw format or null + + + + Clear all pending alarms. + + + - Initial. + + + + + Collection of interface information + + + + + The interface version + + + + + List of supported FW versions by this interface + + + + + Read of required registers and calculation of power correction + + + + + Ctor + + + + true if successful + + + + Calculate the values for power correction + + true if successful + + - Initial + + + + + Calculate the values for power correction + + true if successful + + - Initial + + + + + Power correction parameters used for overestimated power consumption on + Cordonel FW update from: + EMEA below R1.3.x + NA below R2.0.07 + + + + + Unique identification of PCB + + + + + Date time UTC at EOL - Production + + + + + Total used seconds at EOL - Production + + + + + Total used charge of batteries at EOL - Production + + + + + Radio system state at EOL - Production + + + + + Pulse adapter was installed during at EOL - Production VAKO + + + + + Pulse mode during at EOL - Production + + + + + Pulse sequence counter during at EOL - Production + + + + + Pulse distribution at EOL - Production + + + + + Detected FW version before maintenance + + + + + Date time UTC at time of maintenance + + + + + Total used seconds of entire runtime + + + + + Total used charge of batteries of entire runtime + + + + + Actual detected radio system state at maintenance + + + + + Detection of pulse adapter installation + + + + + Pulse mode during maintenance + + + + + Pulse sequence counter during maintenance + + + + + Pulse distribution during maintenance + + + + + Mark pulse adapter as installed on any detected or sequence counted + + + + + Remind battery quantity used for estimation of drained load + + + + + Remind battery initial load used for estimation of drained load + + + + + FW version for the update + + + + + Calculated pulse report length + + + + + Total used seconds after EOL and before maintenance + + + + + Overestimated total used charge before maintenance + + + + + Based on fixed estimation total used charge before maintenance + + + + + Lowest threshold for total used charge calculated during maintenance + + + + + Corrected total used charge during maintenance + + + + + + 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 + + + + Default constructor. + + R.Drabesch, 2018-Feb-16. + + + + + Slot number for test-bench + for request Port + for streaming Port + don´t send CRC error or telegrams with error flag to caller + + 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 + + + + + Keep up the highest access level for all function in where used + + + + + Logout with level 0 + + + + + Minimal length for PcbId + + + + + 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. + + + + + Logger for NLog + + + + + Optional request to use the offline passwords + + + + + source of slot config + + + + + source of password + + + + + Request communication port configuration. + Used for request/response communication with the meter. + + + + + Streaming communication port configuration. + Used for continuous data streaming communication. + + + + + if application have a access to online Genesis services + + + + + Remind the offline password for comparison if this is actively used + + + + + Process configuration + + + + + Transmit protocol access for underlie objects to change response timeout + + + + + + + + Customer serial number for informal issues + + + + + + Save Slot Number (position at test-bench) for logging purposes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Radio frequency in MHz (433 or 868 or null). + + + + + Metrology upgrade permission. + + + + + + + + + + + + + + Add on ctor a password, it will be used for login in if no other password is set + + + + + reminder for last communication acknowledge code to detect communication errors + + + + + default false only enabled by + when it is true, the meter will enforce the login when session is gone or access is denied + + + + + Enable raw record logging, if set every incoming package will be logged + + + + + Detected pulse adapter communication on request port + + + + + Enable use of registers that are not valid (last version not match the current app) + + + + + All parameters stored in the SOFTWARE of GenesisMeter: NOT IN THE METER + if you want to read them from meter use + if you want to set them to meter use + + + + + All applications defined by configuration.json + + + + + request port assignment/info + + + + + request protocol assignment/info + + + + + streaming port assignment/info + + + + + streaming protocol assignment/info + + + + + to reduce the IrdA communication in test bench, preparation will be done once (when SkipPreparationForTestBench is true) + + + + + Response received after request for record + + + + + do not use it to set ProcessStatus + if you want to change ProcessStatus of this genesis use + is just store for some routines + + + + + if state is change + + will be invoked. + on some states other events will be invoked as well + + + + do not use it to set ErrorStatus + if you want to change ErrorStatus of this genesis use + is just store for some routines + + + + fires up + + + + + Logged in to device + + + + + Logged in to device + + + + + Hold the current process name e.g. FlowTest, Preadjustment for logging + + + + + Unlocked the property change ability for special sequences. + + + + + + + + Unlocked the property change ability for special sequences. + + true if unlock required + true if possible + + + + Set the meter size if previously unlocked + + + true if possible + + + + Set the pressure sensor if previously unlocked + + true if setting is allow + true if possible + + + + Returns meter registers + + + + + + + + + Setup water meter from configuration file: + -slot, + -streaming protocol, + -streaming port + -request port + + + + + + + + Setup water meter from parameters (no config file): + - slot + - request port + - streaming port + + + + + + + + just internal setup. called on ctor or from vb6 setup function + + Slot Number for test-bench + for RFID/UART/IrDA Port + for LED Port + don´t send CRC error or telegrams with error flag to caller + + 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 + + + + + + Start Event listening, has to be called after + + + + + Add a port to working queue + + On should one once added in runtime + + + + + Synchronization of the record for the streaming interface + + + + + + + + + + + + + + + + + + + + + + + + + + + + call this if session is expired and you need a re-authorization + + + + + A helper to invoke events only if someone is listening, otherwise nothing will happen + + Event handler to call + Sender (can be null) + Event arguments (can be null) + + + + + + + + + Track all incoming led record packages (Calibration and Flow) + + + + I should be or + otherwise this method does nothing + + + + + tracking request record processing + + + + + + + QueryCaps can send before login + arrange record for communication (e.g. Baud rate) + + + Running outgoing command + + + + + The backup login level is needed for re-authorization + + + + + SetRegister to loginLvl and wait for response + + + true = process command; false = add command to list. call + to process login command + if is completed and no error occurred it is true + + + + Set + + if null , use password from initialization + true = process command; false = add command to list. call + to process login command + + + + + + Clear password to force new password reading + + + - Initial. + + + + + Acquires the password from WEB-API. + + password + + - Initial. + + + - PcbId handling improved. + + + - PcbId unknown returns immediately. + + + - Password had been reset to empty string if read from file, corrected! + + + - Used + + + - Optional the offline passwords will be used. + + + - BUGFIX: Avoid request of password from DB if offline password usage fored. + + + + + + Get password from server + + + + + + - Initial + + + - Immediately returns if already logged in. + + + + + Starting a timer to keep session active, + starting the . + + password string to log in + true = process command; false = add command to list. call + to process login command + + + + pass runImmediately for auto login + + + - Avoid retries during login, a retry will lock the Genesis for 2s, 4s, 8s, 16s and so on. + + + - Quick login removed. + + + - Pulse module deactivated at login. + + + - REMOVED: Pulse module deactivated at login. + - Skip FW readout to quickly connect being able to immediately switch off the pulse mode before App detection. + + + + + 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. + + version as hexadecimal result of version e.g. 0x1107 or 0x130B + any string to evaluate like "11.07" or "R1.1.07" or "1.3.0B" + most significant byte representing the major and minor version + last significant byte representing the built version + will force to reduce the string output of FW version to e.g. "1107" + FLEXNET version string e.g. "R1.2.47" or "B1.2.0C" + + - Initial. + + + - Removed the optional leading "B" or "R" on strVersion input to create the fwVersion. + + + - . + + + + + 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" + + firmware version as decimal e.g. 234 + most significant byte hex + last significant byte hex + converted as string e.g. "2.34" or "2.0C" + + - Initial. + + + + + 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" + + firmware version as hex + converted to "2.34" or "2.0C" + + - Initial. + + + + + Building the FW Version string out of Int32 as decimal input. + Example: + Input fwVersion = 238, + Outputs string "2.38" + + firmware version as hex + converted to "2.34" or "2.01" + + - Initial. + + + + + Check region and size. + After reading the version, all valid registers are going to be selected. + + + - Initial, extracted from + + + - Frequency indicator == 0 means it is a NA-Region Octopus with EMEA FW installed. + + + - Pressure sensor detection. + + + + + Build a list of all registers based on the interface (configuration.json) and the installed + meter applications with a specific version. + + + - Initial, extracted from + + + - Excluded register versions explicit specified in the 'configuration.json' as version.exclude list. + + + - Excluded all registers from apps which are NOT installed (isInstalled == false). + + + + + ...MF + + + + + + 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. + + + - Removed "Cordonel " from CoreRevision to have the e.g. "1.64" remaining + + + - Read radio frequency + + + - Read lockup table CRC, + - Read meter size. + + + - Read lockup table CRC bugfix with try, catch for legacy versions, where this register does not exists. + + + - 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?. + + + - Checked meter size string for "DN", then it cannot be an EMEA version. + + + - Removed retry as this will be handled by the . + + + - Remind installed FW version of FLEXNETVERSION for StoreAllConfigurations. + + + - 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! + + + - Build dictionary for debug to observe if configuration.json contains overlapping versions. + + + - 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. + + + - BuildFlexnetFwVersion, + - Calculate core revision. + + + - 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. + + + - Handle the interface compatibility FW version with short string like "1421" and discrete FW versions. + + + + + ...MF + helper + + + + + + ...MF + + + + + + + Automatic login to meter enabled if logged out by lost authentication + + + + + If the timeout timer elapsed to keep the session active, this routine will be called + awaking the . + + + + + + + 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 and aborted on + + + + + + + + + Check if EMPTY_PIPE or REBOOT is set + + + + + + Check if alarmToCheck is set on register + + is Flags so you can use more than one alarms (like Alarm.EMPTY_PIPE | Alarm.REBOOT) + + + + + Read out all AlarmStatus register and combine them to one + + + + + + + + + Reset the empty pipe alarm + + + + + Reads the PCB Identification, can be accessed at all login levels, + Read Privilege is always needed to BUGFIX read access to PCB ID + + PCB ID + + - PcbId handling improved. + + + - PcbId handling improved, + - Removed retries as these are handled by the protocol. + + + + + Get the actual register dictionary + + + + + + Serial number of meter married with PcbId + + + + + + + + + Event to Sync Register on MeterSide and + Fired on Write or read register + + + Register to update with value to update + + + + Write Register, optional: wait for result and validate, + write register will ALWAYS log the data DON'T use for password write + + Data type of Register + Register to change + Value to save + wait until result is ready + check the content of the register by read back + skip retries on this error code return + true on successful operation + + - Changed sensitive information from "*****" to SHA256. + + + - PreRegisterWrite enabled to check register accessibility and range. + + + + + Read Register and return byte array + + + expected length for response + skip retries on this error code return + + + - Changed sensitive information from "*****" to SHA256. + + + - Date size directly from register object. + + + + + Execute request protocol and acts on response code. + + + - Removed throw because the throw always kicks in to + the FW-Update process causing an unpredictable stop! + + + - Remind last communication acknowledge code. + + + + + Send UI1236 command + + + - Initial + + + + + Clear Ports + + + + + + + + + + + Soft reset of meter runtime state. + Keeps ports, protocols, configuration, PCB and password intact. + + + + + + + + + + + Set the process state to display and to the production database + + + + + + + + + + + + Check for min and max of register values to avoid out of range access + + + + + - Initial + + + - Reactivated to validate the register range. + + + + + Common routine for reboot being able to override this routine which will be called in + MeteResetPsu to simulate a reboot. + + + + - Initial. + + + + + Executes all StoreConfiguration and StoreCalibration for each application. + + true if all configurations are stored + + - Initial + + + - Corrected logic to enter write and read loop, + - Removed SENSUSRADIO from read check as it returns NULL on read of StoreConfiguration. + + + - After write store configuration extended sleep. + + + - Removed comparison of allConfigRegisters less than 8 because the NA version has fewer registers and new + apps will have a new register. + + + - Removed temporary NA2ALARMS read back as this has no handler in the FW. + + + - Store first all configurations for every app in a bulk then read the status back. + + + - Installed FW version taken to enable read back for radio and na2walarms. + + + - Changed threshold check from decimal 1200 to hexadecimal 0x1200. + Cl + + + + Upload app list to database + + + + + - Initial + + + - Using MetrologyUpgradePermission to flag if metrology is updateable as for "NA" versions this is the case. + + + - returns status. + + + + + Backup current register dictionary to database + + + + + + Logging of register write processes to meter + ATTENTION: DON'T USE FOR PASSWORDS! + + + + + - Hide all file access commands and passwords. + + + + + Storage of calibration values + + + + + + + + Dummy + + + - Initial. + + + + + Dummy + + + - Initial. + + + + + Copies safe runtime/configuration state from this GenesisMeter + to another GenesisMeter instance. + + Intended usage: + + GenesisMeter existingMeter + ↓ + ZeroFlowGenesisMeter newMeter + ↓ + existingMeter.CopySafeStateTo(newMeter) + + Notes: + - does not copy ports + - does not copy protocols + - does not copy threads/timers + - does not copy events + - does not copy logger instances + - does not copy register containers + - target keeps its own construction/runtime infrastructure + + + + + Calibration factors for all channels + + + + + Registers needed to store the calibration for the individual channel + + + + + + + + + + + + Just stop recording without calculation + + + + + + + + + + + + + + List of ongoing measurements, base- and calibration-measurements + + + + + All channels required to process + + + + + Quality watch mode can be used to decode intermediate records and check + for actual quality of the measurements. + + + + + + Perpetration of Measurement + SampleRate 10 and Led mode Test + + + + + + + + + + + Testing the flow direction + + + + + + + the first measurement is ALWAYS a FlowTestRecord due to the underlying routine logic. + + + + + The first measurement is ALWAYS a FlowTestRecord. + + + + + + + + + + + Calibration content + + + + + has been calibrated + + + + + Channel for calibration + + + + + Register to store the calibration + + + + + Ctor for calibration factor + + + + + + + set the user readable relative (around 1.0) calibration factor + and convert it to the raw calibration factor for the meter + + + + + + + Read the relative (around 1.0) calibration factor calculated from the actual + meter calibration factor divided by the default calibration factor + + + + + + Genesis internal raw default value (around 15625) + + + + + + Set the meter raw calibration factor (around 15625) + + + + + + Get the meter raw calibration factor (around 15625) + + + + + + Check the positioning of the streaming LED to validate the quality of the communication line + + + + + Backup of last quality + + + + + Quality check is active + + + + + Kick off the streaming quality check. + + + + + + + Stop the streaming check. + + + + + + + + + + + + + Number of records received (read line for LED message) + + + + + Total records decoded + + + + + Total errors + + + + + Validated without errors + + + + + Expected lines + + + + + Time + + + + + Error counter + + + + + The real result of quality check + + + + + + + + The quality result as dummy zero + + + + + 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. + + + + + Genesis for test access + + + + + Auto-detected port name + + + + + Port scan result event for message dispatcher to caller + + + + + Stop the port scan + + + + + Number of ports + + + + + Actual Port Counter + + + + + Returns the port scan state + + + + - Initial + + + + + Ctor + + true if one port has been validated + + - Initial + + type of communication port to meter like IrDA + + + + + - Initial. + + + - Remove all meters removed as _meterBatch.Dispose will remove all meters. + + + + + 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. + + slot to search for + configuration of port to speed up search + true if port found + true if one port has been validated + + - Initial + + + - Port type from Ctor, + - Event message changed: + - Overall message: ctr / counts - ongoing scan, + - Actual message: Information to log + + + - Changed exit of function, + - Added configuration file handling. + + + - Remove all meters removed as _meterBatch.Dispose will remove all meters. + + + + + JSON filer reader for generation of register lists + + + + + Registers defined in configuration.json file + + + + + Applications defined in configuration.json file + + + + + Information collected during 'configuration.json' read + + + + + Ctor + + + + + Ctor + + the file path for configuration.json as interface description to the meter + + + + Convert file content to register list + + + + + + - Initial. + + + - 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. + + + - Extract the max supported versions for EMEA and NA to check the supported FW. + + + - Supported application list introduced. + + + - Data size introduced including the new 'ByteArray' type and size to get rid of new defined 'uintxx_t' + data types. + + + + + Settings + + + + + Convert data types from interface 'configuration.json' to CLR type or array + + + type + + + - Initial. + + + - Parsed all 'uintxx_t' which are not based on CLR types to byte-array + + + + + Build the data size + + + size + + - Initial: - parsed all 'uintxx_t' which are not based on CLR types to byte-array + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to ERROR: Missing or invalid register definition (configuration.json)! Search in:. + + + + + 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!. + + + + + Looks up a localized string similar to ERROR: Could not find a CSD parameter in register list!. + + + + + Looks up a localized string similar to ERROR: Could not find register in register list! Check configuration.json for latest version!. + + + + + Looks up a localized string similar to ERROR: Could not write register!. + + + + + Looks up a localized string similar to Read back. + + + + + Looks up a localized string similar to Access request.. + + + + + Looks up a localized string similar to Failed to open.. + + + + + Looks up a localized string similar to Ports listed in the Windows device manager.. + + + + + Looks up a localized string similar to Automatic port scan started.. + + + + + Looks up a localized string similar to Successfully accessed.. + + + + + Looks up a localized string similar to Read register. + + + + + Looks up a localized string similar to Reading registers after maintenance. + + + + + Looks up a localized string similar to Reading registers before maintenance. + + + + + Looks up a localized string similar to Compare register. + + + + + Looks up a localized string similar to ERROR: Comparison failed!. + + + + + Looks up a localized string similar to Successfully compared.. + + + + + Looks up a localized string similar to Execute configuration sequence..... + + + + + Looks up a localized string similar to Finalize configuration sequence..... + + + + + Looks up a localized string similar to Prepare configuration sequence..... + + + + + Looks up a localized string similar to ERROR: Register value is out of range!. + + + + + Looks up a localized string similar to Cordonel not detected!. + + + + + Looks up a localized string similar to Scan port. + + + + + Looks up a localized string similar to WARNING: Register value set to default. + + + + + Looks up a localized string similar to Write register. + + + + + Read, compare and restore if unequal al registers marked with + equals + ". + 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. + + + + + PCB ID for pre update read for comparison + + + + + PCB ID for pre update write for comparison + + + + + PCB ID for post update for comparison + + + + + Collection of recovery registers - programming parameters + + + + + Marker for restore after reboot parameters + + + + + Register content on initial connect to keep those during update + + + + + Register content after all operation had been performed + + + + + Register which shall be restored after change of FW or after register recovery + + + + + Register access event for message dispatcher to caller + + + + + List for un-reversed parameters which can be written, all others need to be swapped byte-wise + + + + + 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. + + + + + 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! + + + - Initial to restore values which do not survive the reboot as workaround for R1.4.22 and below. + + + + + Registers manually explicit excluded for in-field updatable parameters for the CUST to prevent inadvertent + modifications resulting in potential MID violations. + + + Defined by M.C., J.L. and A.F. with the file: 'FwUpdateController.cs-GetRecoveryFile()-2507160616.xlsx'. + + + CUST 2.8.14: + - Added: - ’SENSUSRADIO_WakeupInterval’ to keep radio active after CUST run + - Removed: - 'GENESISFLOW_SealDisplay' being able to modify display resolution + + + + + Registers manually explicit excluded from reading as those do not contain useful information. + Applies for RW commands not RPC data type. + + + + + Pre-programming parameters for all devices defined here, will be filled with radio parameters + if meter has radio + + + + + Registers which failed the comparison + + + + + Name of registers which should be restored after reboot if the compare failed. + + + + + Post programming parameters for all devices + + + + + Post programming parameters for EMEA region as NA region doesn't have radio and seal display shouldn't + be executed. + + + - 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. + + + + + Post programming parameters for EOL (end of line, prepare for shipping workplace) + + + + + Actual register counter + + + + + Genesis meter object + + + + + Struct to observe replacements + + + + + Ctor + + + + + + Renew meter for Unit tests based on different meter + + + + + + Assign new genesis after reboot and keep the RegisterRestorer object. + + + + - Initial + + + + + Enable comparison from external set registers for read back with written value + + + - Initial + + + + + Export list of programming parameters to file being able to use it for test purposes. + + + + + + + - Initial. + + + + + 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" + + + path where all raw parameter examples are stored + Region for configuration + Meter size for programming parameters + + + + - Initial. + + + + + 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 ). + The priority of the parameters forced by its source is: + - CSD (highest), + - VAKO, + - Order based or standard config (lowest). + + unprocessed data, not filtered by the priority and un-reversed + 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" + error message for caller + field update forces to use the 'fieldUpdateBlacklist' to remove parameters + + + - Initial imported from . + + + - 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. + + + - Debug for overwriting VAKO with CSD including real values. + + + - Remove '_fieldUpdateBlacklist' parameters for the CUST to prevent inadvertent modifications resulting in potential + MID violations, + - Debug log of blacklist caused removals. + + + - Debug lists generation sequence changed. + + + + + Collect programming parameters from DB. + + + registers key value pair from database + error message from parameter analysis + field update forces to use the 'fieldUpdateBlacklist' to remove parameters + recovery registers + + - Initial. + + + - Sort the registers from DB but keep the PrepareProgramming and FinalizeProgramming in the required sequence. + + + - 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. + + + - Data base access imported to have a common interface for programming parameters for EOL (shipping) and CUST. + + + - Removed prohibited parameters. + + + - Added un-reversed parameters based on data type (string, uint128). + + + - Check and validate register values with installed or intended to be installed FW and given + configuration.json. + + + - Exported register range check to . + + + - Debug lists for CSD and VAKO parameters. + + + - 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 + + + - Error message. + + + - Remove '_fieldUpdateBlacklist' parameters for the CUST to prevent inadvertent modifications resulting in potential + MID violations. + + + + + EOL (end of line) programming contains a reset of the accumulators. Else it is identical with recover + registers. + + list of registers to update from database without special sequence + + + true if setup succeeded + + - Initial. + + + - CancellationToken. + + + + + Validate the range of the register. + + register key value pair + register definition by configuration.json + error message if range check failed + check default value and supply warning + status + + - Initial, imported from + + + - Leave the message generation to the + + + + + Recover all registers set from caller. Additional preparation and finalization will be added. + settings. + + list of registers to update from database without special sequence + + + field update, if not set EOL (end of line) programming with accu reset + true if restoring succeeded + + - Initial. + + + - Return true if already recovered, + - replace _restoreRegisters with new value. + + + - Added preparation and finalization of register recovery giving the ability to log this in the report. + + + - Moved register dictionary value set to inner try catch loop to avoid early exit if one register is + unknown. + + + - Logging of some exception messages. + + + - EOL sequence for accumulators reset, + - Remind pcbId as already recovered before the true return, + - Exclude lock of repeated execution for EOL. + + + - Avoid writing of parameters if not writable. The DB delivers parameters which exclusively have to be + compared to the specified value. + + + - Register list changed from RegisterDefinition to RecoveryRegisterItem list, + - Preset RecoveryRegisters if not set as those have to be compared later on. + + + - Add only registers to recovery list which are found in the generated register list based on installed + applications. + + + - Avoid writing of NOT writable registers. + + + - Check register limits, if those are out of range avoid writing and log warning message. + + + - Exported register range check to . + + + - Removed skip recovery if already done in previous run to enable a retry. + + + - Seal display and Sensus radio to EMEA finalization. + + + - Exported write routines to . + + + - CancellationToken. + + + - Remove '_fieldUpdateBlacklist' parameters for the CUST to prevent inadvertent modifications resulting in potential + MID violations. + + + - Login/Logout moved to . + + + + + Write a parameter set: + - + + + + + + + + + - Initial imported from . + + + - CancellationToken. + + + - Temporary excluded un-comparable registers from write as this make no sense to write them blind being + unable to read the correct value back. + + + - Remove '_fieldUpdateBlacklist' parameters for the CUST to prevent inadvertent modifications resulting in potential + MID violations. + + + - Excluded un-comparable registers from write turned back on ('blind' writing enabled again). + + + - Login/Logout moved here. + + + - Redundant OOR message removed. + + + + + Restore and compare all registers which did not survive a reboot and are listed in the + + - This is a workaround for a FW-bug in R1.4.22 and below. + + + + + - Initial. + + + - Leave the initial 'RecoveryRegisters' intact. + + + - Leave the initial 'FailedComparisonRegisters' intact. + + + + + Compare all registers which can be restored without new access to meter. + + + + true if equal + + - Initial. + + + - Compare registers reactivated based on new interface (configuration.json) with new + "StaticType": “approximate”. + + + - Removed as those will change on e.g. FW update. + + + - Avoid message event if message is empty. + + + - Remind registers which failed the comparison including values. + + + - Register list changed from RegisterDefinition to RecoveryRegisterItem list. + + + - Removed all registers from comparison which are neither static nor approximate. + + + - 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. + + + - Add only registers to recovery list which are found in the generated register list based on installed applications. + + + - Used RecoveryRegisters WriteValue and ReadBackValue for comparison. + + + - Hash password and encryption key with SHA256. + + + - CancellationToken. + + + - Take 'null' in readBack into account due to communication error. + + + - _restoreAfterRebootIfCompareFailed. + + + - Made method static. + + + - Avoid clearing of failed registers + + + - Leave the initial 'RecoveryRegisters' intact. + + + + + 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). + + + true if registers could be read + + - Initial. + + + - Build here the post update registers, they may have changed due to update! + + + - Clear pre update registers if post indicates a different PCB ID to avoid wrong overwriting of + registers to non-matching new meter. + + + - Return true if already executed in previous run. + + + - Return false if PcbId between initial- and final-read does NOT match return false. + + + - Allow final read out as often as called even if done before. + + + - Register list changed from RegisterDefinition to RecoveryRegisterItem list. + + + - Backup _finalRegisters to RecoveryRegisters. + + + - Check readBack value for null. + + + - CancellationToken. + + + - Cleared all failed compare registers and the restore after reboot registers as a new reading + will give it a new chance to compare it. + + + + + 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 equals ". + The defined registers are based on the "configuration.json" and the installed application with + a specific version. + + + true if registers could be read + + - Initial. + + + - Stored registers before and after update. + + + - Extended register check. + + + - Removed after update registers and moved them to FinalReadRegisters. They may have changed + during the update. + + + - Deny register pre update if _pcbIdPreUpdate indicates, that this has been already processed. + + + - Removed login/logout, + - if _initialReadRegisters and _restoreRegisters are filled, return true. + + + - Register list changed from RegisterDefinition to RecoveryRegisterItem list. + + + - CancellationToken. + + + - CancellationToken. + + + - Repaired building of initial register list. + + + + + 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. + + all readable registers dictionary creation + true if register dictionary is not empty + true if registers could be read + + - Initial from . + + + - Register list changed from RegisterDefinition to RecoveryRegisterItem list. + + + - Excluded registers which do not contain useful information. + + + - Sequence resorted. + + + + + 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. + + + true if registers could be read + + - Initial. + + + - Register list changed from RegisterDefinition to RecoveryRegisterItem list. + + + - CancellationToken. + + + + + Read predefined registers from RecoveryRegisters. + + + + true if registers could be read + + - Initial. + + + - CancellationToken. + + + - Leave the initial 'RecoveryRegisters' intact. + + + + + 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 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. + + registers to read + + true if registers could be read + + - Initial. + + + - Set value to actual process message. + + + - Added PCB ID to logging. + + + - Removed PCB ID from logging. + + + - Simplified input of set of registers to read. + + + - Set raw values in register dictionaries. + + + - Extended try catch to avoid break on one register failed. + + + - Filtered restore registers to access only if assigned, + - Logging of some exception messages. + + + - Register list changed from RegisterDefinition to RecoveryRegisterItem list. + + + - CancellationToken. + + + - Date size directly from register object. + + + + diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll new file mode 100644 index 000000000..bc6c40b3f Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll.config b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll.config new file mode 100644 index 000000000..c764f5323 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll.config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.pdb new file mode 100644 index 000000000..ca7c1676f Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.dll new file mode 100644 index 000000000..34db3c96c Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.pdb new file mode 100644 index 000000000..de9edebe7 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.dll new file mode 100644 index 000000000..15027e1ee Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.pdb new file mode 100644 index 000000000..3330639ad Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.xml b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.xml new file mode 100644 index 000000000..8c4245568 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.xml @@ -0,0 +1,697 @@ + + + + Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol + + + + + Commands that the genesis meter support over the request protocol. + Functional Specification Breeze Core and Applications Revision:3.03(12748DOC11 - functional spec ICOE472.pdf) + + + + + 9.2.5 + Command 0x00 (NOP) + This command will do nothing, and will have no response. + + + + + 9.2.6 + Command 0x01 (Query capabilities) + This command will be used by the external computer to discover the protocol parameters that may be varied. + These can then be compared with the external computer’s capabilities and the best match selected. + + + + + response on + + + + + 9.2.7 + Command 0x03 (Set capabilities) + Used to finalize the baud rate and packet settings after negotiation. + The reply will be sent at the currently selected baud rate and packet length, + after which the settings will take effect + + + + + response on + + + + + 9.2.8 + Command 0x05 (Train) + This command will perform target driven data training, that is, where the target is in control of the data flow. + See also command 0x11. + + + + + response on + + + + + 9.2.9 + Command 0x07 (Repeat last) + Used by the external computer to request the last response to be resent, for example if it was found to be corrupted. + Note that the response 0x08 will never be sent, the reply to command 0x07 will be a verbatim resend of the last response. + + + + + response on + + + + + 9.2.10 + Command 0x09 (Read data) + This command makes reads of any random selection of configuration registers, up to the maximum packet size negotiated. + + + + + response on + + + + + 9.2.11 + Command 0x0B (Write data) + This command makes writes to any random selection of configuration registers, up to the maximum packet size negotiated. + + + + + response on + + + + + 9.2.12 + Command 0x0D (Multiple read data) + This command makes reads of one register multiple times, which will be more efficient than performing successive reads using command 0x09. + This command will be available from protocol version 0.40, for earlier protocol versions command 0x09 should be used. + + + + + response on + + + + + 9.2.13 + Command 0x0F (Multiple write data) + This command makes writes to one register multiple times, which will be more efficient than performing successive reads using command 0x0B. + This command will be available from protocol version 0.40, for earlier protocol versions command 0x0B should be used. + + + + + response on + + + + + 9.2.14 + Command 0x11 (Set level) + This command will perform external driven data training, that is, where the external computer is in control of the data flow. + This command will be available from protocol version 0.42, for earlier protocol versions command 0x05 should be used. + + + + + response on + + + + + Config Exchange error codes. + + + + + Transport errors for request protocol + + + + + List of constance for error codes from genesis meter + + + + + everything is fine + + + + + Port is not open + + + + + fails to write to serial port + + + + + fails to read from serial port + + + + + Command is to long + + + + + deeper exception, check out log if this happen + + + + + wrong CRC + + + + + something strange + + + + + Timeout occur + + + + + Acknowledge feedback from meter after communication + + + + + Acknowledge code for unassigned command + + + + + Will be used initially as the record is not sent + + + + + Response missing + + + + + Response command not match the required command + + + + + Lost connection (logged out from meter), a re-authorization is required + to access this command and/or register + + + + + Meter error received, a retry may be useful + + + + + The response record couldn't be decoded + + + + + The meter sent a wakeup message instead of the required data + + + + + Valid meter response record + + + + + Holds all errors can occur on the request protocol + + + + + Exception occurred on this command + + + + + Exception occurred while receiving this data + + + + + Error is interpreted and has a define error code + if its not null is Genesis.Protocols.Request.Const.ConfigExErrors + + + + + Error is interpreted and has a define error code + if its not null is Genesis.Protocols.Request.Const.HighLevelError + + + + + Ctor with only message + + error message + + + + Ctor with message and + + error message + + + + + Ctor with message, and + + error message + + + + + + Holds request commands with detail parameters to see processing state + + + + + Indicates the base command + + + + + the register the command refers to. + needed to set Register dictionary to link response with dictionary key + + + + + Command acknowledged + + + + + Retry counter + + + + + Wakeup-message retry counter + + + + + indicates error base on + + + + + indicates error reason on + + + + + Combined error code of base and reason + + + + + Chunk position of error on multiple read/write access + + + + + Data containing the request protocol + + + + + Encoded with transmit protocol, ready to stream to port as is + + + + + Extracted payload of response + + + + + Extracted payload of response + + + + + avoid logging for e.g. password + + + + + error mask to skip retries for functional errors + + + + + Ctor for an base command + + as an byte + Request protocol data for logging + Ready to send data encoded with transmit protocol retries + Timeout for response + to do command with + hiding data in log file to avoid spying of passwords + error mask to skip retries + + + + + if session is gone and a re authorization is necessary + + + + + + Ctor + + this command will be resend after authorization + + + + Command to resend + + + + + a bidirectional protocol support read and write genesis meter registers + needed for + + + + + FIFO of records to be send next + + + + + This is the actual record in the send loop + + + + + Last communication time for session refresh + + + + + + + + + + + Occurs when a meter Response for write password is good + + + + + Event after a register entries changed + + + + + User adjustable additional retry timeout. This is 0 ms for standard operation. + + + + + + + + Process all records needed to be sent, this routine has to be called + to kick-off the communication of all RequestRecords saved to the send + FIFO + + + - Initial + + + - Logging of raw RequestProtocol at time of sending, + - Logging of retries. + + + - Added timeout from transmit protocol. + + + - Added reorder FIFO to bring login at first position + + + - Hide data in logging for e.g. passwords + + + - Retry counter reset if authorization required and this record will be put back into FIFO, + - Retry delay corrected for all errors. + + + - Dynamic retry delay: ResponseTimeoutMs * Retry counter. + + + - Skip retries on specific error mask to speed up communication on functional errors + or informational feed backs (e.g FW not installed 0x0004) + + + + - User adjustable additional retry timeout. + + + - Response timeout message output, + - Initialize acknowledge code before communication to NoResponse. + + + - Response timeout deviated from system time. + + + - Avoid enqueue of _recordInProcess if retry counter is 0. + + + - Additional DEBUG information included about FIFO and loops. + + + - Command not assigned response for recordInProcess == null. + + + - Initial request acknowledge state changed from NotDecoded to NoResponse. + + + + + Assemble record with transmit protocol and put it to record-send-FIFO, + backup the ready-to-send, which is the dataEncodedWithTransmitProtocol, + to the RequestRecord object for sending including the retry capability. + + Data package with all details like CRC, etc + Command identifier + which is intend + hiding data in log file to avoid spying of passwords + error mask to skip retries + the assembled record for the send FIFO + + - Initial + + + - Logging of raw data (RequestProtocol) moved to ProcessRecordList. + + + - Added timeout from transmit protocol. + + + - Hide data in logging for e.g. passwords + + + - Skip retries on specific error mask to speed up communication on functional errors + or informational feed backs (e.g FW not installed 0x0004) + + + + - Initial skip retry error code set to 0x0004 (e.g FW not installed 0x0004). + + + - Hide data in log forwarded to DecodeDateForPhysicalLayer to hide passwords in log files. + + + + + Record dispatcher to send FIFO of UI1236 command + + + - Initial + + string for logging of slot + Data package with all details like CRC, etc + which is intend + hiding data in log file to avoid spying of passwords + error mask to skip retries + the assembled record for the send FIFO + + + + Called after successful response. + Decode and check record, handle Errors and dispatch result. + Invokes if somebody is listening + + + - Initial + + + - First part reworked to extract the response protocol information + + + - Hide data in logging for e.g. passwords + + + - Error code extraction changed for + + + - Wakeup-message will avoid further timeout (during FW update this is in the range + of 15000ms). + - Allow one additional retry on decoding error, which is often the wakeup-message. + + + - Send time reminder for timeout time calculation as output in log-file, + - OnRecordIsDecoded?.Invoke moved before return to assure that the Acknowledge status is set. + + + - Avoid activation of wakeup retry if record is meanwhile acknowledged. + + + - Wakeup message handling changed, + - Multiple replies on wakeup message allowed. + + + - On wakeup message 5 retires are allowed to avoid an infinite loop. + + + - On wakeup message exit this routine. + + + - Early exit on _recordInProcess == null, + - Wakeup message retries from 5 to 2, + - Removed error base from error code decision as error base is only the AppId + + + - HideDataInLog. + + + - Ignore wakeup if message already acknowledged (avoid to set + "_recordInProcess.Acknowledge = RequestAcknowledgeState.NotDecoded"), + - Avoid to overwrite "_recordInProcess.Acknowledge = RequestAcknowledgeState.Acknowledge" with + "RequestAcknowledgeState.WakeupMessage". + + + + + Method to send basic Commands to Meter. Creates an integer of 4 bytes for the payload. + Supported Commands are: ,, + , and . + Calculate CRCs and Command length and check if command is valid. + Use to push data to Port/Meter. + + + Supported ,, + , and . + + Register to Read or Write, null for + + Data to push into the . + must be null on Read Commands ( ,) + and not null on WriteData ( and ) + + + hiding data in log file to avoid spying of passwords + mask to skip reties on error + an new command just send to port/meter + + - Initial + + + - Reworked to zero pad payload with chunks of 4 bytes, the caller needn't take care of the size + + + - Corrected payload content in request protocol + + + - Hide data in logging for e.g. passwords + + + - Skip retries on specific error mask to speed up communication on functional errors + or informational feed backs (e.g FW not installed 0x0004) + + + + - Multiple read for string split to simple reads. + + + - Default set. + + + - MultipleReadData based on data size. + + + - Exit multiple read date if retries exceeded. + + + - Exit multiple read date if retries exceeded increased to . + + + - Rewound to version from 06.09.2023 14:44:33 before Commit 8c9d7704. + + + - Removed useless too short comments as every string is going to be delimited by a 0 and usually won't match + to a 4 byte chunk. + + + - Removed redundant 'return cRecord'. + + + + + Analyzes the error code + + + + + Reorders the record list so that first entry is the defined topRegister + + + + + + Checks the active register to access + + + + + + diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.dll new file mode 100644 index 000000000..5e277f02f Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.pdb new file mode 100644 index 000000000..e00b711d6 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.xml b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.xml new file mode 100644 index 000000000..497478d25 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol.xml @@ -0,0 +1,144 @@ + + + + Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol + + + + + + Layer between CRC16CCITT handler and Events + block trashy telegrams + + + + + Decode data and hold results + + + + + + + + + + + + + + Data fields and definitions for GENESIS streaming protocol + + + + + Default data for bend detection tests of Genesis + + + + + Default data for flow tests of Genesis + + + + + Default data for calibration of Genesis + + + + + Constructor initializes all decoded members with default values + + + + + Calibration data + + + + + Flow test data + + + + + Bend detection test data + + + + + Decoding the raw message + + message received as one line delimited with LF + true if decoding was successful and data has been validated + + - Modified using common CRC check before branching to the protocol specific decoder. + + + - Introduced protocol 'm' for bending detection. + + + + + Extracting message from string fields for protocol 'm' + + reference to bend detection test record + Separated fields containing the measurement as string + + + - Modified using common CRC check in advance. + + + + + Extracting message from string fields for protocol 'f' + + reference to flow test record + Separated fields containing the measurement as string + + + - Modified using common CRC check in advance. + + + + + Extracting message from string fields to individual raw channel for protocol 'g' + + Reference to result structure for raw data for one channel + Separated fields containing the measurement as string + true if protocol is valid + + - Usage of VolumeFactorRawToQm and calculation of AccuDutOverflowVolumeCm + + + - Modified using common CRC check in advance. + + + + + Extracting message from string fields to individual raw channel for protocol 'g' + + Reference to result structure for raw data for one channel + Separated fields containing the measurement as string + true if protocol is valid + + - Usage of VolumeFactorRawToQm and calculation of AccuDutOverflowVolumeCm + + + - Modified using common CRC check in advance. + + + + field position in protocol 'f' + + + field position in protocol 'm' + + + field position in protocol 'g' + + + field position in protocol 'h' + + + diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Registers.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Registers.dll new file mode 100644 index 000000000..dcfbc84b6 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Registers.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Registers.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Registers.pdb new file mode 100644 index 000000000..b8eb86b99 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.Genesis.Registers.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.dll new file mode 100644 index 000000000..ad1316027 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.pdb new file mode 100644 index 000000000..55ee4158d Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.xml b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.xml new file mode 100644 index 000000000..b39ad1b48 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages.xml @@ -0,0 +1,81 @@ + + + + Xylem.Common.Hardware.WaterMeter.MagFlux.DataPackages + + + + + Used as structured calibration converter from liters per second to + cubic meters per hour and vice versa + + + + + Reference meter flow rate - unit free for use + + + + + DUT meter flow rate - unit free for use + + + + + + + + new record from Stream + + + + + + + + + EventArgs for Request Responses + + + + + Request response from meter + + + + + + + + + struct to hold Led record for protocol L (contains measurement record) + + + + + Sensor Id of MagFlux + + + + + Serial number of MagFlux + + + + + Status of sensor and electronics + + + + + String delimiter to separate elements in ToString() routine + + + + + Get result as string + + + + + diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxConfig.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxConfig.dll new file mode 100644 index 000000000..f2a825a95 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxConfig.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxConfig.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxConfig.pdb new file mode 100644 index 000000000..5ec54fdf0 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxConfig.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxCore.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxCore.dll new file mode 100644 index 000000000..e01af164b Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxCore.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxCore.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxCore.pdb new file mode 100644 index 000000000..73aa3900d Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxCore.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.RequestProtocol.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.RequestProtocol.dll new file mode 100644 index 000000000..da78f17b3 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.RequestProtocol.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.RequestProtocol.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.RequestProtocol.pdb new file mode 100644 index 000000000..4dddd23f4 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.RequestProtocol.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.StreamingProtocol.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.StreamingProtocol.dll new file mode 100644 index 000000000..15e944356 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.StreamingProtocol.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.StreamingProtocol.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.StreamingProtocol.pdb new file mode 100644 index 000000000..3a20c895d Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.MagFlux.Protocols.StreamingProtocol.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.dll new file mode 100644 index 000000000..74f9c4baa Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.pdb new file mode 100644 index 000000000..c526152f7 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.xml b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.xml new file mode 100644 index 000000000..e486e0649 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterCore.xml @@ -0,0 +1,668 @@ + + + + Xylem.Common.Hardware.WaterMeter.WaterMeterCore + + + + + Applies an action to a list of meters in a separate thread + + + + + Starts a new task for a list of meters + + + + + + Apply a single action to a specific meter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Display codes to keep the user informed about the production and processing step. + This is useful as the user doesn't need to connect the device to a PC, he can + immediately inspect the status of the device. + + + + + Status not set + + + + + Error state + + + + + Picking in progress + + + + + Picking succeeded, next step can be initiated + + + + + Picking failed + + + + + Pressure testing succeeded, next step can be initiated + + + + + Pressure test failed + + + + + Pressure test failed + + + + + Connection between PCBID, Serial Number and Order number done + + + + + Zero flow test succeeded, next step can be initiated + + + + + Zero flow test failed + + + + + Flow calibration succeeded, next step can be initiated + + + + + Flow calibration failed + + + + + Flow test succeeded, next step can be initiated + + + + + Flow test failed + + + + + Final test failed, else the display will be switched to operational mode, + showing the actual accumulated volume + + + + + FW update is ongoing + + + + + FW update failed + + + + + FW update succeeded + + + + + Can hold various s and hold connection record to relieve the meter. + Every contact with meter has to go over even if you have just only one. + + + + + holds all + Add and delete with + + + + + Remove Meter from batch and clear communication + + meter to be removed + + + + Get meter from slot number. + + + null if slot has no genesis + + + + Remove all Meters and comports + + + + + + + + + + + Detect all meters + + + + + + login to all meters + + + + + Initialize all meters + + + + + Initialize calibration for all meters + + + + + Initialize measurement for all meters + + + + + Store new calculated calibration to all meters + + + + + Start calibration for all meters + + + + + Start measurement for all meters + + + + + Stop calibration of all meters + + + + + Stop measurements of all meters + + + + + Can hold various s and hold connection record to relieve the meter. + Every contact with meter has to go over even if you have only one. + + + + + ctor + + + + + Registered list of meters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IMeter is the highest level interface between a meter with direct communication to a test bench. + has general things like calibration, measurement and set up routines. + no specific meter stuff in here! + it is always disposable + + + + + occurs when ProcessState has changed + + + + + occurs when ErrorState has changed + + + + + occurs when Init is completed + + + + + occurs when the initialization for Measurement is completed + + + + + occurs when the Measurement is completed + + + + + occurs when the initialization for calibration is completed + + + + + occurs when the calibration is completed + + + + + occurs when meter gets disposed + + + + + unique meter identification + + + + + read-only to see current Process state + + + + + the current slot in test-bench + + + + + Setup of intermediate update time for measurement updates and overflow detections, + has to be calculated depending on flow-rate and nominal diameter (DN) + + + + + Skip the test bench preparation process + + + + + Set the current action test + + + + + Read the PcbId from IMeter, if device has no readable PcbId simulate one + + + + + + Open Com ports, try some communication, login + + + + + Setup up meter from config file. just a workaround for vb6 calls. please do not use if your working with .net + + Slot Number for Test bench + don´t send CRC error or telegrams with error flag to caller + + + + + + Logout from device + + + + + Start Login with password service + + + + + Start Login without password service and a fixed password + + password for login + execute immediately + skip app readout and register generation to speed up + the initial connection process + + + + set up measurement parameter and set meter into test-mode + + + + + Starting a Measurement + Meter must be initialized + Start to receive record from meter and decode this record into MeasurementRecord + + + + + + Meter must have a active measurement + Stop receive record from meter and decode record + + + + + - simplify the measurement results handling + - getting the main measurement of the entire device (combination of all paths) + - add MeasurementResult + - remove all other methods + + + After a completed measurement , you can grab + + Calculated results + + + + The first measurement is ALWAYS a FlowTestRecord. + + + + + get current state of the running measurement + + leave empty for an aggregate state for all measurements or pass the channel number to check + + + + + Request for intermediate measurement state. + + + + + + + set up calibration parameter (calibration factor to default) and set meter into calibration mode + + + + + Starting a Calibration + Meter must be initialized + Start to receive record from meter, decode and store this record + no available + To finish calibration process run + + + + + Meter must have an active Stop Record for calibration + + + + + Get current state of the running calibration + + + + + + Calculate calibration factor for static and flying start / stop + Results kept internal and not being saved to meter. + if you want to store them on meter use + + the reference volume is essential for calculation of calibration factor + the reference time is needed for flying start/stop + the required deviation to set the scale apart from 0 + override the default max calibration factor tolerance + + + + Save calculated calibration on meter if no calibration results available an exception occurred + + + + + To control the LCD from meter for status information etc. + + if set to true the meter will show his normal screen, if set to false the next parameter will shown in display + test shown in LCD in byte array as hex value (0x33,0xFF shows 33FF on screen) + + + + Sets Display text and update production database + + New ProductionState + web logging required per default true, for offline usage set to false + + + + Get last Process State + + + + + Add external text to internal log file handling + + text to log + + + + Enable/Disable Raw record Logging + + True = Write Raw record into log/ false = Stop write raw record into log + + + + Check if the meter has any errors that can occur on a measurement + the error reason has find out in the log files + + false = everything is good, detect at least one error + + + + Clear all object set up on runtime + + + + + Dispose the entire test bench + + + + + Interface for Events + you can use without events (so with out ) + + + + + occurs when ProcessState has changed + + + + + occurs when ErrorState has changed + + + + + occurs when Init is completed + + + + + occurs when the initializations for Measurement is completed + + + + + occurs when the Measurement is completed + + + + + occurs when the initializations for calibration is completed + + + + + occurs when the calibration is completed + + + + + Flowrate for setting up the Pumps on bench + + + + + how long the flow should last + + + + + Corrected measurement of flowrate from Refrence meter + + + + + how long the mesurement was running + + + + + Measurement of flowrate from DUT + + + + + how long the mesurement was running for DUT + + + + diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.dll new file mode 100644 index 000000000..4394f2122 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.pdb new file mode 100644 index 000000000..452123969 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.WaterMeterRegisters.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.eRegister.Protocols.StreamingProtocol.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.eRegister.Protocols.StreamingProtocol.dll new file mode 100644 index 000000000..cfda2974c Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.eRegister.Protocols.StreamingProtocol.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.eRegister.Protocols.StreamingProtocol.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.eRegister.Protocols.StreamingProtocol.pdb new file mode 100644 index 000000000..96e867f44 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.eRegister.Protocols.StreamingProtocol.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.eRegister.eRegisterCore.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.eRegister.eRegisterCore.dll new file mode 100644 index 000000000..bf7de030d Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.eRegister.eRegisterCore.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.eRegister.eRegisterCore.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.eRegister.eRegisterCore.pdb new file mode 100644 index 000000000..ce26edfac Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Hardware.WaterMeter.eRegister.eRegisterCore.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.ProductionOrderCore.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.ProductionOrderCore.dll new file mode 100644 index 000000000..4a8aaf8bb Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.ProductionOrderCore.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.ProductionOrderCore.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.ProductionOrderCore.pdb new file mode 100644 index 000000000..87488305f Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.ProductionOrderCore.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.RelatePcb.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.RelatePcb.dll new file mode 100644 index 000000000..4cf64157f Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.RelatePcb.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.RelatePcb.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.RelatePcb.pdb new file mode 100644 index 000000000..dddfc9a58 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.RelatePcb.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.ServiceCore.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.ServiceCore.dll new file mode 100644 index 000000000..941f790b3 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.ServiceCore.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.ServiceCore.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.ServiceCore.pdb new file mode 100644 index 000000000..c9b5da10c Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.ServiceCore.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.SoftwareAccessHelper.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.SoftwareAccessHelper.dll new file mode 100644 index 000000000..16e5d8101 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.SoftwareAccessHelper.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.SoftwareAccessHelper.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.SoftwareAccessHelper.pdb new file mode 100644 index 000000000..729628962 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Logic.SoftwareAccessHelper.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.CordonelPreadjustmentUi.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.CordonelPreadjustmentUi.dll new file mode 100644 index 000000000..5467350b2 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.CordonelPreadjustmentUi.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.CordonelPreadjustmentUi.dll.config b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.CordonelPreadjustmentUi.dll.config new file mode 100644 index 000000000..1ff53b0cd --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.CordonelPreadjustmentUi.dll.config @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.CordonelPreadjustmentUi.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.CordonelPreadjustmentUi.pdb new file mode 100644 index 000000000..22111c609 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.CordonelPreadjustmentUi.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.GenesisToolBox.exe b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.GenesisToolBox.exe new file mode 100644 index 000000000..5dc160e4e Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.GenesisToolBox.exe differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.GenesisToolBox.exe.config b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.GenesisToolBox.exe.config new file mode 100644 index 000000000..0e4e85051 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.GenesisToolBox.exe.config @@ -0,0 +1,46 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.GenesisToolBox.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.GenesisToolBox.pdb new file mode 100644 index 000000000..8fc7ecac0 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.GenesisToolBox.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.GenesisToolBox.xml b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.GenesisToolBox.xml new file mode 100644 index 000000000..e987aab03 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Ui.GenesisToolBox.xml @@ -0,0 +1,1724 @@ + + + + Xylem.Common.Ui.GenesisToolBox + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Ctor FW update + + + + + Clear data table and set genesis to not connected + + + + + Disable all buttons except the connect button + + + + + Enable all buttons except the connect button + + + + + Lock all buttons, enable the connect button + + + + + Enable all buttons, Cordonel has to be connected + + + + + Disable all buttons during operation with device + + + + + Restore setting of buttons and timeout after operation with device + + + + + Establish connection + + + - Compare the max supported FW versions of the configuration.json. + + + - Catch error message on unknown data type and kill meter. + + + + + View all process bars and labels + + + + + Clear history window. + + + - Initial + + + + + Output exclusively to user update remarks text window. + + + - Color added. + + + - FileConfig output added. + + + + + Output exclusively to user update remarks text window. + + + + + Output exclusively to user update remarks text window. + + + + + Output exclusively to user update remarks text window. + + + + + Display installed meter FW. + + + - Init. + + + + + Set the actual process and log the text. + + + - Color added. + + + + + Calculate and log the PC and Cordonel time. + + + - Init. + + + + + Calculate and log Cordonel time. + + + - Init. + + + - Used to calculate time in UTC based on 01. Jan 2000 + and the given offset in seconds. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + History display of update process + + + + + Ctor + + + + + Select always the last line for the display. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FW update form + + + + + Ctor FW update + + + + + Clear data table and set genesis to not connected + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FW update form + + + + + Ctor FW update + + + + + Clear data table and set genesis to not connected + + + + + Disable all buttons except the connect button + + + + + Enable all buttons except the connect button + + + + + Lock all buttons, enable the connect button + + + + + Enable all buttons, Cordonel has to be connected + + + + + Disable all buttons during operation with device + + + + + Restore setting of buttons and timeout after operation with device + + + + + Establish connection + + + - Compare the max supported FW versions of the configuration.json. + + + - Catch error message on unknown data type and kill meter. + + + - Actions on pwdContainer error. + + + - Password checks extended. + + + + + Wait for reboot is completed by polling of PcbId + + + + + View all process bars and labels + + + + + Display installed meter FW. + + + - Init. + + + + + Calculate and log the PC and Cordonel time. + + + - Init. + + + + + Calculate and log Cordonel time. + + + - Init. + + + - Used to calculate time in UTC based on 01. Jan 2000 + and the given offset in seconds. + + + + + Clear history window. + + + - Initial + + + + + Output exclusively to user update remarks text window. + + + - Color added. + + + - FileConfig output added. + + + + + Set the actual process and log the text. + + + - Color added. + + + + + Output exclusively to user update remarks text window. + + + + + Output exclusively to user update remarks text window. + + + + + Output exclusively to user update remarks text window. + + + + + List all meter files + + + - Initial + + + + + Read engineering log files from meter and analyzes the contents. + + + - Initial + + + + + List all meter log files covered by the log index file + + + - Initial + + + + + Analyze all meter files + + + - Initial + + + + + Process update event for displaying messages in history window + + + + + - Initial + + + + + + + + + + + + + Text to display + + + + + Headline + + + + + Buttons + + + + + Icon + + + + + Message pop up event handler + + + + + Releases the display to normal operation + + + + + - Initial + + + + + Set battery dependencies + + + + + - Initial + + + - WarnFromClamp from 20 to 22 years (based on CSD value with 365,00 days a year + and not a more accurate 365,25 days/year), + - StoreConfiguration. + + + + + Store all configurations + + + + + - Initial + + + + + Reboot the meter + + + + + - Initial + + + + + Read config file from meter and store it to disk. + + + - Initial + + + + + Read power correction information. + + + - Initial + + + + + Read config file from meter and store it to disk. + + + - Initial + + + - Redirect pwd hash to logging window. + + + + + Set date and time from PC to Cordonel + + + + + - Initial + + + + + Get date and time from PC and Cordonel and record it + + + + + - Initial + + + + + Read engineering log files from meter and analyzes the contents. + + + - Initial + + + + + Collect lifetime information and production status. + + + - Initial + + + + + List file details from meter. + + + - Initial + + + + + Tidy the file system: + - Erasing upgrade files left over from unsuccessfully FW update, + - Erase logging files for versions not covered by the actual region as + during development a reprogramming from EMEA to NA and vice versa will + leave the logs for thr other version in, + - Remove the test file for EMEA, as this is the placeholder for the FW + update over the air to keep the space reserved for this process (250 kB), + - Keep important files listed in the log index. + + + - Initial + + + + + Erase a specified file + + + + + - Initial + + + + + Switch pulse mode to OFF + + + + + - Initial + + + + + Read status + + + + + - Initial + + + + + Read status + + + + + - Initial + + + - Check if new password is in the meter with login level 8 even if the file write wasn't successful, + - Set new password in production database, + - Check password level 3 as all applications need to use this, + - Validate production password. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FW update form + + + + + Ctor FW update + + + + + Clear data table and set genesis to not connected + + + + + Establish connection + + + - Compare the max supported FW versions of the configuration.json. + + + - Catch error message on unknown data type and kill meter. + + + + + View all process bars and labels + + + + + Display installed meter FW. + + + - Init. + + + + + Clear history window. + + + - Initial + + + + + Output exclusively to user update remarks text window. + + + - Color added. + + + + + Output exclusively to user update remarks text window. + + + + + Output exclusively to user update remarks text window. + + + + + Output exclusively to user update remarks text window. + + + + + Process update event for displaying messages in history window + + + + + - Initial + + + + + Download LUT file + + + + + + + + + + + + + + + Text to display + + + + + Headline + + + + + Buttons + + + + + Icon + + + + + Message pop up event handler + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + FW update form + + + + + Ctor FW update + + + + + Clear data table and set genesis to not connected + + + - Enable update of Genesis Flow in Genesis Tool Box. + + + + + Build data grid and fill it with meter and file information, + compare version and CRC of meter and file + + + + + Set meter application information to data grid view + + + + + + Set file application information to data grid view. + + + + + + Display the update information + + + + + After changing the grid view cell and data row cell contents, the meter application lists + have to be updated with the required action (erase or update or none of them) + + + + + + Overwrite cell click, because edit of cells is denied. This is needed for update and/or erase selection + + + + + + + Establish connection + + + - Compare the max supported FW versions of the configuration.json. + + + - Catch error message on unknown data type and kill meter. + + + - Use optional offline passwords. + + + - Restore reboot counter. + + + + + View all process bars and labels + + + + + - Enable update of Genesis Flow in Genesis Tool Box. + + + + + Upload selected update files and compare them with update files + + + + + + + Download selected update files entirely + + + + + + + Reboot the meter + + + + + - Initial + + + + + Download remaining files parts from previous download + + + + + + + Preselect "Download" trigger marks on successfully downloaded files + + + + + + + Build update control file and trigger update of selected files + + + + + + + Automatic update of entire FW + + + + + + + FileConfig parts are consecutive, stop process at first failed part and retry from + this part on all others behind + + + + + + + Failed file parts are somewhere in between succeeded parts and will be retried separately + + + + + + + Activation of manual control buttons for individual update procedure + + + + + + + + + + + + + + - Enable update of Genesis Flow in Genesis Tool Box. + + + + + + + + + + + + + + + Message text + + + + + Title + + + + + Buttons + + + + + The Icon + + + + + + + + + + - Enable update of Genesis Flow in Genesis Tool Box. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + - Catch error message on unknown data type and kill meter. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Password access and write to meter + + + + + Password handling form + + + + + - Catch error message on unknown data type and kill meter. + + + + + Marker for readiness of password file + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + Ctor + + + + + + + + Hides all currently available controls from the main window. + + + + + Gives all buttons that pointing to software function or other forms, tag with specific software function. + + + + + Sets a label with error message that says the UI is not available. + + + + + Shows all UI controls. Sets control enabled or disabled, having tag that is from type SoftwareFunctions. + For DEBUGGING all buttons will be enabled! + + + + + Hides all members but the login form if the app is initialized otherwise shows error message. + In case that the app is initialized and user is authorized shows all buttons as enabled or disabled depending on the user permissions. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Setup of GTB + + + + + Ctor + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Streaming quality display + + + + + Ctor + + + + + - Catch error message on unknown data type and kill meter. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Holds information over current software and logged in user. + + + + + Sends login request and obtains an bearer authorization token. + + + + + The main entry point for the application. + + + + + Erforderliche Designervariable. + + + + + Verwendete Ressourcen bereinigen. + + True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + + + + Erforderliche Methode für die Designerunterstützung. + Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.ByteArrayStyle.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.ByteArrayStyle.dll new file mode 100644 index 000000000..f7bd4d43b Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.ByteArrayStyle.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.ByteArrayStyle.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.ByteArrayStyle.pdb new file mode 100644 index 000000000..16c09f4f0 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.ByteArrayStyle.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.Crc16Ccitt.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.Crc16Ccitt.dll new file mode 100644 index 000000000..b2abafae4 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.Crc16Ccitt.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.Crc16Ccitt.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.Crc16Ccitt.pdb new file mode 100644 index 000000000..4f8c88ef1 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.Crc16Ccitt.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.Logging.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.Logging.dll new file mode 100644 index 000000000..8133744c3 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.Logging.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.Logging.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.Logging.pdb new file mode 100644 index 000000000..e52bdcac0 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.Logging.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.ProcessExec.dll b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.ProcessExec.dll new file mode 100644 index 000000000..31424765f Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.ProcessExec.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.ProcessExec.pdb b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.ProcessExec.pdb new file mode 100644 index 000000000..6d5a0703b Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/Xylem.Common.Utils.ProcessExec.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/XylemCommonUiLegacyGenCtl.dll b/GenesisCordonelInterface/bin/Debug/XylemCommonUiLegacyGenCtl.dll new file mode 100644 index 000000000..42dcd6d34 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/XylemCommonUiLegacyGenCtl.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/XylemCommonUiLegacyGenCtl.dll.config b/GenesisCordonelInterface/bin/Debug/XylemCommonUiLegacyGenCtl.dll.config new file mode 100644 index 000000000..c764f5323 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/XylemCommonUiLegacyGenCtl.dll.config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/GenesisCordonelInterface/bin/Debug/XylemCommonUiLegacyGenCtl.pdb b/GenesisCordonelInterface/bin/Debug/XylemCommonUiLegacyGenCtl.pdb new file mode 100644 index 000000000..a8f3e1485 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/XylemCommonUiLegacyGenCtl.pdb differ diff --git a/GenesisCordonelInterface/bin/Debug/configuration.json b/GenesisCordonelInterface/bin/Debug/configuration.json new file mode 100644 index 000000000..66a2b2a21 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/configuration.json @@ -0,0 +1,24132 @@ +{ + "CONFIGEXCHANGE": { + "id": 4, + "version": { + "first": 3, + "last": 245 + }, + "registers": { + "Privilege": { + "id": 0, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Written to set the login level, followed by the password. Note, this can be read at any login level including 0.", + "version": { + "first": 3, + "last": 245 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 8 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Used at the same time as Password so probably wants to have column S indicated.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "Password": { + "id": 1, + "details": [ + { + "type": "uint96_t", + "privilege": { + "lvl1": "WO", + "lvl2": "WO", + "lvl3": "WO", + "lvl4": "WO", + "lvl5": "WO", + "lvl6": "WO", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Password for logging in, requires 3 consecutive writes", + "version": { + "first": 3, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "Used in login.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FOpen": { + "id": 2, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to open a file on the meter, handle returned", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FClose": { + "id": 3, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to close a file on the meter", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FRead": { + "id": 4, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to read bytes from an open file", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FWrite": { + "id": 5, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to write bytes to an open file", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FSeek": { + "id": 6, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to seek within an open file", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FTell": { + "id": 7, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to determine position within an open file", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "Remove": { + "id": 8, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to delete a file", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FEOF": { + "id": 9, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this determine whether the current position in an open file is the end of the file", + "version": { + "first": 20, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "Catalogue": { + "id": 10, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Returns a list of files in the filesystem that matches a string containing wildcards passed in", + "version": { + "first": 49, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PCBSerialNumber": { + "id": 12, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "String containing the PCB serial number. Note, this can be read at any login level including 0", + "version": { + "first": 59, + "last": 245 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "Used for identification and login.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "ConfigAccessRights": { + "id": 13, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bitmask of login levels permitted to manipulate dangerous files", + "version": { + "first": 59, + "last": 245 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "I don't expect this to be changed.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "FFlush": { + "id": 14, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Remote file operations, use this to flush write buffers to an open file", + "version": { + "first": 66, + "last": 245 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + } + }, + "status": { + "LOCKED_OUT": { + "id": 0 + }, + "AUTHENTICATION_FAILURE": { + "id": 1 + }, + "ACCESS_DENIED": { + "id": 2 + }, + "UNKNOWN_PARAMETER": { + "id": 3 + }, + "IN_USE": { + "id": 4 + }, + "SIZES_DONT_MATCH": { + "id": 5 + }, + "CANT_READ_CONFIG_FILE": { + "id": 6 + }, + "USER_NOT_KNOWN": { + "id": 7 + }, + "CANT_CREATE_CONFIG_FILE": { + "id": 8 + }, + "STORE_DIDNT_STORE": { + "id": 9 + }, + "STORE_CORRUPT": { + "id": 10 + }, + "EXPECTED_WRITE": { + "id": 11 + }, + "EXPECTED_READ": { + "id": 12 + }, + "STOP_CYCLING": { + "id": 13 + }, + "TOO_MANY_OPEN": { + "id": 14 + }, + "NEVER_OPENED": { + "id": 15 + }, + "FILE_PROTECTED": { + "id": 16 + }, + "PARTIAL_RECALL": { + "id": 17 + }, + "DEFAULT_PASSWORD_USED": { + "id": 18 + } + } + }, + "CUSTOMER": { + "id": 9, + "version": { + "first": 1, + "last": 167 + }, + "registers": { + "AlarmStatus0": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 0-3.", + "version": { + "first": 1, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AlarmStatus1": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 4-7.", + "version": { + "first": 1, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "TriggerAlarmCancel": { + "id": 2, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Any set bits manually clear the corresponding alarm.", + "version": { + "first": 1, + "last": 110 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Any set bits manually clear the corresponding alarm.", + "version": { + "first": 111, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [], + "remarks": "Cancel all alarms at the end of production.", + "region": { + "emea": { + "values": { + "default": 4294967295 + } + }, + "na": { + "values": { + "default": 4294967295 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "AlarmStatus2": { + "id": 3, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 8-11.", + "version": { + "first": 26, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AlarmStatus3": { + "id": 4, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 12-15.", + "version": { + "first": 26, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AlarmStatus4": { + "id": 5, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 16-19.", + "version": { + "first": 26, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AlarmStatus5": { + "id": 6, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 20-23.", + "version": { + "first": 26, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AlarmStatus6": { + "id": 7, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 24-27.", + "version": { + "first": 26, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AlarmStatus7": { + "id": 8, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "8 bit counts corresponding to alarms 28-31.", + "version": { + "first": 26, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AlarmEnableMask": { + "id": 9, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are being monitored.", + "version": { + "first": 26, + "last": 110 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are being monitored.", + "version": { + "first": 111, + "last": 162 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Bitmask�of the alarms that we are interested in. I can imagine some customers may have different requirements to others. The radio does change this.", + "region": { + "emea": { + "values": { + "default": 32851 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are being monitored.", + "version": { + "first": 163, + "last": 163 + }, + "values": { + "default": 49235, + "minimum": 2, + "maximum": 654915 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Bitmask�of the alarms that we are interested in. I can imagine some customers may have different requirements to others. The radio does change this.", + "region": { + "emea": { + "values": { + "default": 49235 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are being monitored.", + "version": { + "first": 164, + "last": 167 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Bitmask�of the alarms that we are interested in. I can imagine some customers may have different requirements to others. The radio does change this.", + "region": { + "emea": { + "values": { + "default": 49235 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "AlarmBroadcastMask": { + "id": 10, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which will generate events.", + "version": { + "first": 26, + "last": 110 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which will generate events.", + "version": { + "first": 111, + "last": 167 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "This updates the same value as�AlarmEnableMask, best to avoid changing it.", + "region": { + "emea": { + "values": { + "default": 32851 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "AlarmVisualMask": { + "id": 11, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are displayed with IDs and the alarm icon.", + "version": { + "first": 110, + "last": 110 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are displayed with IDs and the alarm icon.", + "version": { + "first": 111, + "last": 162 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Bitmask of the alarms that will be shown on the display (both the alarm ID and the flag icon). Again, I can imagine different customers wanting different things. The radio seems to set this but it seems to be a hardwired value.", + "region": { + "emea": { + "values": { + "default": 8156 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are displayed with IDs and the alarm icon.", + "version": { + "first": 163, + "last": 163 + }, + "values": { + "default": 16382, + "minimum": 16382, + "maximum": 16382 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Bitmask of the alarms that will be shown on the display (both the alarm ID and the flag icon). Again, I can imagine different customers wanting different things. The radio seems to set this but it seems to be a hardwired value.", + "region": { + "emea": { + "values": { + "default": 16382 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit set of those alarms which are displayed with IDs and the alarm icon.", + "version": { + "first": 164, + "last": 167 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Bitmask of the alarms that will be shown on the display (both the alarm ID and the flag icon). Again, I can imagine different customers wanting different things. The radio seems to set this but it seems to be a hardwired value.", + "region": { + "emea": { + "values": { + "DN40": 8156, + "DN50": 8156, + "DN65": 8156, + "DN80": 8156, + "DN100": 8156, + "DN125": 8156, + "DN150": 8156, + "DN200": 16382, + "DN250": 16382, + "DN300": 16382 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "AlarmVisualAutoClearMask": { + "id": 12, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Alarms that have their display automatically cleared", + "version": { + "first": 110, + "last": 110 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Alarms that have their display automatically cleared", + "version": { + "first": 111, + "last": 167 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Not in use, ignore.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "ExcessFlowVolumeThreshold": { + "id": 13, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which broken pipe alarm is set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 61, + "last": 110 + }, + "values": { + "default": 639590, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which broken pipe alarm is set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 639590, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which broken pipe alarm is set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 119, + "last": 132 + }, + "values": { + "default": 639590, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which broken pipe alarm is set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 133, + "last": 167 + }, + "si_transform": { + "remarks": "Cubic Meters per Second: conversion of 1/256 l/h flow rate units, the volume (liters = (1 / 256) * 10^-3 m^3 = 3.90625 * 10^-6 m^3) and time (hours = 3600 s) into SI base units. Flow rate = (3.90625 * 10^-6 m^3) / (3600 s) = 1.085069444 * 10^-9 m^3/s.", + "units": "m^3/s", + "scale_float_mult": 1.0, + "scale_power_2": -8, + "scale_power_10": -3, + "scale_float_div": 3600.0, + "offset": 0 + }, + "values": { + "default": 639999, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "This is just the flow rate above which you'll get a broken pipe alarm (assuming it is above for ExcessFlowTimeThreshold). This, along with all the alarm configuration settings seem like things that different customers might want different settings for. However I believe most can be changed via the radio. A.F.: Register is for the EMEA alarms so we don't need them for any NA meter sizes. NA alarms are configured at uniontown using UI-1236. Should NA columns be cleared?", + "region": { + "emea": { + "values": { + "DN40": 6400000, + "DN50": 12800000, + "DN65": 16000000, + "DN80": 22400000, + "DN100": 32000000, + "DN125": 64000000, + "DN150": 96000000, + "DN200": 128000000, + "DN250": 192000000, + "DN300": 256000000 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "LeakTimeThreshold": { + "id": 14, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for leak alarm in minutes", + "version": { + "first": 61, + "last": 110 + }, + "values": { + "default": 10080, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for leak alarm in minutes", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 10080, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for leak alarm in minutes", + "version": { + "first": 119, + "last": 167 + }, + "si_transform": { + "remarks": "Seconds: time in minutes ...", + "units": "s", + "scale_float_mult": 60.0, + "scale_power_2": 0, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 360, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Default for J.S. is 20160. A.F.: Register is for the EMEA alarms so we don't need them for any NA meter sizes. NA alarms are configured at uniontown using UI-1236. Should NA columns be cleared?", + "region": { + "emea": { + "values": { + "default": 20160 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "ReverseFlowTimeThreshold": { + "id": 15, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of minutes of reverse flow required to set reverse flow alarm", + "version": { + "first": 61, + "last": 110 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of minutes of reverse flow required to set reverse flow alarm", + "version": { + "first": 111, + "last": 142 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of minutes of reverse flow required to set reverse flow alarm", + "version": { + "first": 143, + "last": 167 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "15 mins for EMEA", + "region": { + "emea": { + "values": { + "default": 15 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Locale": { + "id": 18, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Timezone in which this application is set to run.", + "version": { + "first": 24, + "last": 167 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": true, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "VaKo?? We need a seperation of Timezone an display view. A.F.: There are a lot of locales, not just one per time zone. Using the correct locale should set the display and the timezone correctly.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "AppArrangement": { + "id": 19, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "A name for the arrangement of applications on the meter", + "version": { + "first": 130, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "This is a readonly register that gives the firmware a hint about whether it is set up as an EMEA or NA meter (or neither). You can ignore or use it to check the value is as expected. Might be worth checking it.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "RebootCount": { + "id": 20, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of times the meter has rebooted", + "version": { + "first": 73, + "last": 110 + }, + "values": { + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of times the meter has rebooted", + "version": { + "first": 111, + "last": 167 + }, + "values": { + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "ExcessFlowTimeThreshold": { + "id": 21, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for broken pipe alarm in minutes", + "version": { + "first": 80, + "last": 110 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for broken pipe alarm in minutes", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for broken pipe alarm in minutes", + "version": { + "first": 119, + "last": 167 + }, + "values": { + "default": 180, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Default for J.S. is 5.", + "region": { + "emea": { + "values": { + "default": 5 + } + }, + "na": { + "values": { + "default": 5 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "LeakFlowThreshold": { + "id": 22, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which leak alarm can be set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 80, + "last": 110 + }, + "values": { + "default": 12800, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which leak alarm can be set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 12800, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which leak alarm can be set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 119, + "last": 132 + }, + "values": { + "default": 5529, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Flow rate above which leak alarm can be set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", + "version": { + "first": 133, + "last": 167 + }, + "values": { + "default": 6399, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "This is just the flow rate above which you'll get a leak alarm (assuming it is above for LeakTimeThreshold). A.F.: Register is for the EMEA alarms so we don't need them for any NA meter sizes. NA alarms are configured at uniontown using UI-1236. Should NA columns be cleared?", + "region": { + "emea": { + "values": { + "DN40": 64000, + "DN50": 96000, + "DN65": 160000, + "DN80": 224000, + "DN100": 320000, + "DN125": 640000, + "DN150": 960000, + "DN200": 1280000, + "DN250": 2240000, + "DN300": 2560000 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "MfgCharge": { + "id": 23, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Charge in uAs available in manufacturing (read only)", + "version": { + "first": 84, + "last": 167 + }, + "si_transform": { + "remarks": "Coulombs: charge in uAs ...", + "units": "C", + "scale_float_mult": 1.0, + "scale_power_2": 0, + "scale_power_10": -6, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 181440000 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [], + "remarks": "Check totalusedcharge against this to ensure battery usage in manufacturing isn't too high", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "TemperatureHighThreshold": { + "id": 24, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "High temperature alarm threshold in 0.1�C", + "version": { + "first": 88, + "last": 100 + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 800 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "High temperature alarm threshold in 0.1�C", + "version": { + "first": 101, + "last": 110 + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 800 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "High temperature alarm threshold in 0.1�C", + "version": { + "first": 111, + "last": 167 + }, + "si_transform": { + "remarks": "Degrees Celsius: temperature in 0.1 degrees C ...", + "units": "�C", + "scale_float_mult": 1.0, + "scale_power_2": 0, + "scale_power_10": -1, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 800 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 500 + } + }, + "na": { + "values": { + "default": 270 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureHighDelay": { + "id": 25, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for high temperature alarm in seconds", + "version": { + "first": 88, + "last": 110 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for high temperature alarm in seconds", + "version": { + "first": 111, + "last": 167 + }, + "si_transform": { + "remarks": "Seconds: time in seconds ...", + "units": "s", + "scale_float_mult": 60.0, + "scale_power_2": 0, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureLowThreshold": { + "id": 26, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Low temperature alarm threshold in 0.1�C", + "version": { + "first": 88, + "last": 100 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Low temperature alarm threshold in 0.1�C", + "version": { + "first": 101, + "last": 110 + }, + "values": { + "default": 20, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Low temperature alarm threshold in 0.1�C", + "version": { + "first": 111, + "last": 167 + }, + "values": { + "default": 20, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 20 + } + }, + "na": { + "values": { + "default": 20 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureLowDelay": { + "id": 27, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for low temperature alarm in seconds", + "version": { + "first": 88, + "last": 110 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for low temperature alarm in seconds", + "version": { + "first": 111, + "last": 167 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureHighThreshold": { + "id": 28, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "High pressure alarm threshold in Pa", + "version": { + "first": 88, + "last": 110 + }, + "values": { + "default": 1600000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "High pressure alarm threshold in Pa", + "version": { + "first": 111, + "last": 121 + }, + "values": { + "default": 1600000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "High pressure alarm threshold in Pa", + "version": { + "first": 122, + "last": 167 + }, + "values": { + "default": 1600000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Absolute or relative? A.F.: gauge pressure.", + "region": { + "emea": { + "values": { + "default": 1600000 + } + }, + "na": { + "values": { + "default": 1380000 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureHighDelay": { + "id": 29, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for high pressure alarm in seconds", + "version": { + "first": 88, + "last": 110 + }, + "values": { + "default": 300, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for high pressure alarm in seconds", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 300, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for high pressure alarm in seconds", + "version": { + "first": 119, + "last": 167 + }, + "si_transform": { + "remarks": "Seconds: ...", + "units": "s", + "scale_float_mult": 60.0, + "scale_power_2": 0, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureLowThreshold": { + "id": 30, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Low pressure alarm threshold in Pa", + "version": { + "first": 88, + "last": 110 + }, + "values": { + "default": 30000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Low pressure alarm threshold in Pa", + "version": { + "first": 111, + "last": 121 + }, + "values": { + "default": 30000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Low pressure alarm threshold in Pa", + "version": { + "first": 122, + "last": 167 + }, + "values": { + "default": 30000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Absolute or relative? A.F.: gauge pressure.", + "region": { + "emea": { + "values": { + "default": 30000 + } + }, + "na": { + "values": { + "default": 240000 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureLowDelay": { + "id": 31, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for low pressure alarm in seconds", + "version": { + "first": 88, + "last": 110 + }, + "values": { + "default": 300, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for low pressure alarm in seconds", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 300, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time threshold for low pressure alarm in seconds", + "version": { + "first": 119, + "last": 167 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "StoreConfiguration": { + "id": 32, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Store all configuration items in non-volatile memory.", + "version": { + "first": 88, + "last": 130 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Store all configuration items in non-volatile memory.", + "version": { + "first": 131, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "You do need to use this if you change any parameters in CUSTOMER and want to keep them.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + }, + "SerialNumber": { + "id": 33, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Customer serial number string", + "version": { + "first": 139, + "last": 167 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "BackupCalendarSeconds": { + "id": 34, + "details": [ + { + "type": "time_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "NA", + "lvl8": "NA" + }, + "description": "Internal backup of calendar seconds", + "version": { + "first": 145, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "Internal use in firmware only", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "InstallationTime": { + "id": 35, + "details": [ + { + "type": "time_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Datetime in seconds since 1/1/2000 00:00:00. Time meter was determined to have been installed. 0 means not installed.", + "version": { + "first": 147, + "last": 167 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "Write to zero before leaving manufacturing to ensure not marked as 'installed'.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "LocaleDecimalPoint": { + "id": 36, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Read to view the string used as a decimal point for this locale", + "version": { + "first": 151, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "LocaleThousandsSeparator": { + "id": 37, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Read to view the string used as a thousands separarator for this locale", + "version": { + "first": 151, + "last": 167 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "InternalLoginTest": { + "id": 38, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test whether the internal login works. Start test by writing '1' then log out to enable the test to run. Log back in and read back this register for result (see status codes)", + "version": { + "first": 157, + "last": 167 + }, + "values": { + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Helper function to test the configexchange login at the internal level will succeed (that is, that the password is as expected). This should be tested after installation of password file at end of line. Add to production test if register present in firmware.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "NoFlowLimit": { + "id": 39, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "time threshold in Minutes for NoFlowAlarm trigger NoFlowAlarm trigger; 251002 Clemens: clamp the �last� field to 161 and may need to use the �exclude� versions mechanism if 1.3 development includes work for CORDHW-3124.", + "version": { + "first": 161, + "last": 167 + }, + "values": { + "default": 43200, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "This has default setting for DEWA customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "NoFlowAlarmResetHysteresis": { + "id": 40, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "number of consecutive samples (Minutes) before NoFlow Alarm gets cleared; 251002 Clemens: clamp the �last� field to 161 and may need to use the �exclude� versions mechanism if 1.3 development includes work for CORDHW-3124.", + "version": { + "first": 161, + "last": 167 + }, + "values": { + "default": 5, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "This has default setting for DEWA customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Gradient_Averaging_Samples": { + "id": 41, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "number of samples for moving average (window size)", + "version": { + "first": 165, + "last": 167 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "This has default setting for Canal de Isabel customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Gradient_Pos_Granularity_Steps": { + "id": 42, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Unitless granularity steps for positive pressure Gradient alarm threshold", + "version": { + "first": 165, + "last": 167 + }, + "values": { + "default": 200, + "minimum": 1, + "maximum": 1600 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "This has default setting for Canal de Isabel customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Gradient_Neg_Granularity_Steps": { + "id": 43, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Unitless granularity steps for negative pressure Gradient alarm threshold", + "version": { + "first": 165, + "last": 167 + }, + "values": { + "default": 200, + "minimum": 1, + "maximum": 1600 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "This has default setting for Canal de Isabel customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Gradient_Samples_Alarmtrigger": { + "id": 44, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of consecutive samples above threshold before Alarm gets triggered", + "version": { + "first": 165, + "last": 167 + }, + "values": { + "default": 3, + "minimum": 1, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "This has default setting for Canal de Isabel customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + } + }, + "status": { + "REBOOT": { + "id": 0 + }, + "REBOOT_STOP": { + "id": 1 + }, + "LOW_BATTERY": { + "id": 2 + }, + "LOW_BATTERY_STOP": { + "id": 3 + }, + "VERY_LOW_BATTERY": { + "id": 4 + }, + "VERY_LOW_BATTERY_STOP": { + "id": 5 + }, + "CONFIG_ERROR": { + "id": 6 + }, + "CONFIG_ERROR_STOP": { + "id": 7 + }, + "EMPTY_PIPE": { + "id": 8 + }, + "EMPTY_PIPE_STOP": { + "id": 9 + }, + "MAGNETIC_TAMPER": { + "id": 10 + }, + "MAGNETIC_TAMPER_STOP": { + "id": 11 + }, + "REVERSE_FLOW": { + "id": 12 + }, + "REVERSE_FLOW_STOP": { + "id": 13 + }, + "SUSPECT_LEAK": { + "id": 14 + }, + "SUSPECT_LEAK_STOP": { + "id": 15 + }, + "BROKEN_PIPE": { + "id": 16 + }, + "BROKEN_PIPE_STOP": { + "id": 17 + }, + "LOW_PRESSURE": { + "id": 18 + }, + "LOW_PRESSURE_STOP": { + "id": 19 + }, + "HIGH_PRESSURE": { + "id": 20 + }, + "HIGH_PRESSURE_STOP": { + "id": 21 + }, + "LOW_TEMPERATURE": { + "id": 22 + }, + "LOW_TEMPERATURE_STOP": { + "id": 23 + }, + "HIGH_TEMPERATURE": { + "id": 24 + }, + "HIGH_TEMPERATURE_STOP": { + "id": 25 + }, + "RADIO_ERROR": { + "id": 26 + }, + "RADIO_ERROR_STOP": { + "id": 27 + }, + "METROLOGY_PARAMS": { + "id": 28 + }, + "METROLOGY_PARAMS_STOP": { + "id": 29 + }, + "METROLOGY_MEASURE": { + "id": 30 + }, + "METROLOGY_MEASURE_STOP": { + "id": 31 + }, + "UNALLOCATED_6": { + "id": 32 + }, + "UNALLOCATED_6_STOP": { + "id": 33 + }, + "UNALLOCATED_7": { + "id": 34 + }, + "UNALLOCATED_7_STOP": { + "id": 35 + }, + "UNALLOCATED_8": { + "id": 36 + }, + "UNALLOCATED_8_STOP": { + "id": 37 + }, + "UNALLOCATED_9": { + "id": 38 + }, + "UNALLOCATED_9_STOP": { + "id": 39 + }, + "UNALLOCATED_10": { + "id": 40 + }, + "UNALLOCATED_10_STOP": { + "id": 41 + }, + "UNALLOCATED_11": { + "id": 42 + }, + "UNALLOCATED_11_STOP": { + "id": 43 + }, + "UNALLOCATED_12": { + "id": 44 + }, + "UNALLOCATED_12_STOP": { + "id": 45 + }, + "UNALLOCATED_13": { + "id": 46 + }, + "UNALLOCATED_13_STOP": { + "id": 47 + }, + "UNALLOCATED_14": { + "id": 48 + }, + "UNALLOCATED_14_STOP": { + "id": 49 + }, + "UNALLOCATED_15": { + "id": 50 + }, + "UNALLOCATED_15_STOP": { + "id": 51 + }, + "UNALLOCATED_16": { + "id": 52 + }, + "UNALLOCATED_16_STOP": { + "id": 53 + }, + "UNALLOCATED_17": { + "id": 54 + }, + "UNALLOCATED_17_STOP": { + "id": 55 + }, + "UNALLOCATED_18": { + "id": 56 + }, + "UNALLOCATED_18_STOP": { + "id": 57 + }, + "UNALLOCATED_19": { + "id": 58 + }, + "UNALLOCATED_19_STOP": { + "id": 59 + }, + "UNALLOCATED_20": { + "id": 60 + }, + "UNALLOCATED_20_STOP": { + "id": 61 + }, + "UNALLOCATED_21": { + "id": 62 + }, + "UNALLOCATED_21_STOP": { + "id": 63 + }, + "UNKNOWN_PARAMETER": { + "id": 64 + }, + "LOCALE_UNDEFINED": { + "id": 65 + }, + "NO_SUCH_ALARM": { + "id": 66 + }, + "OUT_OF_RANGE": { + "id": 67 + }, + "NOT_IMPLEMENTED": { + "id": 68 + }, + "BAD_CONFIG": { + "id": 69 + }, + "DID_NOT_STORE": { + "id": 70 + }, + "STORE_PENDING": { + "id": 71 + }, + "STRING_TOO_LONG": { + "id": 72 + }, + "TEST_PENDING": { + "id": 73 + }, + "TEST_STARTED": { + "id": 74 + }, + "TEST_OK_SKELETON": { + "id": 75 + }, + "TEST_OK": { + "id": 76 + }, + "DID_NOT_TEST": { + "id": 77 + } + } + }, + "FLEXNETSERIAL": { + "id": 26, + "version": { + "first": 1, + "last": 24 + }, + "registers": { + "UpgState": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "General UPG states.", + "version": { + "first": 2, + "last": 24 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Can be ignored, temporarily for FW upgrade.", + "region": { + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FwdlState": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Specifies the Bootloader State of operation.", + "version": { + "first": 2, + "last": 24 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Can be ignored, temporarily for FW upgrade.", + "region": { + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "id": 0 + }, + "TOO_MANY_APPS": { + "id": 1 + } + } + }, + "FLEXNETVERSION": { + "id": 24, + "version": { + "first": 1, + "last": 9999 + } + }, + "FUNCTEST": { + "id": 10, + "version": { + "first": 0, + "last": 1003 + }, + "registers": { + "GP30Test": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "GP30 test to run.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "LCDTest": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "LCD test to run.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "Iloop": { + "id": 2, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test not supported.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "Pulse": { + "id": 3, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test not supported.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "Pressure": { + "id": 4, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test the pressure sensor.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "BatteryVoltage": { + "id": 5, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Read CPU Vbat.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "SupplyVoltage": { + "id": 6, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Read CPU Vcc.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "Temperature": { + "id": 7, + "details": [ + { + "type": "int16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Read CPU Temperature.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "RFID": { + "id": 8, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test not supported.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "OpticalOutput": { + "id": 9, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test the pulse output LED.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "Radio": { + "id": 10, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test the Radio at basic SPI level.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "MultiTest": { + "id": 11, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Run a list of basic tests and display results on LCD.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "NFCUID": { + "id": 12, + "details": [ + { + "type": "uint64_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Return the UID uint8_t array as a uint64_t.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + }, + "CPUTest": { + "id": 13, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Test various aspects of the CPU.", + "version": { + "first": 0, + "last": 1003 + }, + "statictype": null + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "BAD_TEST": { + "id": 1 + }, + "NO_RESULT": { + "id": 2 + } + } + }, + "GENESISFLOW": { + "id": 15, + "version": { + "first": 7, + "last": 606 + }, + "registers": { + "SampleRate": { + "id": 0, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate in Hz that each GP30 takes measurements", + "version": { + "first": 7, + "last": 203 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate in Hz that each GP30 takes measurements", + "version": { + "first": 204, + "last": 267 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate in Hz that each GP30 takes measurements", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 2 + } + }, + "na": { + "values": { + "default": 2 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate in Hz that each GP30 takes measurements", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate in Hz that each GP30 takes measurements", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate in Hz that each GP30 takes measurements", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "FirstHitLvlUp1": { + "id": 1, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 1, units of 0.88mV", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 1, units of 0.88mV", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 1, units of 0.88mV", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 1, units of 0.88mV", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 1, units of 0.88mV", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + } + ] + }, + "FirstHitLvlUp2": { + "id": 2, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 2, units of 0.88mV", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 2, units of 0.88mV", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 2, units of 0.88mV", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 2, units of 0.88mV", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 2, units of 0.88mV", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + } + ] + }, + "FirstHitLvlUp3": { + "id": 3, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 3, units of 0.88mV", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 3, units of 0.88mV", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 3, units of 0.88mV", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 3, units of 0.88mV", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the upstream direction for channel 3, units of 0.88mV", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + } + ] + }, + "FirstHitLvlDown1": { + "id": 4, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 1, units of 0.88mV", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 1, units of 0.88mV", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 1, units of 0.88mV", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 1, units of 0.88mV", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 1, units of 0.88mV", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + } + ] + }, + "FirstHitLvlDown2": { + "id": 5, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 2, units of 0.88mV", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 2, units of 0.88mV", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 2, units of 0.88mV", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 2, units of 0.88mV", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 2, units of 0.88mV", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + } + ] + }, + "FirstHitLvlDown3": { + "id": 6, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 3, units of 0.88mV", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 3, units of 0.88mV", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 3, units of 0.88mV", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 3, units of 0.88mV", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The first hit level in the downstream direction for channel 3, units of 0.88mV", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": -128, + "maximum": 127 + }, + "statictype": "dynamic" + } + ] + }, + "StartHit": { + "id": 7, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The hit number to consider as the first hit", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The hit number to consider as the first hit", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "Default is 6 and it should stay as 6 for all sizes.", + "region": { + "emea": { + "values": { + "default": 6 + } + }, + "na": { + "values": { + "default": 6 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The hit number to consider as the first hit", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The hit number to consider as the first hit", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The hit number to consider as the first hit", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "AmplitudePeakDetectEnd": { + "id": 8, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Where to stop running the amplitude peak detection", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Where to stop running the amplitude peak detection", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Where to stop running the amplitude peak detection", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Where to stop running the amplitude peak detection", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Where to stop running the amplitude peak detection", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "NumFirePulses": { + "id": 9, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of pulses to fire for a measurement", + "version": { + "first": 7, + "last": 267 + }, + "values": { + "default": 17, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of pulses to fire for a measurement", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 17, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of pulses to fire for a measurement", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 17, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of pulses to fire for a measurement", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 17, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of pulses to fire for a measurement", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 17, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "DisplayPow10": { + "id": 10, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The weight of the lowest display digit as a power of 10. The accepted range of values depends on the LCD present and the DisplayUnits chosen", + "version": { + "first": 36, + "last": 267 + }, + "values": { + "default": -6, + "minimum": -128, + "maximum": 127 + }, + "statictype": "static" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The weight of the lowest display digit as a power of 10. The accepted range of values depends on the LCD present and the DisplayUnits chosen", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": -6, + "minimum": -128, + "maximum": 127 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "(<=125 = 3n ) 150=> 2n in m� -> what about other Units. See Display Unit Customer Specification.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The weight of the lowest display digit as a power of 10. The accepted range of values depends on the LCD present and the DisplayUnits chosen", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": -6, + "minimum": -128, + "maximum": 127 + }, + "statictype": "static" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The weight of the lowest display digit as a power of 10. The accepted range of values depends on the LCD present and the DisplayUnits chosen", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": -6, + "minimum": -128, + "maximum": 127 + }, + "statictype": "static" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The weight of the lowest display digit as a power of 10. The accepted range of values depends on the LCD present and the DisplayUnits chosen", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": -6, + "minimum": -128, + "maximum": 127 + }, + "statictype": "static" + } + ] + }, + "DisplayUnits": { + "id": 11, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The units of volume to display. The accepted range of values depends on the LCD present and the DisplayPow10 chosen", + "version": { + "first": 36, + "last": 267 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The units of volume to display. The accepted range of values depends on the LCD present and the DisplayPow10 chosen", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Same units for each calculator. Vako.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The units of volume to display. The accepted range of values depends on the LCD present and the DisplayPow10 chosen", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The units of volume to display. The accepted range of values depends on the LCD present and the DisplayPow10 chosen", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The units of volume to display. The accepted range of values depends on the LCD present and the DisplayPow10 chosen", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + } + ] + }, + "MeterSize": { + "id": 12, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The meter pipe size", + "version": { + "first": 45, + "last": 237 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 9 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The meter pipe size", + "version": { + "first": 238, + "last": 267 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 17 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The meter pipe size", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 17 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Base No. (4th digit G=50, ...) or B01 Nominal diameter (DN) (DN50, ...).", + "region": { + "emea": { + "values": { + "DN40": 0, + "DN50": 1, + "DN65": 2, + "DN80": 3, + "DN100": 4, + "DN125": 5, + "DN150": 6, + "DN200": 7, + "DN250": 8, + "DN300": 9 + } + }, + "na": { + "values": { + "US1_5": 10, + "US2": 11, + "US3": 12, + "US4": 13, + "US6": 14, + "US8": 15, + "US10": 16, + "US12": 17 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The meter pipe size", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 17 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The meter pipe size", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 17 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The meter pipe size", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 17 + }, + "statictype": "static" + } + ] + }, + "CalFactor1": { + "id": 13, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 1", + "version": { + "first": 45, + "last": 200 + }, + "values": { + "default": 62500, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 1", + "version": { + "first": 201, + "last": 267 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 1", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": { + "values": { + "US2": 19144 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 1", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 1", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 1", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "CalFactor2": { + "id": 14, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 2", + "version": { + "first": 45, + "last": 200 + }, + "values": { + "default": 62500, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 2", + "version": { + "first": 201, + "last": 267 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 2", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": { + "values": { + "US2": 19144 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 2", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 2", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 2", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "CalFactor3": { + "id": 15, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 3", + "version": { + "first": 45, + "last": 200 + }, + "values": { + "default": 62500, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 3", + "version": { + "first": 201, + "last": 267 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 3", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": { + "values": { + "US2": 19144 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 3", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 3", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration factor for ultrasonic channel 3", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 15625, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "ZeroOffset1": { + "id": 16, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 1 at zero flow. Value is in usual time of flight scaling (ie LS bit is 2^-38 seconds)", + "version": { + "first": 45, + "last": 132 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 1 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 133, + "last": 267 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 1 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 268, + "last": 322 + }, + "si_transform": { + "remarks": "Seconds: convert time in 2^-38 seconds...", + "units": "s", + "scale_float_mult": 1.0, + "scale_power_2": -38, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 1 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 1 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 1 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + } + ] + }, + "ZeroOffset2": { + "id": 17, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 2 at zero flow. Value is in usual time of flight scaling (ie LS bit is 2^-38 seconds)", + "version": { + "first": 45, + "last": 132 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 2 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 133, + "last": 267 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 2 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 268, + "last": 322 + }, + "si_transform": { + "remarks": "Seconds: convert time in 2^-38 seconds...", + "units": "s", + "scale_float_mult": 1.0, + "scale_power_2": -38, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 2 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 2 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 2 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + } + ] + }, + "ZeroOffset3": { + "id": 18, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 3 at zero flow. Value is in usual time of flight scaling (ie LS bit is 2^-38 seconds)", + "version": { + "first": 45, + "last": 132 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 3 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 133, + "last": 267 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 3 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 268, + "last": 322 + }, + "si_transform": { + "remarks": "Seconds: convert time in 2^-38 seconds...", + "units": "s", + "scale_float_mult": 1.0, + "scale_power_2": -38, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 3 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 3 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The delta time of flight expected on ultrasound channel 3 at zero flow. Value is in units 4 times smaller than usual time of flight scaling (ie LS bit is 2^-40 seconds)", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + } + ] + }, + "ScaledBilling": { + "id": 19, + "details": [ + { + "type": "int64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The scaled volume value shown on the display. In the units and precision set by DisplayUnits and DisplayPow10 respectively. Decimal point is not represented in this value", + "version": { + "first": 47, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + }, + { + "type": "int64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The scaled volume value shown on the display. In the units and precision set by DisplayUnits and DisplayPow10 respectively. Decimal point is not represented in this value", + "version": { + "first": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "int64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The scaled volume value shown on the display. In the units and precision set by DisplayUnits and DisplayPow10 respectively. Decimal point is not represented in this value", + "version": { + "first": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "int64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The scaled volume value shown on the display. In the units and precision set by DisplayUnits and DisplayPow10 respectively. Decimal point is not represented in this value", + "version": { + "first": 601, + "last": 606 + }, + "statictype": "dynamic" + } + ] + }, + "ResetAccumulators": { + "id": 20, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "WO", + "lvl2": "WO", + "lvl3": "WO", + "lvl4": "WO", + "lvl5": "WO", + "lvl6": "WO", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write 1 to reset all accumulated volume to zero", + "version": { + "first": 47, + "last": 267 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write 1 to reset all accumulated volume to zero", + "version": { + "first": 268, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "roland.drabesch@xylem.com" + ], + "remarks": "You will need this if you wish to reset the volume to zero at the end of calibration.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write 1 to reset all accumulated volume to zero", + "version": { + "first": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write 1 to reset all accumulated volume to zero", + "version": { + "first": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write 1 to reset all accumulated volume to zero", + "version": { + "first": 601, + "last": 606 + }, + "statictype": "dynamic" + } + ] + }, + "ForwardArrow": { + "id": 21, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow direction. 0 - undecided, 1 - right, 2 - left", + "version": { + "first": 47, + "last": 267 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow direction. 0 - undecided, 1 - right, 2 - left", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 1 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow direction. 0 - undecided, 1 - right, 2 - left", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow direction. 0 - undecided, 1 - right, 2 - left", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow direction. 0 - undecided, 1 - right, 2 - left", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "LedMode": { + "id": 22, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The type of data output by the green LED", + "version": { + "first": 47, + "last": 203 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The type of data output by the green LED", + "version": { + "first": 204, + "last": 267 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The type of data output by the green LED", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The type of data output by the green LED", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The type of data output by the green LED", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The type of data output by the green LED", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + } + ] + }, + "StoreCalibration": { + "id": 23, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store calibration values to non-volatile storage. Read back for status", + "version": { + "first": 54, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "roland.drabesch@xylem.com" + ], + "remarks": "You will need to use this during calibration.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store calibration values to non-volatile storage. Read back for status", + "version": { + "first": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store calibration values to non-volatile storage. Read back for status", + "version": { + "first": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store calibration values to non-volatile storage. Read back for status", + "version": { + "first": 601, + "last": 606 + }, + "statictype": "dynamic" + } + ] + }, + "UnscaledFwd": { + "id": 24, + "details": [ + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 54, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The forward flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 601, + "last": 606 + }, + "statictype": "dynamic" + } + ] + }, + "UnscaledRev": { + "id": 25, + "details": [ + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The reverse flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 54, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The reverse flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The reverse flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The reverse flow accumulator volume. The scale depends on the meter size", + "version": { + "first": 601, + "last": 606 + }, + "statictype": "dynamic" + } + ] + }, + "LowFlowThreshold": { + "id": 26, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The volume that must pass in LowFlowMaxPeriod for it to be registered as real flow. Units of ml", + "version": { + "first": 55, + "last": 267 + }, + "values": { + "default": 200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The volume that must pass in LowFlowMaxPeriod for it to be registered as real flow. Units of ml", + "version": { + "first": 268, + "last": 322 + }, + "si_transform": { + "remarks": "Cubic Meters: conversion of the volume volume in ml ...", + "units": "m^3", + "scale_float_mult": 1.0, + "scale_power_2": 0, + "scale_power_10": -6, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "Default for other DN (200 -> DN50).", + "region": { + "emea": { + "values": { + "DN40": 200, + "DN50": 200, + "DN65": 333, + "DN80": 550, + "DN100": 900, + "DN125": "TBD", + "DN150": 2000, + "DN200": 800, + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US1_5": 200, + "US2": 200, + "US3": 550, + "US4": 900, + "US6": 1833, + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The volume that must pass in LowFlowMaxPeriod for it to be registered as real flow. Units of ml", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The volume that must pass in LowFlowMaxPeriod for it to be registered as real flow. Units of ml", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The volume that must pass in LowFlowMaxPeriod for it to be registered as real flow. Units of ml", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "LowFlowMaxPeriod": { + "id": 27, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time during which LowFlowThreshold volume must pass for it to be registered as real flow. Units of seconds << 16", + "version": { + "first": 55, + "last": 267 + }, + "values": { + "default": 3932160, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time during which LowFlowThreshold volume must pass for it to be registered as real flow. Units of seconds << 16", + "version": { + "first": 268, + "last": 322 + }, + "si_transform": { + "remarks": "Seconds: time in 2^-16 seconds ...", + "units": "s", + "scale_float_mult": 1.0, + "scale_power_2": -16, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 3932160, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "Default for other DN (3932160 -> DN50).", + "region": { + "emea": { + "values": { + "default": 3932160 + } + }, + "na": { + "values": { + "default": 3932160 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time during which LowFlowThreshold volume must pass for it to be registered as real flow. Units of seconds << 16", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 3932160, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time during which LowFlowThreshold volume must pass for it to be registered as real flow. Units of seconds << 16", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 3932160, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time during which LowFlowThreshold volume must pass for it to be registered as real flow. Units of seconds << 16", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 3932160, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "UpdateThreshold": { + "id": 28, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The amount of flow in ml to accumulate before updating the main scaled accumulators.", + "version": { + "first": 55, + "last": 267 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The amount of flow in ml to accumulate before updating the main scaled accumulators.", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "I doubt this will be used. It is to allow less frequent LCD updates if so desired but we're fine.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The amount of flow in ml to accumulate before updating the main scaled accumulators.", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The amount of flow in ml to accumulate before updating the main scaled accumulators.", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The amount of flow in ml to accumulate before updating the main scaled accumulators.", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "ArrowThreshold": { + "id": 29, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The net volume in ml that must flow in one direction for the forward arrow to be set", + "version": { + "first": 55, + "last": 267 + }, + "values": { + "default": 5000000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The net volume in ml that must flow in one direction for the forward arrow to be set", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 5000000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Default for other DN (J.S.: 2000000-> DN50)", + "region": { + "emea": { + "values": { + "default": 2000000, + "DN125": "TBD", + "DN250": "TBD", + "DN300": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The net volume in ml that must flow in one direction for the forward arrow to be set", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 5000000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The net volume in ml that must flow in one direction for the forward arrow to be set", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 5000000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The net volume in ml that must flow in one direction for the forward arrow to be set", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 5000000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "FireBuffer1": { + "id": 30, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 1 to be used", + "version": { + "first": 64, + "last": 267 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 1 to be used", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 1 to be used", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 1 to be used", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 1 to be used", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "FireBuffer2": { + "id": 31, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 2 to be used", + "version": { + "first": 64, + "last": 267 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 2 to be used", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 2 to be used", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 2 to be used", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 2 to be used", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "FireBuffer3": { + "id": 32, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 3 to be used", + "version": { + "first": 64, + "last": 267 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 3 to be used", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 3 to be used", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 3 to be used", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The fire buffer within the GP30 on channel 3 to be used", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "TriggerActive": { + "id": 33, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "WO", + "lvl2": "WO", + "lvl3": "WO", + "lvl4": "WO", + "lvl5": "WO", + "lvl6": "WO", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write 1 to put GenesisFlow in Active mode. This is the normal measurement mode", + "version": { + "first": 75, + "last": 267 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Active mode. This is the normal measurement mode", + "version": { + "first": 268, + "last": 306 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Active mode. This is the normal measurement mode", + "version": { + "first": 307, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "roland.drabesch@xylem.com" + ], + "remarks": "You will need this if you use TriggerIdle or TriggerTest", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Active mode. This is the normal measurement mode", + "version": { + "first": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Active mode. This is the normal measurement mode", + "version": { + "first": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Active mode. This is the normal measurement mode", + "version": { + "first": 601, + "last": 606 + }, + "statictype": "dynamic" + } + ] + }, + "TriggerIdle": { + "id": 34, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 0 to put GenesisFlow in Active mode, otherwise put GenesisFlow in Idle mode. Idle mode displays just the number written to TriggerIdle. No measurements are performed. Read returns the number written", + "version": { + "first": 75, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "roland.drabesch@xylem.com" + ], + "remarks": "This was asked for so the battery usage could be minimised in manufacture so I expect it'll be used there.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 0 to put GenesisFlow in Active mode, otherwise put GenesisFlow in Idle mode. Idle mode displays just the number written to TriggerIdle. No measurements are performed. Read returns the number written", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 0 to put GenesisFlow in Active mode, otherwise put GenesisFlow in Idle mode. Idle mode displays just the number written to TriggerIdle. No measurements are performed. Read returns the number written", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 0 to put GenesisFlow in Active mode, otherwise put GenesisFlow in Idle mode. Idle mode displays just the number written to TriggerIdle. No measurements are performed. Read returns the number written", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "MaxValidDeltaToF": { + "id": 35, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum delta time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 87, + "last": 267 + }, + "values": { + "default": 247390, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum delta time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 268, + "last": 322 + }, + "si_transform": { + "remarks": "Seconds: time in 2^-38 seconds ...", + "units": "s", + "scale_float_mult": 1.0, + "scale_power_2": -38, + "scale_power_10": 0, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 309237, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "247390 <-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "DN40": 247390, + "DN50": 247390, + "DN65": 402008, + "DN80": 494779, + "DN100": 618474, + "DN125": "TBD", + "DN150": 439804, + "DN200": 1236948, + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US1_5": 1855422, + "US2": 1855422, + "US3": 494779, + "US4": 618474, + "US6": 439804, + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum delta time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 309237, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum delta time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 309237, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum delta time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 309237, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "MaxValidToF": { + "id": 36, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum absolute time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 87, + "last": 267 + }, + "values": { + "default": 24739011, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum absolute time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 24739011, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "<-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "DN40": 24739011, + "DN50": 24739011, + "DN65": 32160714, + "DN80": 39582418, + "DN100": 49478022, + "DN125": "TBD", + "DN150": 46729244, + "DN200": 98956044, + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US1_5": 24739011, + "US2": 24739011, + "US3": 39582418, + "US4": 49478022, + "US6": 46729244, + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum absolute time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 24739011, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum absolute time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 24739011, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum absolute time of flight, above this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 24739011, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "MinValidToF": { + "id": 37, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The minimum absolute time of flight, below this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 87, + "last": 267 + }, + "values": { + "default": 13743895, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The minimum absolute time of flight, below this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 13743895, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "<-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "DN40": 13743895, + "DN50": 13743895, + "DN65": 13743895, + "DN80": 21990232, + "DN100": 27487790, + "DN125": "TBD", + "DN150": 30236569, + "DN200": 54975580, + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US1_5": 13743895, + "US2": 13743895, + "US3": 21990232, + "US4": 27487790, + "US6": 30236569, + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The minimum absolute time of flight, below this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 13743895, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The minimum absolute time of flight, below this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 13743895, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The minimum absolute time of flight, below this the measurement is deemed bad. In 2^-38 seconds units", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 13743895, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "FirstHitPercent1": { + "id": 38, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 1", + "version": { + "first": 93, + "last": 267 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 1", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 1", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 1", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 1", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "FirstHitPercent2": { + "id": 39, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 2", + "version": { + "first": 93, + "last": 267 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 2", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 2", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 2", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 2", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "FirstHitPercent3": { + "id": 40, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 3", + "version": { + "first": 93, + "last": 267 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 3", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 3", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 3", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The percentage of the measured amplitude to use for the first hit level for channel 3", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "FirstHitShift": { + "id": 41, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A value describing how long the amplitude is averaged over for calculating the first hit level. This is the amount each amplitude value is shifted down before being added to the moving average", + "version": { + "first": 93, + "last": 267 + }, + "values": { + "default": 4, + "minimum": 3, + "maximum": 8 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A value describing how long the amplitude is averaged over for calculating the first hit level. This is the amount each amplitude value is shifted down before being added to the moving average", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 4, + "minimum": 3, + "maximum": 8 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A value describing how long the amplitude is averaged over for calculating the first hit level. This is the amount each amplitude value is shifted down before being added to the moving average", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 4, + "minimum": 3, + "maximum": 8 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A value describing how long the amplitude is averaged over for calculating the first hit level. This is the amount each amplitude value is shifted down before being added to the moving average", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 4, + "minimum": 3, + "maximum": 8 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A value describing how long the amplitude is averaged over for calculating the first hit level. This is the amount each amplitude value is shifted down before being added to the moving average", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 4, + "minimum": 3, + "maximum": 8 + }, + "statictype": "static" + } + ] + }, + "FirstHitMinimum": { + "id": 42, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum absolute first hit level value", + "version": { + "first": 93, + "last": 267 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum absolute first hit level value", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "A limit for how small the first hit level can be set We don't expect this to change unless firled trials say it should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum absolute first hit level value", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum absolute first hit level value", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum absolute first hit level value", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "ToFErrorLimit": { + "id": 43, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of ToF errors to allow before resetting the first hit levels to FirstHitMinimum", + "version": { + "first": 93, + "last": 267 + }, + "values": { + "default": 16, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of ToF errors to allow before resetting the first hit levels to FirstHitMinimum", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 16, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "This allows us to avoid being stuck with a bad first hit level if conditions change. Not expecting to change it unless field trials show we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of ToF errors to allow before resetting the first hit levels to FirstHitMinimum", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 16, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of ToF errors to allow before resetting the first hit levels to FirstHitMinimum", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 16, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of ToF errors to allow before resetting the first hit levels to FirstHitMinimum", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 16, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "FirstHitUpdatePeriod": { + "id": 44, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The period (in seconds) between first hit level updates", + "version": { + "first": 99, + "last": 267 + }, + "values": { + "default": 10, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The period (in seconds) between first hit level updates", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 10, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The period (in seconds) between first hit level updates", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 10, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The period (in seconds) between first hit level updates", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 10, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The period (in seconds) between first hit level updates", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 10, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "PipeFillingDelay": { + "id": 45, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time (in seconds) to maintain zero flow after leaving empty pipe", + "version": { + "first": 119, + "last": 267 + }, + "values": { + "default": 30, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time (in seconds) to maintain zero flow after leaving empty pipe", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 30, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "The amount of time after empty pipe that we stay in zero flow mode. Same as iPerl, not expected to be changed but could be if field trials say we should.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time (in seconds) to maintain zero flow after leaving empty pipe", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 30, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time (in seconds) to maintain zero flow after leaving empty pipe", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 30, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time (in seconds) to maintain zero flow after leaving empty pipe", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 30, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "ToFTempOffset1": { + "id": 46, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 1. In units of 2^-38 seconds", + "version": { + "first": 124, + "last": 267 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 1. In units of 2^-38 seconds", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 1. In units of 2^-38 seconds", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 1. In units of 2^-38 seconds", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 1. In units of 2^-38 seconds", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "ToFTempOffset2": { + "id": 47, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 2. In units of 2^-38 seconds", + "version": { + "first": 124, + "last": 267 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 2. In units of 2^-38 seconds", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 2. In units of 2^-38 seconds", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 2. In units of 2^-38 seconds", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 2. In units of 2^-38 seconds", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "ToFTempOffset3": { + "id": 48, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 3. In units of 2^-38 seconds", + "version": { + "first": 124, + "last": 267 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 3. In units of 2^-38 seconds", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 3. In units of 2^-38 seconds", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 3. In units of 2^-38 seconds", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The calibration offset for the temperature measurement on channel 3. In units of 2^-38 seconds", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "ToFTempCalibrate": { + "id": 49, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "WO", + "lvl2": "WO", + "lvl3": "WO", + "lvl4": "WO", + "lvl5": "WO", + "lvl6": "WO", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write the current temperature to this register to trigger a calibration step. In units of 2^-12 degrees celcius", + "version": { + "first": 124, + "last": 204 + }, + "values": { + "minimum": 0, + "maximum": 270336 + }, + "statictype": "dynamic" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write the current temperature to this register to trigger a calibration step. In units of 2^-12 degrees celcius", + "version": { + "first": 205, + "last": 322 + }, + "values": { + "minimum": 0, + "maximum": 286720 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "roland.drabesch@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write the current temperature to this register to trigger a calibration step. In units of 2^-12 degrees celcius", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "minimum": 0, + "maximum": 286720 + }, + "statictype": "dynamic" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write the current temperature to this register to trigger a calibration step. In units of 2^-12 degrees celcius", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "minimum": 0, + "maximum": 286720 + }, + "statictype": "dynamic" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write the current temperature to this register to trigger a calibration step. In units of 2^-12 degrees celcius", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "minimum": 0, + "maximum": 286720 + }, + "statictype": "dynamic" + } + ] + }, + "StoreConfiguration": { + "id": 50, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 141, + "last": 267 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 268, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "You do need to use this if you change any parameters in GENESISFLOW and want to keep them.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 601, + "last": 606 + }, + "statictype": "dynamic" + } + ] + }, + "SealDisplay": { + "id": 51, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to stop various display related registers being changed. Read back 1 for 'sealed' 0 for 'unsealed'", + "version": { + "first": 161, + "last": 267 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to stop various display related registers being changed. Read back 1 for 'sealed' 0 for 'unsealed'", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "roland.drabesch@xylem.com" + ], + "remarks": "Display should be sealed at end of manufacture (EMEA only). 251210 FieldTool modification enabled: The guidance was that CustTool is allowed to change legally relevant configuration in the field. So we do not require all legally relevant registers to be in the blacklist. This is because the restriction on changing legally relevant configuration in the field is only applied to customer-facing tools. CustTool is considered an internal �repair tool� that must be allowed to make such repairs to legally relevant configuration in the field.", + "region": { + "emea": { + "values": { + "default": 1 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to stop various display related registers being changed. Read back 1 for 'sealed' 0 for 'unsealed'", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to stop various display related registers being changed. Read back 1 for 'sealed' 0 for 'unsealed'", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to stop various display related registers being changed. Read back 1 for 'sealed' 0 for 'unsealed'", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "TriggerTest": { + "id": 52, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Test mode. This differs from normal measurement mode in that the volume is presented to 3 extra decimal places if possible. Read back 1 for Test mode, 0 otherwise", + "version": { + "first": 162, + "last": 267 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Test mode. This differs from normal measurement mode in that the volume is presented to 3 extra decimal places if possible. Read back 1 for Test mode, 0 otherwise", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Test mode. This differs from normal measurement mode in that the volume is presented to 3 extra decimal places if possible. Read back 1 for Test mode, 0 otherwise", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Test mode. This differs from normal measurement mode in that the volume is presented to 3 extra decimal places if possible. Read back 1 for Test mode, 0 otherwise", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to put GenesisFlow in Test mode. This differs from normal measurement mode in that the volume is presented to 3 extra decimal places if possible. Read back 1 for Test mode, 0 otherwise", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + } + ] + }, + "MaxValidAmplitude": { + "id": 53, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Maximum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 168, + "last": 267 + }, + "values": { + "default": 2936012800, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Maximum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 268, + "last": 322 + }, + "si_transform": { + "remarks": "Volts: voltage in 2^-22 millivolts ...", + "units": "v", + "scale_float_mult": 1.0, + "scale_power_2": -22, + "scale_power_10": -3, + "scale_float_div": 1.0, + "offset": 0 + }, + "values": { + "default": 2936012800, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "629145600 <-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "default": 2936012800 + } + }, + "na": { + "values": { + "default": 2936012800 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Maximum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 2936012800, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Maximum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 2936012800, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Maximum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 2936012800, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "MinValidAmplitude": { + "id": 54, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 168, + "last": 267 + }, + "values": { + "default": 209715200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 209715200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "<-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "default": 629145600 + } + }, + "na": { + "values": { + "default": 629145600 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 209715200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 209715200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Minimum amplitude for a valid signal in 2^-22mV units", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 209715200, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "HardErrorLimit": { + "id": 55, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of hard errors to allow before declaring a fatal error", + "version": { + "first": 176, + "last": 267 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of hard errors to allow before declaring a fatal error", + "version": { + "first": 268, + "last": 322 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "The number of hard errors before deciding a fatal error has occurred. This will probably only change in response to testing in the field.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of hard errors to allow before declaring a fatal error", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of hard errors to allow before declaring a fatal error", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Number of hard errors to allow before declaring a fatal error", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "Timeout": { + "id": 56, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The timeout for an ultrasonic measurement (0 - 128us, 1 - 256us, 2 - 1024us, 3 - 4096us)", + "version": { + "first": 273, + "last": 322 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "ben.davey@xylem.com" + ], + "remarks": "<-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "default": 1, + "DN100": [ + 1, + 2 + ], + "DN125": "TBD", + "DN200": 2, + "DN250": "TBD", + "DN300": 2 + } + }, + "na": { + "values": { + "default": 1, + "US4": "TBD", + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The timeout for an ultrasonic measurement (0 - 128us, 1 - 256us, 2 - 1024us, 3 - 4096us)", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The timeout for an ultrasonic measurement (0 - 128us, 1 - 256us, 2 - 1024us, 3 - 4096us)", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The timeout for an ultrasonic measurement (0 - 128us, 1 - 256us, 2 - 1024us, 3 - 4096us)", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "MaxDeltaToFDeviation": { + "id": 57, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum deviation of a valid delta tof from the recent mean. In 2^-38 seconds units", + "version": { + "first": 280, + "last": 322 + }, + "values": { + "default": 109951, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "0.4us for all meter sizes up to DN100, above that TBD. 0.4us is 109951 (0x1AD7F).", + "region": { + "emea": { + "values": { + "default": 109951, + "DN125": "TBD", + "DN200": "TBD", + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "default": 109951, + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum deviation of a valid delta tof from the recent mean. In 2^-38 seconds units", + "version": { + "first": 450, + "last": 463 + }, + "values": { + "default": 109951, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum deviation of a valid delta tof from the recent mean. In 2^-38 seconds units", + "version": { + "first": 500, + "last": 509 + }, + "values": { + "default": 109951, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum deviation of a valid delta tof from the recent mean. In 2^-38 seconds units", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 109951, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "MaxTempRange": { + "id": 58, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of temperatures between channels before one is rejected. In units of 2^-12 degrees celcius", + "version": { + "first": 289, + "last": 322 + }, + "values": { + "default": 8192, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 8192 + } + }, + "na": { + "values": { + "default": 8192 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of temperatures between channels before one is rejected. In units of 2^-12 degrees celcius", + "version": { + "first": 451, + "last": 463 + }, + "values": { + "default": 8192, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of temperatures between channels before one is rejected. In units of 2^-12 degrees celcius", + "version": { + "first": 504, + "last": 509 + }, + "values": { + "default": 8192, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of temperatures between channels before one is rejected. In units of 2^-12 degrees celcius", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 8192, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "MaxDeltaToFRange": { + "id": 59, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of delta time of flight between channels before one is rejected. In 2^-38 seconds units", + "version": { + "first": 289, + "last": 322 + }, + "values": { + "default": 137438, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "ben.davey@xylem.com" + ], + "remarks": "0.5us for all meter sizes. 0.5us is 137438 (0x218DE).", + "region": { + "emea": { + "values": { + "default": 137438 + } + }, + "na": { + "values": { + "default": 137438 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of delta time of flight between channels before one is rejected. In 2^-38 seconds units", + "version": { + "first": 451, + "last": 463 + }, + "values": { + "default": 137438, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of delta time of flight between channels before one is rejected. In 2^-38 seconds units", + "version": { + "first": 504, + "last": 509 + }, + "values": { + "default": 137438, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The maximum range of delta time of flight between channels before one is rejected. In 2^-38 seconds units", + "version": { + "first": 601, + "last": 606 + }, + "values": { + "default": 137438, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "LookupFileCrc": { + "id": 60, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Read for the current loaded lookup table CRC, write to set the expected CRC.", + "version": { + "first": 295, + "last": 322 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": "custom", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "mark.clemens@xylem.com" + ], + "remarks": "Will change with different releases - should be tracked elsewhere. meter_lut_202506270844_v0.19_crc_list.", + "region": { + "emea": { + "values": { + "DN40": 16549, + "DN50": 46338, + "DN65": 52673, + "DN80": 18061, + "DN100": 48372, + "DN125": 8134, + "DN150": 1637, + "DN200": 26376, + "DN250": 45341, + "DN300": 49157 + } + }, + "na": { + "values": { + "US1_5": 50785, + "US2": 58892, + "US3": 52036, + "US4": 50586, + "US6": 8010, + "US8": 52526, + "US10": 24406, + "US12": 11854 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + } + ] + }, + "DisplayLeadingZeros": { + "id": 61, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether to display leading zeros on row 2. If false leading zeros will be replaced with a space", + "version": { + "first": 302, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "This controls the temperature, pressure, flow rate readings on the smaller second row of digits. Previous code would display 012.3 C whereas with DisplayLeadingZeros set to 0 you�ll get _12.3 C (where the _ is actually just an empty space).", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + } + ] + }, + "InstallationCorrectionEnabled": { + "id": 62, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether the installation correction function is enabled or not", + "version": { + "first": 310, + "last": 318, + "exclude": [ + 315, + 316, + 317 + ] + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Installation detection / bend correction registers. Currently unreleased.", + "region": { + "emea": { + "values": { + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + } + ] + }, + "InstallationDetectionThreshold": { + "id": 63, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The threshold in ml for deciding on the meter installation", + "version": { + "first": 310, + "last": 318, + "exclude": [ + 315, + 316, + 317 + ] + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 10000000 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Installation detection / bend correction registers. Currently unreleased.", + "region": { + "emea": { + "values": { + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + } + ] + }, + "InstallationType": { + "id": 64, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The detected installation type, MS 16 bits is the type of installation, LS 16 bits is the proportion of correction to apply", + "version": { + "first": 310, + "last": 318, + "exclude": [ + 315, + 316, + 317 + ] + }, + "values": { + "minimum": 0, + "maximum": 163840 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Installation detection / bend correction registers. Currently unreleased.", + "region": { + "emea": { + "values": { + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "InstallationDetectionStatus": { + "id": 65, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Installation detection percentage complete, returns 100 if installation detection isn't running", + "version": { + "first": 310, + "last": 318, + "exclude": [ + 315, + 316, + 317 + ] + }, + "values": { + "minimum": 0, + "maximum": 100 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Installation detection / bend correction registers. Currently unreleased.", + "region": { + "emea": { + "values": { + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "US8": "TBD", + "US10": "TBD", + "US12": "TBD" + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FractionalBars": { + "id": 66, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether to display bars above the fractional digits on the LCD (if supported)", + "version": { + "first": 311, + "last": 321, + "exclude": [ + 315, + 316, + 317, + 319, + 320 + ] + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Probably customer specific in EMEA should always be false in NA.", + "region": { + "emea": { + "values": { + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + } + ] + }, + "CalibrationCount": { + "id": 67, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "A count of the relevant calibration values, for internal use", + "version": { + "first": 313, + "last": 322 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Internal use only, ignore.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "DelayedLedOff": { + "id": 68, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "WO", + "lvl6": "WO", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write the number of seconds in the future to turn off the LED output. This countdown will be cancelled if LedMode is changed during the delay.", + "version": { + "first": 314, + "last": 322 + }, + "values": { + "minimum": 0, + "maximum": 28800 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Enhancement for ensuring LED is off after metrology testing, useful to add to test software for GenesisFlow versions 3.16 and newer (not released yet June 2024).", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "DisplayVolumeRow2": { + "id": 69, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether or not to display the fractional digits of the volume as part of the row 2 carousel. Be aware this could change the scaling of the volume calculation if more decimal places now need calculating", + "version": { + "first": 322, + "last": 322 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "TBD", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "ro-check" + } + } + ] + } + }, + "status": { + "BAD_TEST": { + "id": 0 + }, + "BAD_CONFIG": { + "id": 1 + }, + "DID_NOT_STORE": { + "id": 2 + }, + "STORE_PENDING": { + "id": 3 + }, + "STORE_BUFFER_SIZE": { + "id": 4 + }, + "STRING_TOO_LONG": { + "id": 5 + }, + "BAD_DISPLAY_MODE": { + "id": 6 + }, + "GLASS_TOO_LONG": { + "id": 7 + }, + "SLOT_NOT_YOURS": { + "id": 8 + }, + "SUBLIST_TOO_LONG": { + "id": 9 + }, + "NO_TEMP_SENSOR": { + "id": 10 + }, + "UNDER_TEMP": { + "id": 11 + }, + "LOW_TEMP_WARNING": { + "id": 12 + }, + "HIGH_TEMP_WARNING": { + "id": 13 + }, + "OVER_TEMP": { + "id": 14 + }, + "MISMATCHING_LSB": { + "id": 15 + }, + "OUT_OF_RANGE_PWDIFF": { + "id": 16 + }, + "OUT_OF_RANGE_AMPLITUDE": { + "id": 17 + }, + "OUT_OF_RANGE_TOF": { + "id": 18 + }, + "OUT_OF_RANGE_DTOF": { + "id": 19 + }, + "TOF_TIMEOUT": { + "id": 20 + }, + "CAL_CHANGE": { + "id": 21 + }, + "OUT_OF_RANGE_INTERVAL": { + "id": 22 + }, + "VALIDATE_FAIL": { + "id": 23 + }, + "OUT_OF_RANGE_TEMP": { + "id": 24 + }, + "NOT_READY": { + "id": 25 + }, + "METROLOGY_ERROR": { + "id": 26 + }, + "GP30_ID_ERROR": { + "id": 27 + }, + "GP30_FLAG_ERROR": { + "id": 28 + }, + "GP30_TIMEOUT_ERROR": { + "id": 29 + }, + "GP30_REQUEST_ERROR": { + "id": 30 + }, + "GP30_SEQ_ERROR": { + "id": 31 + }, + "VALUE_SEALED": { + "id": 32 + }, + "IN_TEST_MODE": { + "id": 33 + }, + "UNKNOWN_STATE": { + "id": 34 + }, + "DISPLAY_INIT_SUCCEEDED": { + "id": 35 + }, + "DISPLAY_INIT_FAILED": { + "id": 36 + }, + "GP30_INIT_FAILED": { + "id": 37 + }, + "START_TIMER_SUCCEEDED": { + "id": 38 + }, + "START_TIMER_FAILED": { + "id": 39 + }, + "VOLUME_STORE_FAILED": { + "id": 40 + }, + "EMPTY_PIPE": { + "id": 41 + }, + "PARAMETER_ERROR": { + "id": 42 + }, + "GP30_INTERNAL_ERROR": { + "id": 43 + }, + "GLASS_TOO_SHORT": { + "id": 44 + }, + "STORE_CAL_FAILED": { + "id": 45 + }, + "STORE_CONF_FAILED": { + "id": 46 + }, + "MODE_CHANGE": { + "id": 47 + }, + "BAD_POW10": { + "id": 48 + }, + "BAD_DECIMAL_SEPARATOR": { + "id": 49 + }, + "BAD_UNITS": { + "id": 50 + }, + "BAD_ICONS": { + "id": 51 + }, + "BAD_THOUSAND_SEPARATOR": { + "id": 52 + }, + "NEW_LOCALE_REJECTED": { + "id": 53 + }, + "SET_ACCUMULATORS": { + "id": 54 + }, + "SEAL_OPENED": { + "id": 55 + }, + "CALIBRATION_RECALL_INCOMPLETE": { + "id": 56 + }, + "BAD_AMR_SETTINGS": { + "id": 57 + }, + "SUSPECT_CYCLE_SKIP": { + "id": 58 + }, + "LOOKUP_FILE_LOADED": { + "id": 59 + }, + "LOOKUP_FILE_METERSIZE_CHANGED": { + "id": 60 + }, + "LOOKUP_FILE_FAILURE": { + "id": 61 + }, + "LOOKUP_FILE_INVALID": { + "id": 62 + }, + "LOOKUP_CRC_MISMATCH": { + "id": 63 + }, + "LOOKUP_FILE_UNKNOWN_METERSIZE": { + "id": 64 + }, + "INSTALLATION_HIGH_TIME_DIFF": { + "id": 65 + }, + "INSTALLATION_LOW_FLOW_IGNORE": { + "id": 66 + }, + "INSTALLATION_BAD_CHANNELS": { + "id": 67 + }, + "INSTALLATION_FIXED": { + "id": 68 + } + } + }, + "HISTOGRAM": { + "id": 27, + "version": { + "first": 1, + "last": 4 + }, + "registers": {} + }, + "IRDA": { + "id": 20, + "version": { + "first": 10, + "last": 213 + }, + "registers": { + "PulseReportRate": { + "id": 0, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate at which pulse reports are sent to the IrDA pulse adapter", + "version": { + "first": 10, + "last": 97 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate at which pulse reports are sent to the IrDA pulse adapter", + "version": { + "first": 98, + "last": 136 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The rate at which pulse reports are sent to the IrDA pulse adapter", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "1 sec.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "AdapterPresenceLimit": { + "id": 1, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of 15 minute periods we have to have received no valid IrDA messages to assume there is no adapter present", + "version": { + "first": 18, + "last": 28 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of 15 minute periods we have to have received no valid IrDA messages to assume there is no adapter present", + "version": { + "first": 29, + "last": 97 + }, + "values": { + "default": 3, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of 15 minute periods we have to have received no valid IrDA messages to assume there is no adapter present", + "version": { + "first": 98, + "last": 136 + }, + "values": { + "default": 3, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of 15 minute periods we have to have received no valid IrDA messages to assume there is no adapter present", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "default": 3, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + }, + "na": { + "values": { + "default": 3 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PulseSequence": { + "id": 2, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The present sequence number used in pulse reports", + "version": { + "first": 26, + "last": 97 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The present sequence number used in pulse reports", + "version": { + "first": 98, + "last": 114 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The present sequence number used in pulse reports", + "version": { + "first": 115, + "last": 136 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The present sequence number used in pulse reports", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "StoreConfiguration": { + "id": 3, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 26, + "last": 97 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 98, + "last": 136 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 161, + "last": 213 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "You do need to use this if you change any parameters in IRDA and want to keep them.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + }, + "AMRDigits": { + "id": 4, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of digits to use for AMR", + "version": { + "first": 40, + "last": 52 + }, + "values": { + "default": 9, + "minimum": 0, + "maximum": 9 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of digits to use for AMR", + "version": { + "first": 53, + "last": 97 + }, + "values": { + "default": 9, + "minimum": 0, + "maximum": 9 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of digits to use for AMR", + "version": { + "first": 98, + "last": 136 + }, + "values": { + "default": 8, + "minimum": 0, + "maximum": 9 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of digits to use for AMR", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "default": 8, + "minimum": 0, + "maximum": 9 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "Cordonel NA can use a subset of the display digits for AMR readings. This is the number of digits to use.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "AMROffset": { + "id": 5, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The offset of the AMR smallest digit from the right (always negative)", + "version": { + "first": 40, + "last": 97 + }, + "values": { + "default": 0, + "minimum": -9, + "maximum": 0 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The offset of the AMR smallest digit from the right (always negative)", + "version": { + "first": 98, + "last": 136 + }, + "values": { + "default": 0, + "minimum": -9, + "maximum": 0 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "int8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The offset of the AMR smallest digit from the right (always negative)", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "default": 0, + "minimum": -9, + "maximum": 0 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "Cordonel NA can use a subset of the display digits for AMR readings. This is the offset (from the right).", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "UI1203Fields": { + "id": 6, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A bitfield of the optional fields being used for UI-1203", + "version": { + "first": 40, + "last": 97 + }, + "values": { + "default": 268, + "minimum": 0, + "maximum": 268 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A bitfield of the optional fields being used for UI-1203", + "version": { + "first": 98, + "last": 136 + }, + "values": { + "default": 268, + "minimum": 0, + "maximum": 268 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A bitfield of the optional fields being used for UI-1203", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "default": 268, + "minimum": 0, + "maximum": 268 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "These are the fields used in NA AMR reading strings.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "MfgDate": { + "id": 7, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A timestamp of meter manufacture in seconds since 1/1/2000 00:00:00 UTC", + "version": { + "first": 43, + "last": 136 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "time_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A timestamp of meter manufacture in seconds since 1/1/2000 00:00:00 UTC", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "Simple timestamp, should be filled in at the end of manufacture. Time now.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "DisplayAMRDigits": { + "id": 8, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether or not to display AMR digits on the screen", + "version": { + "first": 92, + "last": 97 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether or not to display AMR digits on the screen", + "version": { + "first": 98, + "last": 136 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether or not to display AMR digits on the screen", + "version": { + "first": 161, + "last": 213 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "In NA the AMR digits should be displayed on the LCD periodically, in EMEA they shouldn't.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "AdapterID": { + "id": 9, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The serial number of the current pulse adapter", + "version": { + "first": 193, + "last": 213 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "AdapterFwVersion": { + "id": 10, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The firmware version of the current pulse adapter", + "version": { + "first": 193, + "last": 213 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "ExtendedResolution": { + "id": 11, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Boolean controlled by UI-1236 to control resolution of cubic feet unit in some meter size", + "version": { + "first": 210, + "last": 213 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Internal use in firmware only.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "BAD_LENGTH": { + "id": 1 + }, + "OUT_OF_RANGE": { + "id": 2 + }, + "PENDING_STORE": { + "id": 3 + }, + "DID_NOT_STORE": { + "id": 4 + }, + "TOO_MANY_BYTES": { + "id": 5 + } + } + }, + "LOGGER": { + "id": 8, + "version": { + "first": 1, + "last": 19 + }, + "registers": { + "Quota": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A quota in bytes for the log. The Logger does not apply any policy to how the quota is allocated, this is left as a restriction to be applied on a product by product basis.", + "version": { + "first": 1, + "last": 19 + }, + "values": { + "default": 4096, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Drive": { + "id": 1, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The drive to write to.", + "version": { + "first": 1, + "last": 19 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TriggerLogFlush": { + "id": 2, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Writing TRUE will force a log flush", + "version": { + "first": 7, + "last": 19 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "StoreConfiguration": { + "id": 3, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 16, + "last": 19 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "You do need to use this if you change any parameters in LOGGER and want to keep them.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "id": 0 + }, + "RESTARTED": { + "id": 1 + }, + "BLOCK_LISTING": { + "id": 2 + }, + "PENDING_STORE": { + "id": 3 + }, + "DID_NOT_STORE": { + "id": 4 + } + } + }, + "METROLOGYASST": { + "id": 18, + "version": { + "first": 4, + "last": 118 + }, + "registers": { + "ILoopMaxFlowRate": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The flow rate that gives max output on the current loop", + "version": { + "first": 5, + "last": 36 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The flow rate that gives max output on the current loop", + "version": { + "first": 82, + "last": 118 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Ignore, no current loop.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "StoreConfiguration": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Writing TRUE to this register stores the values of the other registers to the non-volatile memory", + "version": { + "first": 7, + "last": 81 + }, + "statictype": "dynamic" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Writing TRUE to this register stores the values of the other registers to the non-volatile memory", + "version": { + "first": 82, + "last": 118 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "You do need to use this if you change any parameters in METROLOGYASST and want to keep them.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + }, + "PulseWeight": { + "id": 2, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Volume represented by one pulse in ml. If this is zero pulse output will not be enabled", + "version": { + "first": 7, + "last": 81 + }, + "values": { + "default": 1000, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Volume represented by one pulse in ml. If this is zero pulse output will not be enabled", + "version": { + "first": 82, + "last": 101 + }, + "values": { + "default": 1000, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Volume represented by one pulse. Units of (2^-5)ml. If this is zero pulse output will not be enabled", + "version": { + "first": 102, + "last": 118 + }, + "values": { + "default": 32000, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "G01 Pulse value (100 l/Imp., ...). Customer specific.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PulseMode": { + "id": 3, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The way pulses are output on the two available channels. This is an enum of type pulse_mode_t.", + "version": { + "first": 7, + "last": 81 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The way pulses are output on the two available channels. This is an enum of type pulse_mode_t.", + "version": { + "first": 82, + "last": 97 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 6 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The way pulses are output on the two available channels. This is an enum of type pulse_mode_t.", + "version": { + "first": 98, + "last": 118 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 7 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "G02 Pulse type (Netted Imp./Tamp. (-), �). Customer specific.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PulseLength": { + "id": 4, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The length of a pulse. This is an enum of type pulse_length_t.", + "version": { + "first": 7, + "last": 72 + }, + "values": { + "default": 5, + "minimum": 0, + "maximum": 8 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The length of a pulse. This is an enum of type pulse_length_t.", + "version": { + "first": 73, + "last": 81 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 8 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The length of a pulse. This is an enum of type pulse_length_t.", + "version": { + "first": 82, + "last": 118 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 10 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "G03 Pulse length (500ms, �). Customer specific.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "FlowUnits": { + "id": 5, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The units of flow rate to display on the LCD. An enum of type displayflowunits_t", + "version": { + "first": 8, + "last": 81 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 8 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The units of flow rate to display on the LCD. An enum of type displayflowunits_t", + "version": { + "first": 82, + "last": 118 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 8 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "C05 unit (m�, kl, US-Gall./Imp.-Gall, Barrel, ...)", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "FlowPoint": { + "id": 6, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Position of the decimal point on the LCD for flow rate. An enum of type displayflowpoint_t", + "version": { + "first": 8, + "last": 81 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 4 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Position of the decimal point on the LCD for flow rate. An enum of type displayflowpoint_t", + "version": { + "first": 82, + "last": 118 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 4 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Counter size and unit. See FlowPoint.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "ILoopRate": { + "id": 7, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The update rate for the current loop", + "version": { + "first": 9, + "last": 36 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The update rate for the current loop", + "version": { + "first": 82, + "last": 118 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Ignore, no current loop.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "TemperatureUnits": { + "id": 8, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Units for displaying temperature on the LCD. 0 is Celcius, 1 is Fahrenheit.", + "version": { + "first": 13, + "last": 81 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Units for displaying temperature on the LCD. 0 is Celcius, 1 is Fahrenheit.", + "version": { + "first": 82, + "last": 118 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "�C - EMEA/China / �F - USA.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 1 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureUnits": { + "id": 9, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Units for displaying pressure on the LCD. 0 is Mpa, 1 is PSI.", + "version": { + "first": 13, + "last": 81 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + }, + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Units for displaying pressure on the LCD. 0 is Mpa, 1 is PSI.", + "version": { + "first": 82, + "last": 118 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "Mpa - EMEA/China / PSI - USA / Bar - USA.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "custom": [ + 1, + 2 + ] + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureRate": { + "id": 10, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time between pressure measurements in milliseconds", + "version": { + "first": 13, + "last": 71 + }, + "values": { + "default": 300000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time between pressure measurements in milliseconds", + "version": { + "first": 72, + "last": 81 + }, + "values": { + "default": 60000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time between pressure measurements in milliseconds", + "version": { + "first": 82, + "last": 118 + }, + "values": { + "default": 60000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 60000 + } + }, + "na": { + "values": { + "default": 60000 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureOffset": { + "id": 11, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Value in Pa to subtract from measured value to correct for atmospheric pressure", + "version": { + "first": 13, + "last": 58 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Value in Pa to subtract from measured value to correct for atmospheric pressure", + "version": { + "first": 59, + "last": 79 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Value in Pa to subtract from measured value to correct for atmospheric pressure", + "version": { + "first": 80, + "last": 81 + }, + "values": { + "default": 0, + "minimum": -2000000, + "maximum": 2000000 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Value in Pa to subtract from measured value to correct for atmospheric pressure", + "version": { + "first": 82, + "last": 118 + }, + "values": { + "default": 0, + "minimum": -2000000, + "maximum": 2000000 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "-> 0", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressurePresent": { + "id": 12, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether there is a pressure sensor present", + "version": { + "first": 63, + "last": 70 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Whether there is a pressure sensor present", + "version": { + "first": 71, + "last": 118 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com" + ], + "remarks": "B09 Housing option (D,Y). Variant specific.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureMeasure": { + "id": 13, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write TRUE to trigger a pressure measurement, Read to get the latest measured value in Pa", + "version": { + "first": 65, + "last": 118 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "LatestFlowRate": { + "id": 14, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Returns the latest flow rate. Write 0 to change scaling to internal scaling, 1 to change to display scaling", + "version": { + "first": 92, + "last": 118 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "GenerateFwdPulses": { + "id": 15, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Generate some artificial pulses, used for testing", + "version": { + "first": 97, + "last": 118 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "For use in testing.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "GenerateRevPulses": { + "id": 16, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Generate some artificial pulses, used for testing", + "version": { + "first": 97, + "last": 118 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "For use in testing.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PulseEvenDistribution": { + "id": 17, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Boolean value for whether pulse output is to space the pulses evenly (TRUE) or grouped (FALSE)", + "version": { + "first": 98, + "last": 118 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 1, + "DN300": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PulseResolution": { + "id": 18, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The number of bits of fractional resolution in a pulse event", + "version": { + "first": 98, + "last": 118 + }, + "values": { + "minimum": 0, + "maximum": 7 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "Read only.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "PressureCalibration": { + "id": 19, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Value in Pa to add to measured value after recalibration to correct for sensor drift over time", + "version": { + "first": 108, + "last": 111 + }, + "values": { + "default": 0, + "minimum": -1000000, + "maximum": 1000000 + }, + "statictype": "static" + }, + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Value in Pa to add to measured value after recalibration to correct for sensor drift over time", + "version": { + "first": 112, + "last": 118 + }, + "values": { + "default": 0, + "minimum": -4000000, + "maximum": 4000000 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "DisplayEnable": { + "id": 20, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RW", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bitfield of the items to show on the display. 1 - flowrate, 2 - temperature, 4 - pressure. Note, disabling flowrate requires reboot for it to take effect.", + "version": { + "first": 116, + "last": 118 + }, + "values": { + "default": 7, + "minimum": 0, + "maximum": 7 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "Customer specific, controls display of items on row 2. NOTE: In 1.4 stream this can be used to work around bug where pressure is displayed with no pressure sensor (CORDHW-3065).", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureFlowRateCorrectionA": { + "id": 21, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Pressure readings must be corrected due to the water flow rate. This is the correction factor that is applied to the flow rate squared (units Pa / (ml/s)^2). Write 0x80000000 to fall back to the internal lookup table based on meter size. The number read back is the value being used either from the intenal lookup or having been written to this register.", + "version": { + "first": 118, + "last": 118 + }, + "values": { + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "TBD", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureFlowRateCorrectionB": { + "id": 22, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Pressure readings must be corrected due to the water flow rate. This is the correction factor that is applied to the flow rate (units Pa / (ml/s)). Write 0x80000000 to fall back to the internal lookup table based on meter size. The number read back is the value being used either from the intenal lookup or having been written to this register.", + "version": { + "first": 118, + "last": 118 + }, + "values": { + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "TBD", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "DID_NOT_STORE": { + "id": 1 + }, + "PENDING_STORE": { + "id": 2 + } + } + }, + "NA2WALARMS": { + "id": 23, + "version": { + "first": 41, + "last": 102 + }, + "registers": { + "StoreConfiguration": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 41, + "last": 102 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "You do need to use this if you change any parameters in NA2WALARMS and want to keep them.", + "region": { + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + }, + "PredefEnable": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bitmask of enabled predefined alarms", + "version": { + "first": 41, + "last": 102 + }, + "values": { + "default": 561047, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "NA has a series of alarms called 'predefined' these are the ones that should be enabled.", + "region": { + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + } + }, + "status": { + "SENSOR_INVALID": { + "id": 0 + }, + "UNKNOWN_PARAMETER": { + "id": 1 + }, + "ALARM_INVALID": { + "id": 2 + }, + "UNIMPLEMENTED": { + "id": 3 + }, + "UNCONFIGURED": { + "id": 4 + }, + "CONFIG_INVALID": { + "id": 5 + }, + "NO_LATEST": { + "id": 6 + }, + "FIXED_TYPE": { + "id": 7 + }, + "PREDEF_SET": { + "id": 8 + }, + "USERDEF_VOLUME_SET": { + "id": 9 + }, + "USERDEF_TEMPERATURE_SET": { + "id": 10 + }, + "USERDEF_PRESSURE_SET": { + "id": 11 + }, + "PREDEF_CLEAR": { + "id": 12 + }, + "USERDEF_VOLUME_CLEAR": { + "id": 13 + }, + "USERDEF_TEMPERATURE_CLEAR": { + "id": 14 + }, + "USERDEF_PRESSURE_CLEAR": { + "id": 15 + }, + "DID_NOT_STORE": { + "id": 16 + }, + "STORE_PENDING": { + "id": 17 + }, + "PREDEF_BACKUP_FAILED": { + "id": 18 + }, + "PREDEF_RESTORE_FAILED": { + "id": 19 + }, + "USERDEF_BACKUP_FAILED": { + "id": 20 + }, + "USERDEF_RESTORE_FAILED": { + "id": 21 + }, + "USERDEF_UNSUPPORTED_TYPE_FOR_SENSOR": { + "id": 22 + } + } + }, + "NA2WLOGGER": { + "id": 22, + "version": { + "first": 1, + "last": 200 + }, + "registers": { + "StoreConfiguration": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "RW", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Store all configuration items in non-volatile memory.", + "version": { + "first": 147, + "last": 200 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + }, + "LimitLogSize": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Override the maximum number of entries per log (0 keeps default)", + "version": { + "first": 147, + "last": 200 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "id": 1 + }, + "NOT_MAIN_LOOP": { + "id": 2 + }, + "LOG_INVALID": { + "id": 3 + }, + "LOG_OPEN_FAILED": { + "id": 4 + }, + "LOG_CLOSE_FAILED": { + "id": 5 + }, + "LOG_REMOVE_FAILED": { + "id": 6 + }, + "LOG_FLUSH_FAILED": { + "id": 7 + }, + "LOG_CLEAR_FAILED": { + "id": 8 + }, + "LOG_BAD_REQUEST": { + "id": 9 + }, + "LOG_BAD_LIMIT": { + "id": 10 + }, + "LOG_BUSY": { + "id": 11 + }, + "QUERY_FAILED": { + "id": 12 + }, + "QUERY_UNKNOWN_SENSOR": { + "id": 13 + }, + "QUERY_UNKNOWN_LOGFILE": { + "id": 14 + }, + "QUERY_BAD_ARGS": { + "id": 15 + }, + "QUERY_NOT_ENOUGH_SPACE": { + "id": 16 + }, + "QUERY_NO_RECORDS_FOUND": { + "id": 17 + }, + "QUERY_FILE_READ_PROBLEM": { + "id": 18 + }, + "SETTINGS_STORE_FAILED": { + "id": 19 + }, + "SETTINGS_BAD_SENSORID": { + "id": 20 + }, + "SETTINGS_BAD_PERIOD": { + "id": 21 + }, + "SETTINGS_BAD_CHECKSUM": { + "id": 22 + }, + "SETTINGS_BAD_TIMESTAMP": { + "id": 23 + }, + "FILING_BAD": { + "id": 24 + }, + "BAD_RECORD": { + "id": 25 + }, + "RANGE_SENSORID_BAD": { + "id": 26 + }, + "STORE_PENDING": { + "id": 27 + }, + "DID_NOT_STORE": { + "id": 28 + } + } + }, + "NFC": { + "id": 21, + "version": { + "first": 1, + "last": 65 + }, + "registers": { + "EraseRMA": { + "id": 0, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RW" + }, + "description": "Writing TRUE to this register erases the RMA area", + "version": { + "first": 7, + "last": 65 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "You may wish to do this at the end of manufacture to clear all the old data out.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "ForceUpdate": { + "id": 1, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Write to this to force an update of some data. 0 - NDEF readings, 1 - NDEF details, 2 - RMA details", + "version": { + "first": 49, + "last": 65 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "NDEF_WRITE_FAIL": { + "id": 1 + }, + "NDEF_VERIFY_FAIL": { + "id": 2 + }, + "NDEF_UPDATE_FAIL": { + "id": 3 + }, + "RMA_WRITE_FAIL": { + "id": 4 + }, + "RMA_VERIFY_FAIL": { + "id": 5 + }, + "RMA_BAD_ENTRY": { + "id": 6 + }, + "INIT_FAIL": { + "id": 7 + }, + "NDEF_CONFIG_FAIL": { + "id": 8 + }, + "RMA_CONFIG_FAIL": { + "id": 9 + }, + "NDEF_START_FAIL": { + "id": 10 + }, + "RMA_START_FAIL": { + "id": 11 + } + } + }, + "OPTICALINTERFACE": { + "id": 256, + "version": { + "first": 1, + "last": 366 + }, + "builds": { + "emea": [ + { + "id": 230, + "fw": "106E" + }, + { + "id": 230, + "fw": "106F" + }, + { + "id": 257, + "fw": "1107" + }, + { + "id": 257, + "fw": "1108" + }, + { + "id": 278, + "fw": "1247" + }, + { + "id": 318, + "fw": "130A" + }, + { + "id": 330, + "fw": "130B" + }, + { + "id": 331, + "fw": "13F3" + }, + { + "id": 346, + "fw": "1310" + }, + { + "id": 350, + "fw": "1416" + }, + { + "id": 351, + "fw": "14E0" + }, + { + "id": 358, + "fw": "14E1" + }, + { + "id": 359, + "fw": "14E2" + }, + { + "id": 360, + "fw": "14E3" + }, + { + "id": 361, + "fw": "1417" + }, + { + "id": 362, + "fw": "1420" + }, + { + "id": 363, + "fw": "1421" + }, + { + "id": 364, + "fw": "1422" + }, + { + "id": 365, + "fw": "1423" + }, + { + "id": 366, + "fw": "1424" + } + ], + "na": [ + { + "id": 278, + "fw": "1228" + }, + { + "id": 310, + "fw": "2002" + }, + { + "id": 324, + "fw": "2006" + }, + { + "id": 352, + "fw": "2013" + } + ] + } + }, + "OPTICALPORT": { + "id": 5, + "version": { + "first": 1, + "last": 55 + }, + "registers": { + "BaudRateCapabilities": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Bitmask of supported rates on the given hardware.", + "version": { + "first": 2, + "last": 55 + }, + "statictype": "static" + } + ] + }, + "PacketSizeCapabilities": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Bitmask of supported packet sizes.", + "version": { + "first": 2, + "last": 55 + }, + "values": { + "default": 64 + }, + "statictype": "static" + } + ] + }, + "ProtocolVersion": { + "id": 2, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Version number as fixed point 16.16 format BCD.", + "version": { + "first": 2, + "last": 55 + }, + "statictype": "static" + } + ] + }, + "BaudRateSelected": { + "id": 3, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Baud rate in bits per second.", + "version": { + "first": 2, + "last": 55 + }, + "statictype": "dynamic" + } + ] + }, + "PacketSizeSelected": { + "id": 4, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Packet size in bytes.", + "version": { + "first": 2, + "last": 55 + }, + "statictype": "dynamic" + } + ] + }, + "ExternalUartControl": { + "id": 5, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "WO", + "lvl2": "WO", + "lvl3": "WO", + "lvl4": "WO", + "lvl5": "WO", + "lvl6": "WO", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Surrenders the UART to another application", + "version": { + "first": 49, + "last": 55 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "PAYLOAD_COUNT": { + "id": 0 + }, + "INVALID_SUBREASON": { + "id": 1 + }, + "INVALID_BAUDRATE": { + "id": 2 + }, + "INVALID_BUFFERSIZE": { + "id": 3 + }, + "CRCFAILURE": { + "id": 4 + }, + "UNRECOGNISEDCMD": { + "id": 5 + }, + "FRAMING": { + "id": 6 + }, + "OVERFLOW": { + "id": 7 + }, + "PACKETTIMEOUT": { + "id": 8 + }, + "INVALIDESCAPE": { + "id": 9 + }, + "UNKNOWN_PARAMETER": { + "id": 10 + }, + "TRAINING_FAILED": { + "id": 11 + }, + "NOBREAK": { + "id": 12 + } + } + }, + "PERIODICLOG": { + "id": 17, + "version": { + "first": 1, + "last": 78 + }, + "registers": { + "DataLogContents": { + "id": 0, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit Mask of the items to store in LOG memory", + "version": { + "first": 10, + "last": 77 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 201335811 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "This is a copy of DataLogContents from SENSUSRADIO. Don't modify here.", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 206906379, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please set the desired content in SENSUSRADIO and wait 22 seconds for storage.", + "region": { + "emea": { + "values": { + "default": 206906379 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "DataLogPeriod": { + "id": 1, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Storage Period of the LOG memory in minutes", + "version": { + "first": 10, + "last": 77 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A Copy from SENSUSRADIO. Storage Period in minutes of the LOG memory in minutes. Don't modify here.", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please set the desired content in SENSUSRADIO and wait 22 seconds for storage.", + "region": { + "emea": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "AverageFlowPeriod": { + "id": 2, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Averiging period for the Min/Max calculation of LOG&FDR memory", + "version": { + "first": 10, + "last": 77 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 5 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A Copy from SENSUSRADIO. Averaging period in minutes. It is calculated automatically in SENSURADIO. Don't modify.", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 5 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FixedDateReadingContents": { + "id": 3, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bit Mask of the items to store in FDR memory", + "version": { + "first": 10, + "last": 77 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 201335811 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A Copy from SENSUSRADIO. Bit Mask of the FDR items to be logged. Don't modify here. Set this parameter in SENSUSRADIO and wait 22 sec for storage in PERIODICLOG", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 206906379, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 206906379 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "FixedDateDayOfMonth": { + "id": 4, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The day of month the FDR storage will take place at 00:00", + "version": { + "first": 10, + "last": 77 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 1 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A Copy from SENSUSRADIO. The day of month where FDR storage will take place at 00:00. Don't modify here.", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please set the desired content in SENSUSRADIO and wait 22 seconds for storage.", + "region": { + "emea": { + "values": { + "default": 1 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PeriodicLogLifeTimeCounter": { + "id": 5, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A counter used for internal purposes", + "version": { + "first": 15, + "last": 78 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "ResetCounter": { + "id": 6, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A counter to monitor the application resets", + "version": { + "first": 20, + "last": 78 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + } + }, + "status": { + "FOPEN": { + "action": "Perform a FOPEN to any of the logging files logdata, fdrdata, evtdata ... ", + "description": "FOPEN action failed due to any reason (means fopen error)", + "id": 0 + }, + "BAD_CONFIG": { + "action": "Handle the internal dual logging file access by SensusRfRadio and by PeriodicLogging", + "description": "Mutual Exclude file access failed due to a wrong internal status order", + "id": 1 + }, + "STRING_TOO_LONG": { + "action": "Currently unused or not define action", + "description": "Currently not generated or returned", + "id": 2 + }, + "FILES_IN_USE": { + "action": "Handle the internal dual logging file access by SensusRfRadio and by PeriodicLogging", + "description": "File access denied because the other party has currently access to the file(s)", + "id": 3 + } + } + }, + "POWERMON": { + "id": 1, + "version": { + "first": 17, + "last": 72 + }, + "registers": { + "BatteryVoltage": { + "id": 0, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Measured battery terminal voltage in 1mV units.", + "version": { + "first": 17, + "last": 72 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "BatteryManufacturer": { + "id": 1, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "String describing the battery brand.", + "version": { + "first": 17, + "last": 72 + }, + "values": { + "default": "Tadiran" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "BatterySize": { + "id": 2, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "One of: 0 = battery absent; 1 = built in; 2 = other; 3 = AA; 4 = AAA; 5 = C; 6 = D; 255 = unknown", + "version": { + "first": 17, + "last": 72 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "uwe.brehm@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 6 + } + }, + "na": { + "values": { + "default": 6 + } + } + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "BatteryQuantity": { + "id": 4, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The number of installed batteries.", + "version": { + "first": 17, + "last": 59 + }, + "values": { + "default": 1 + }, + "statictype": "static" + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of installed batteries.", + "version": { + "first": 60, + "last": 72 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "uwe.brehm@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 2 + } + }, + "na": { + "values": { + "default": 2 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "BatteryRatedVoltage": { + "id": 5, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Datasheet terminal voltage in 100mV units as manufactured.", + "version": { + "first": 17, + "last": 72 + }, + "values": { + "default": 36, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "uwe.brehm@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "BatteryVoltageMinThreshold": { + "id": 7, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Datasheet terminal voltage in 100mV units below which the cell is considered empty.", + "version": { + "first": 17, + "last": 72 + }, + "values": { + "default": 28, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "uwe.brehm@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "BatterySelection": { + "id": 8, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Chosen manufacturer from the internal lookup table of known batteries.", + "version": { + "first": 20, + "last": 72 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "uwe.brehm@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TotalUsedCharge": { + "id": 9, + "details": [ + { + "type": "uint64_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Accumulated charge used in uAs.", + "version": { + "first": 24, + "last": 72 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "TotalUsedSeconds": { + "id": 10, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Elapsed time since manufacture in seconds.", + "version": { + "first": 39, + "last": 72 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "WarnFromClamp": { + "id": 11, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Time in seconds for which the projected end time cannot exceed.", + "version": { + "first": 39, + "last": 72 + }, + "values": { + "default": 473040000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "This should be set to the expected life of the meter. In the early days the expected lifetime will be this. Set to 22 years to include warehouse storage time.", + "region": { + "emea": { + "values": { + "default": 694224000 + } + }, + "na": { + "values": { + "default": 694224000 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "BatteryMilliAHrRating": { + "id": 12, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Datasheet capacity in mAh units as manufactured.", + "version": { + "first": 45, + "last": 72 + }, + "values": { + "default": 19000, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "uwe.brehm@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "StoreConfiguration": { + "id": 13, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 61, + "last": 72 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "You do need to use this if you change any parameters in POWERMON and want to keep them.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + }, + "CriticalRepeatLimit": { + "id": 14, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of 15 minute periods of consecutive low battery voltage required for the battery to be deemed critically low", + "version": { + "first": 66, + "last": 72 + }, + "values": { + "default": 96, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "RemainingSeconds": { + "id": 15, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "", + "version": { + "first": 69, + "last": 72, + "exclude": [ + 70 + ] + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "" + ], + "remarks": "Read-only value for remaining battery lifetime, not useful in manufacture, ignore", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + } + }, + "status": { + "TABLE_FULL": { + "id": 0 + }, + "UNKNOWN_PARAMETER": { + "id": 1 + }, + "OUT_OF_RANGE": { + "id": 2 + }, + "STOP_CYCLING": { + "id": 3 + }, + "TEMPERATURE_LIMIT": { + "id": 4 + }, + "BATTERY_STATUS_CHANGED": { + "id": 5 + }, + "BATTERY_CRITICAL": { + "id": 6 + }, + "PENDING_STORE": { + "id": 7 + }, + "DID_NOT_STORE": { + "id": 8 + } + } + }, + "SENSUSRADIO": { + "id": 16, + "version": { + "first": 100, + "last": 554 + }, + "registers": { + "TxInterval": { + "id": 0, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The SensusRF transmission interval in seconds for the BUPs", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 15 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "OmTxInterval": { + "id": 1, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The Open Metering transmission interval in seconds", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 3600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 900 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "LatInterval": { + "id": 2, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The Listen After Talk interval as number 'n'. After every 'n' BUPs follows a BUP-LAT", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "WakeupInterval": { + "id": 3, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The Wake Up interval in seconds 's'. Every 's' seconds will the meter sniff for a WakeUp tone. 's' == 0 means active sending and no sniffing", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "MbusState": { + "id": 4, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The internal MBus state (Open Metering). A bit oriented value. Do not write if you do not know details", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 7, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": true, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 7 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "FrequencyIndicator": { + "id": 5, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A number that shows the radio frequency used. Normally 433 or 868", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 433, + "minimum": 433, + "maximum": 868 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Constant, do not change.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "FrequencyOffset": { + "id": 6, + "details": [ + { + "type": "int16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A radio frequency calibration parameter", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": -32768, + "maximum": 32767 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PowerLevel": { + "id": 7, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A parameter for controling the radio power", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 127 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "SystemState": { + "id": 9, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The internal System State of the Radio", + "version": { + "first": 100, + "last": 544 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Set to 0xFF at the end of parameterization to trigger shipping mode.", + "region": { + "emea": null + } + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The internal System State of the Radio", + "version": { + "first": 545, + "last": 554 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Set to 0xFF at the end of parameterization to trigger shipping mode.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "RadioAddress": { + "id": 10, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The radio address used by the meter", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Set final radio address.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "UtcTimeOffset": { + "id": 11, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The offset the between meter time and UTC for time correction", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": -2147483648, + "maximum": 2147483647 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "SentBytesCounter": { + "id": 12, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of bytes sent during meter lifetime", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "ReceivedBytesCounter": { + "id": 13, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of bytes received during meter lifetime", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "ResetCounter": { + "id": 14, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of resets the application SensusRfRadio has performed over lifetime", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "BootLoaderState": { + "id": 15, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An internal temporary state (enum) regarding the firmwware update", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "LeakFlowThreshold": { + "id": 16, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The flow value of the leakage (low flow) detection", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 25, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "LeakFlowTimeThreshold": { + "id": 17, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time in minutes of the leakage (low flow) detection threshold", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 360, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "BrokenPipeFlowThreshold": { + "id": 18, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The flow value of the broken pipe (high flow) detection", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 2500, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "BrokenPipeFlowTimeThreshold": { + "id": 19, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time in Minutes of the broken pipe (high flow) detection threshold", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 180, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureMaxThreshold": { + "id": 20, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The pressure value of the maximum (high) pressure alarm", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 160, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureMinThreshold": { + "id": 21, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The pressure value of the minimum (low) pressure alarm", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureLimitTimeMaxThreshold": { + "id": 22, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time in seconds of the maximum (high) pressure alarm threshold", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureLimitTimeMinThreshold": { + "id": 23, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time in seconds of the minimum (low) pressure alarm threshold", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureMeasurePeriod": { + "id": 24, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The period in seconds with which the pressure is measured (fix 60 sec)", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 60, + "minimum": 60, + "maximum": 60 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureUnit": { + "id": 25, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An enum respresenting the unit of pressure (0= no pressure sensor, 1= MPas, 2= PSI, 3= Bar)", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 3 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PressureGaugeOffset": { + "id": 26, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The gauge offset of the pressure sensor value in mBar", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "TemperatureMaxThreshold": { + "id": 27, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The temperature value of the maximum (high) temperature alarm", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 50, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureMinThreshold": { + "id": 28, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The temperature value of the minimum (low) temperature alarm", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureTimeMaxThreshold": { + "id": 29, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time in Minutes of the maximum (high) temperature alarm threshold", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureTimeMinThreshold": { + "id": 30, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The time in Minutes of the minimum (low) temperature alarm threshold", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureMeasurePeriod": { + "id": 31, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The period in seconds with which the temperature is measured (only 60 is valid)", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 60, + "minimum": 60, + "maximum": 60 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TemperatureUnit": { + "id": 32, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An enum respresenting the unit of temperature (1= Celsius, 2= Fahrenheit)", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PulseOutWidth": { + "id": 33, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An enumerator defining the currently active PulseWidth (0 ... 8 for non testmode values and 9 ... 15 for testmode)", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 15 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PulseOutDivisor": { + "id": 34, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A number representing the pulse weight multiplicator 1, 10, 100 or 1000", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1000 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PulseOutMode": { + "id": 35, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An enum (0 to 3) representing the pulse output mode (0= deactivated, ...)", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 3 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "CurrentLoopMax": { + "id": 36, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A parameter regarding the non existing current loop output", + "version": { + "first": 100, + "last": 554 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Not used anymore.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "CurrentLoopSource": { + "id": 37, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A parameter regarding the non existing current loop output", + "version": { + "first": 100, + "last": 554 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Not used anymore.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "MainAlarmMask": { + "id": 38, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A byte value representing a mask of currently active (1) main alarms. These are the flow and genreral alarms", + "version": { + "first": 100, + "last": 544 + }, + "values": { + "default": 207, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at CUSTOMER APP.", + "region": { + "emea": null + } + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A byte value representing a mask of currently active (1) main alarms. These are the flow and genreral alarms", + "version": { + "first": 545, + "last": 554 + }, + "values": { + "default": 207, + "minimum": 128, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at CUSTOMER APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "ExtendedAlarmMask": { + "id": 39, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A byte value representing a mask of currently active (1) extended alarms. These are the temperature and pressure related alarms", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at CUSTOMER APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "HistoricalAlarmsDays": { + "id": 40, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A number of days (0 = off) after which alarms are cleared from the alarm byte values when they are no longer active", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 29, + "minimum": 0, + "maximum": 250 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 29 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "TestModeTime": { + "id": 43, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A value in minutes that defines the time the meter will stay in testmode after that mode was started", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Runtime value.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "EncryptionKey": { + "id": 44, + "details": [ + { + "type": "uint128_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The SensusRF encryption key (16 bytes) of the meter", + "version": { + "first": 100, + "last": 554 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "D05 radio key (Sensus (standard), �)", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Authentification": { + "id": 45, + "details": [ + { + "type": "uint96_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The SensusRF Authentification PINs (3 PINs of 4 byte each) of the meter", + "version": { + "first": 100, + "last": 554 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "UpgFWVersion": { + "id": 46, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The version of the complete Meter firmware package as represented by application FlexNetVersion", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "CustomerText": { + "id": 47, + "details": [ + { + "type": "uint72_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An array of 9 bytes of freely programmable SensusRF customer Text", + "version": { + "first": 100, + "last": 554 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Customer specific.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "RadioLastReadTime": { + "id": 48, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An uint32_t value representing the meter's system DateTime when the radio had last time sent a telegram", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "LowBatDateTime": { + "id": 49, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An uint32_t value representing the meter's system DateTime when the radio had detected first the low-battery status", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "VeryLowBatDateTime": { + "id": 50, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A copy of the LowBatDateTime time stamp", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Unit": { + "id": 51, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A byte value representing the currently active volume unit used by radio", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Dependant on territory setting acc SAP order.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "ExtendedUnitFlags": { + "id": 52, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A byte value representing additional information regarding the unit derived from the volume unit when used for flow or alternate volume, 0x1x= liter per sec, 0xx1= kiloLiter", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 17 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": "custom", + "vako": true, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Customer specific. Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "OTAControlFlags": { + "id": 53, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A byte value normaly never changed regarding general behavior of the firmware related to Over The Air updates", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "1: if OTA update is allowed.", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "Tfx_Structure": { + "id": 54, + "details": [ + { + "type": "uint88_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A complex structure of 84 bytes related to the Tfx mode of the meter respectively the volume channel", + "version": { + "first": 100, + "last": 549 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "uint672_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A complex structure of 84 bytes related to the Tfx mode of the meter respectively the volume channel", + "version": { + "first": 550, + "last": 554 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "Dewa_Structure": { + "id": 55, + "details": [ + { + "type": "uint64_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A structure of 4 uint16_t values used for the customer DEWA", + "version": { + "first": 100, + "last": 554 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "DataLogContents": { + "id": 56, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A 4 byte bit mask representing whether the individual data items are logged in the periodic logging (1) or not (0)", + "version": { + "first": 100, + "last": 553 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "32 Bit Mask of the items to be logged. Minimum items: 0x0C002003 (201344787 - can not be cleared)", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 206906379, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please wait 22 seconds after writing for storage in PERIODICLOG.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "DataLogPeriod": { + "id": 57, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A number in seconds representing the time period for storing data records into the periodic logging file (memory)", + "version": { + "first": 100, + "last": 553 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "number of minutes representing the time period for storing data records into the periodic log file", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please wait 22 seconds after writing for storage in PERIODICLOG.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "AverageFlowPeriod": { + "id": 58, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A number derived automatically from the DataLogPeriod that determines averaging periods in mimutes for min and max calculations", + "version": { + "first": 100, + "last": 553 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A number minutes that was automatically calculated from the DataLogPeriod for the averaging period and min and max calculations", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is calulated automatically", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "FixedDateReadingContents": { + "id": 59, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A 4 byte bit mask representing whether the individual data items are logged in the fixed date logging (1) or not (0)", + "version": { + "first": 100, + "last": 553 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "32 bit mask defining FDR logging items. Minimum items: 0x0C002003 (201344787 - can not be cleared) ", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 206906379, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "After setting wait 22 seconds for storage in PERIODICLOG", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "FixedDateDayOfMonth": { + "id": 60, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The day of the month (0 = every day) on which at 00:00 the fixed date logging takes place", + "version": { + "first": 100, + "last": 553 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The day of the month (0 = every day) on which at 00:00 the fixed date logging takes place", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "After setting wait 22 seconds for storage in PERIODICLOG", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "MetroRadioLifeTimeCounter": { + "id": 61, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An uint32_t counter used originally for debugging during development. Meanwhile out of use", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PowerLevelOption": { + "id": 62, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An uint8_t value related to the power level used by the radio when an Irda module is present", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 127 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "ImpedanceCodeNew": { + "id": 63, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An uint16_t value used for adjusting the antenna impedance", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 32767 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "ImpedanceCodeOption": { + "id": 64, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An uint16_t value used for adjusting the antenna impedance if an Irda module is present", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 32767 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "IrDAModulePresent": { + "id": 65, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A parameter of type bool that signals the presence of an Irda module. The value is controlled by the meter", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignor because is set up at CUSTOMER APP?", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "StoreConfiguration": { + "id": 66, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", + "version": { + "first": 100, + "last": 554 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "finalize" + } + } + ] + }, + "LifeTimeSeconds": { + "id": 67, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of seconds since the radio left the production (Set to 0 at the end of the production proccess)", + "version": { + "first": 100, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "DutyCycleCredit": { + "id": 68, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A value (counter) used only during development for release testing", + "version": { + "first": 412, + "last": 554 + }, + "values": { + "default": 4320000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "ActivityCredit": { + "id": 69, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A counter used to control the radio activity which must not exceed certain regulatory limits", + "version": { + "first": 412, + "last": 554 + }, + "values": { + "default": 1000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "PersistenceGroup1": { + "id": 70, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Storage item for HistoricalErrorLimitCounters Reverse(1, hi) and Leak(0, lo)", + "version": { + "first": 437, + "last": 554 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PersistenceGroup2": { + "id": 71, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Storage item for HistoricalErrorLimitCounters Magnet(3, hi) and Air(2, lo)", + "version": { + "first": 437, + "last": 554 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PersistenceGroup3": { + "id": 72, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Storage item for HistoricalErrorLimitCounters PressureMin(5, hi) and PressureMax(4, lo)", + "version": { + "first": 437, + "last": 554 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PersistenceGroup4": { + "id": 73, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Storage item for HistoricalErrorLimitCounters TempMin(7, hi) and TempMax(6, lo)", + "version": { + "first": 437, + "last": 554 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PressureCalibration": { + "id": 74, + "details": [ + { + "type": "int8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "int8_t value to add an offset to the measured pressure in 10mBar resolution (for value from -1270 to +1270 mBar for field calibration purposes). -128 is an invalid value", + "version": { + "first": 483, + "last": 554 + }, + "values": { + "default": 0, + "minimum": -127, + "maximum": 127 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "TfxSecondaryChannelInfo_1": { + "id": 75, + "details": [ + { + "type": "uint48_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "a 6 bytes big complex structure for the Tfx settings of the secondary channel 1 (temperature)", + "version": { + "first": 494, + "last": 554 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "TfxSecondaryChannelInfo_2": { + "id": 76, + "details": [ + { + "type": "uint48_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "a 6 bytes big complex structure for the Tfx settings of the secondary channel 2 (pressure)", + "version": { + "first": 494, + "last": 554 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "OmsLastMessageCounter": { + "id": 77, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An unit32_t value used to support/control the MB_MODE3_OMSv4B transmission uinque MCR", + "version": { + "first": 499, + "last": 554 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PersistenceGroup5": { + "id": 78, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Storage item for HistoricalErrorLimitCounters NoFlowAlarm(7, hi) and Metrology Failure(6, lo)", + "version": { + "first": 536, + "last": 554 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PersistenceGroup6": { + "id": 79, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Storage item for HistoricalErrorLimitCounters Reboot Alarm(7, hi) and reserved(6, lo)", + "version": { + "first": 536, + "last": 554 + }, + "values": { + "default": 16711680, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "Gradient_Alarm_Telegram_Persistence": { + "id": 80, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Alarm persistence in Minutes for both pressure Gardient Alarm types", + "version": { + "first": 550, + "last": 554 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "action": "According to the source code no action assigned to this error code", + "description": "It appears to be not used", + "id": 0 + }, + "BAD_CONFIG": { + "action": "Writing a new LOG or FDR content to Radio for forwarding to PeriodicLog", + "description": "A bit mask is written which is not valid (e.g. not all mandatory bits are equal to 1)", + "id": 1 + }, + "NO_CHANGE": { + "action": "Writing a new parameter value so several functions (e.g. Set HistoricalErrorLimitDays)", + "description": "The new value has no effect: New value == Old value)", + "id": 2 + }, + "STORE_PENDING": { + "action": "Writing SENSUSRADIO_STORECONFIGURATION to 1 ...", + "description": "The initiated storing action is still ongoing and the file system is busy. The final status is pending", + "id": 3 + }, + "DID_NOT_STORE": { + "action": "Writing SENSUSRADIO_STORECONFIGURATION to 1 ...", + "description": "This is a final status. The initiated storing action failed. An alternate status would be 'OK'", + "id": 4 + } + } + }, + "SYSTEM": { + "id": 0, + "version": { + "first": 141, + "last": 541 + }, + "registers": { + "TriggerUpgrade": { + "id": 0, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "NA", + "lvl4": "NA", + "lvl5": "NA", + "lvl6": "NA", + "lvl7": "WO", + "lvl8": "WO" + }, + "description": "Writing TRUE to this register internally calls SysTriggerUpgrade() then returns the result.", + "version": { + "first": 141, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Firmware upgrade may well use these.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "CheckPresence": { + "id": 1, + "details": [ + { + "type": "RPC", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Writing an application id number allows the version number of that application to be read back.", + "version": { + "first": 150, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Useful for checking the firmware that is loaded.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "PCBSerialNumber": { + "id": 2, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "A string reporting the PCB serial number, this string must be set using production equipment.", + "version": { + "first": 169, + "last": 541 + }, + "values": { + "default": "" + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "CustomerSerialNumber0": { + "id": 3, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A string reported relating to the customer, this string can be written only once after manufacture. If subsequent changes are needed CUSTOMERSERIALNUMBER1 must be used.", + "version": { + "first": 170, + "last": 541 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "CustomerSerialNumber1": { + "id": 4, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A string reported relating to the customer, this string can be written only once after manufacture. If subsequent changes are needed CUSTOMERSERIALNUMBER2 must be used.", + "version": { + "first": 170, + "last": 541 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "CustomerSerialNumber2": { + "id": 5, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A string reported relating to the customer, this string can be written only once after manufacture. If subsequent changes are needed CUSTOMERSERIALNUMBER3 must be used.", + "version": { + "first": 170, + "last": 541 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "CustomerSerialNumber3": { + "id": 6, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A string reported relating to the customer, this string can be written only once after manufacture. This is the last customer serial number change slot.", + "version": { + "first": 170, + "last": 541 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "MonotonicSeconds": { + "id": 7, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "The number of seconds since reboot.", + "version": { + "first": 176, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "CalendarSeconds": { + "id": 8, + "details": [ + { + "type": "time_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The number of seconds since 01-Jan-2000.", + "version": { + "first": 176, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "Time now. Write the current time during manufacture.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "CoreRevision": { + "id": 9, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "A string reporting the product version string held in the system core binary.", + "version": { + "first": 196, + "last": 541 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "alex.frost@xylem.com" + ], + "remarks": "This is effectively another application version number but for the Breeze Core and is worth looking at.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "DriveCapacity": { + "id": 10, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Writing a drive number returns the drive capacity in bytes, or 0 if the drive is not ready, or an error if the driver is not configured to be present.", + "version": { + "first": 233, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "ExitReason": { + "id": 11, + "details": [ + { + "type": "status_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Writing an application id number allows the exit error number of that application to be read back.", + "version": { + "first": 258, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "CorePlatform": { + "id": 12, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RO", + "lvl8": "RO" + }, + "description": "Reports the instruction set of the hosting microprocessor in b8-15 and allocated platform number in b0-7.", + "version": { + "first": 265, + "last": 541 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "n/a" + } + } + ] + }, + "CRC": { + "id": 13, + "details": [ + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Writing an application id number allows the CRC of that application to be read back.", + "version": { + "first": 279, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Useful for checking the firmware that is loaded.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + }, + "UpgradePermissions": { + "id": 14, + "details": [ + { + "type": "uint8_t", + "privilege": { + "lvl1": "RO", + "lvl2": "RO", + "lvl3": "RO", + "lvl4": "RO", + "lvl5": "RO", + "lvl6": "RO", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Bitfield of permissions releated to firmware upgrade", + "version": { + "first": 470, + "last": 541 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "alex.frost@xylem.com", + "roland.drabesch@xylem.com" + ], + "remarks": "Set fix as final step at production.", + "region": { + "emea": { + "values": { + "default": 254 + } + }, + "na": { + "values": { + "default": 255 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } + } + ] + }, + "CRC32": { + "id": 15, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Writing an application id number allows the 32 bit CRC of that application to be read back.", + "version": { + "first": 529, + "last": 541 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "Useful for checking the firmware that is loaded.", + "region": { + "emea": null, + "na": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } + } + ] + } + }, + "status": { + "OK": { + "id": 0 + }, + "ZERO_APPS": { + "id": 1 + }, + "NO_MEMORY": { + "id": 2 + }, + "NOT_IMPLEMENTED": { + "id": 3 + }, + "BLOCK_NOT_FOUND": { + "id": 4 + }, + "NO_SUCH_VAR": { + "id": 5 + }, + "NO_CLIB": { + "id": 6 + }, + "KEY_FAILURE": { + "id": 7 + }, + "NO_SLOTS_FREE": { + "id": 8 + }, + "VECTOR_OUT_OF_RANGE": { + "id": 9 + }, + "BAD_VECTOR_RELEASE": { + "id": 10 + }, + "DRIVER_BUSY": { + "id": 11 + }, + "OUT_OF_RANGE": { + "id": 12 + }, + "CANT_CANCEL_TICK": { + "id": 13 + }, + "ID_OUT_OF_RANGE": { + "id": 14 + }, + "HANDLE_OUT_OF_RANGE": { + "id": 15 + }, + "INCAPABLE_HARDWARE": { + "id": 16 + }, + "ALREADY_OPEN": { + "id": 17 + }, + "STRING_TOO_LONG": { + "id": 18 + }, + "CORRUPT_CONFIGURATION": { + "id": 19 + }, + "TIMEOUT": { + "id": 20 + }, + "NO_PRIVILEGE": { + "id": 21 + }, + "DEVICE_DORMANT": { + "id": 22 + }, + "MEDIA_FAILURE": { + "id": 23 + }, + "BUFFER_OVERFLOW": { + "id": 24 + }, + "UPGRADE_SYNTAX_ERROR": { + "id": 25 + }, + "UPGRADE_DEPENDENCY_NOT_MET": { + "id": 26 + }, + "UPGRADE_MISSING": { + "id": 27 + }, + "UPGRADE_FRAGMENTED_BY_CLIB": { + "id": 28 + }, + "TRUNCATED": { + "id": 29 + }, + "INVALID_HEADER": { + "id": 30 + }, + "WONT_DELETE_CLIB": { + "id": 31 + }, + "BAD_REGISTER_VALUE": { + "id": 32 + }, + "NO_CHANGE_MADE": { + "id": 33 + }, + "NOT_ATOMIC": { + "id": 34 + }, + "CALENDAR_CHANGED": { + "id": 35 + }, + "WORM_FIELD": { + "id": 36 + }, + "CONVERSION_UNSUPPORTED": { + "id": 37 + }, + "CPU_PERMISSION_FAULT": { + "id": 38 + }, + "CPU_SOFTWARE_FAULT": { + "id": 39 + }, + "CPU_DECODE_FAULT": { + "id": 40 + }, + "CPU_ADDRESS_ACCESS_FAULT": { + "id": 41 + }, + "CPU_UNCAUGHT_FAULT": { + "id": 42 + }, + "ACCURACY_LOST": { + "id": 43 + }, + "EXIT_FAILURE": { + "id": 44 + }, + "CANT_CANCEL_CALLBACK": { + "id": 45 + }, + "RECOVERED_SPACE": { + "id": 46 + }, + "DRIVE_FULL": { + "id": 47 + }, + "NO_FILE_HANDLES_AVAILABLE": { + "id": 48 + }, + "EXCESSIVE_RESTARTS": { + "id": 49 + }, + "MPU_SETUP_FAILED": { + "id": 50 + }, + "DEVICE_NOT_OPEN": { + "id": 51 + }, + "NO_RESPONSE": { + "id": 52 + }, + "EXIT_WATCHDOG": { + "id": 53 + }, + "WONT_DELETE_SPECIAL": { + "id": 54 + }, + "WONT_UPGRADE_SPECIAL": { + "id": 55 + } + } + }, + "TESTMANAGER": { + "id": 98, + "version": { + "first": 0, + "last": 36 + }, + "registers": { + "OutputFile": { + "id": 0, + "details": [ + { + "type": "string", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Access the test log filename.", + "version": { + "first": 0, + "last": 36 + }, + "statictype": null + } + ] + }, + "TestNumber": { + "id": 1, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Access the test sequence number.", + "version": { + "first": 0, + "last": 36 + }, + "statictype": null + } + ] + }, + "TestStatus": { + "id": 2, + "details": [ + { + "type": "enum8", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Access the Test Manager state variable.", + "version": { + "first": 0, + "last": 36 + }, + "statictype": null + } + ] + }, + "TrapError": { + "id": 3, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Access the last recorded error code.", + "version": { + "first": 0, + "last": 36 + }, + "statictype": null + } + ] + }, + "TestParameter": { + "id": 4, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Access the test parameter variable.", + "version": { + "first": 0, + "last": 36 + }, + "statictype": null + } + ] + } + }, + "status": { + "FAIL": { + "id": 0 + }, + "UNKNOWN_PARAMETER": { + "id": 1 + }, + "READ_ONLY_PARAMETER": { + "id": 2 + }, + "BUSY": { + "id": 3 + }, + "STRING_TOO_LONG": { + "id": 4 + }, + "FOPEN_FAIL": { + "id": 5 + }, + "FSEEK_FAIL": { + "id": 6 + }, + "FWRITE_FAIL": { + "id": 7 + }, + "FCLOSE_FAIL": { + "id": 8 + }, + "MALFORMED_FILENAME": { + "id": 9 + }, + "UNKNOWN_ACTION": { + "id": 10 + }, + "FILEREMOVE_FAIL": { + "id": 11 + }, + "FREAD_FAIL": { + "id": 12 + } + } + } +} diff --git a/GenesisCordonelInterface/bin/Debug/de/PdfSharp.resources.dll b/GenesisCordonelInterface/bin/Debug/de/PdfSharp.resources.dll new file mode 100644 index 000000000..e15dfe7a1 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/de/PdfSharp.resources.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/de/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.resources.dll b/GenesisCordonelInterface/bin/Debug/de/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.resources.dll new file mode 100644 index 000000000..d55e814ce Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/de/Xylem.Common.Hardware.WaterMeter.Genesis.Applications.resources.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/de/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.resources.dll b/GenesisCordonelInterface/bin/Debug/de/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.resources.dll new file mode 100644 index 000000000..426ae7487 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/de/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.resources.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/de/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.resources.dll b/GenesisCordonelInterface/bin/Debug/de/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.resources.dll new file mode 100644 index 000000000..eddb4f88b Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/de/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.resources.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/magflux_api.dll b/GenesisCordonelInterface/bin/Debug/magflux_api.dll new file mode 100644 index 000000000..68af23df3 Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/magflux_api.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/meterconfig.json b/GenesisCordonelInterface/bin/Debug/meterconfig.json new file mode 100644 index 000000000..955bd390b --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/meterconfig.json @@ -0,0 +1,10 @@ +{ + "UseRegisterWatchService": true, + "RegisterWatchServiceUrl": "http://sla12iis01/MeterProcessState/api/RegisterWatch/", + "UseMinMaxCheck": true, + "UseErrorLogger": false, + "ErrorLoggerServiceUrl": "http://sla12iis01/MeterProcessState/api/GenesisMeter/", + "UseCalibrationLogger": false, + "CalibrationLoggerServiceUrl": "http://sla12iis01/MeterProcessState/api/GenesisMeter/", + "AutoUpdateFiles":true +} \ No newline at end of file diff --git a/GenesisCordonelInterface/bin/Debug/nlog.config b/GenesisCordonelInterface/bin/Debug/nlog.config new file mode 100644 index 000000000..b065c5314 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/nlog.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GenesisCordonelInterface/bin/Debug/shared_code.dll b/GenesisCordonelInterface/bin/Debug/shared_code.dll new file mode 100644 index 000000000..06436ccaf Binary files /dev/null and b/GenesisCordonelInterface/bin/Debug/shared_code.dll differ diff --git a/GenesisCordonelInterface/bin/Debug/status.json b/GenesisCordonelInterface/bin/Debug/status.json new file mode 100644 index 000000000..89f645713 --- /dev/null +++ b/GenesisCordonelInterface/bin/Debug/status.json @@ -0,0 +1,250 @@ +{ + "OK": {"id": 0}, + "ERROR_ZERO_APPS": {"id": 1}, + "ERROR_NO_MEMORY": {"id": 2}, + "ERROR_NOT_IMPLEMENTED": {"id": 3}, + "ERROR_BLOCK_NOT_FOUND": {"id": 4}, + "ERROR_NO_SUCH_VAR": {"id": 5}, + "ERROR_NO_CLIB": {"id": 6}, + "ERROR_KEY_FAILURE": {"id": 7}, + "ERROR_NO_SLOTS_FREE": {"id": 8}, + "ERROR_VECTOR_OUT_OF_RANGE": {"id": 9}, + "ERROR_BAD_VECTOR_RELEASE": {"id": 10}, + "ERROR_DRIVER_BUSY": {"id": 11}, + "ERROR_OUT_OF_RANGE": {"id": 12}, + "ERROR_CANT_CANCEL_TICK": {"id": 13}, + "ERROR_ID_OUT_OF_RANGE": {"id": 14}, + "ERROR_HANDLE_OUT_OF_RANGE": {"id": 15}, + "ERROR_INCAPABLE_HARDWARE": {"id": 16}, + "ERROR_ALREADY_OPEN": {"id": 17}, + "ERROR_STRING_TOO_LONG": {"id": 18}, + "ERROR_CORRUPT_CONFIGURATION": {"id": 19}, + "ERROR_TIMEOUT": {"id": 20}, + "ERROR_NO_PRIVILEGE": {"id": 21}, + "ERROR_DEVICE_DORMANT": {"id": 22}, + "ERROR_MEDIA_FAILURE": {"id": 23}, + "ERROR_BUFFER_OVERFLOW": {"id": 24}, + "ERROR_UPGRADE_SYNTAX_ERROR": {"id": 25}, + "ERROR_UPGRADE_DEPENDENCY_NOT_MET": {"id": 26}, + "ERROR_UPGRADE_MISSING": {"id": 27}, + "ERROR_UPGRADE_FRAGMENTED_BY_CLIB": {"id": 28}, + "ERROR_TRUNCATED": {"id": 29}, + "ERROR_INVALID_HEADER": {"id": 30}, + "ERROR_WONT_DELETE_CLIB": {"id": 31}, + "ERROR_BAD_REGISTER_VALUE": {"id": 32}, + "ERROR_NO_CHANGE_MADE": {"id": 33}, + "ERROR_NOT_ATOMIC": {"id": 34}, + "ERROR_CALENDAR_CHANGED": {"id": 35}, + "ERROR_WORM_FIELD": {"id": 36}, + "ERROR_CONVERSION_UNSUPPORTED": {"id": 37}, + "ERROR_CPU_PERMISSION_FAULT": {"id": 38}, + "ERROR_CPU_SOFTWARE_FAULT": {"id": 39}, + "ERROR_CPU_DECODE_FAULT": {"id": 40}, + "ERROR_CPU_ADDRESS_ACCESS_FAULT": {"id": 41}, + "ERROR_CPU_UNCAUGHT_FAULT": {"id": 42}, + "ERROR_ACCURACY_LOST": {"id": 43}, + "ERROR_EXIT_FAILURE": {"id": 44}, + "ERROR_CANT_CANCEL_CALLBACK": {"id": 45}, + "ERROR_RECOVERED_SPACE": {"id": 46}, + "ERROR_DRIVE_FULL": {"id": 47}, + "ERROR_NO_FILE_HANDLES_AVAILABLE": {"id": 48}, + "ERROR_EXCESSIVE_RESTARTS": {"id": 49}, + "ERROR_MPU_SETUP_FAILED": {"id": 50}, + "ERROR_DEVICE_NOT_OPEN": {"id": 51}, + "ERROR_NO_RESPONSE": {"id": 52}, + "ERROR_EXIT_WATCHDOG": {"id": 53}, + "ERROR_WONT_DELETE_SPECIAL": {"id": 54}, + "ERROR_WONT_UPGRADE_SPECIAL": {"id": 55}, + "ERROR_POWERMON_TABLE_FULL": {"id": 256}, + "ERROR_POWERMON_UNKNOWN_PARAMETER": {"id": 257}, + "ERROR_POWERMON_OUT_OF_RANGE": {"id": 258}, + "ERROR_POWERMON_STOP_CYCLING": {"id": 259}, + "ERROR_POWERMON_TEMPERATURE_LIMIT": {"id": 260}, + "ERROR_POWERMON_BATTERY_STATUS_CHANGED": {"id": 261}, + "ERROR_POWERMON_BATTERY_CRITICAL": {"id": 262}, + "ERROR_CONFIGEX_LOCKED_OUT": {"id": 1024}, + "ERROR_CONFIGEX_AUTHENTICATION_FAILURE": {"id": 1025}, + "ERROR_CONFIGEX_ACCESS_DENIED": {"id": 1026}, + "ERROR_CONFIGEX_UNKNOWN_PARAMETER": {"id": 1027}, + "ERROR_CONFIGEX_IN_USE": {"id": 1028}, + "ERROR_CONFIGEX_SIZES_DONT_MATCH": {"id": 1029}, + "ERROR_CONFIGEX_CANT_READ_CONFIG_FILE": {"id": 1030}, + "ERROR_CONFIGEX_USER_NOT_KNOWN": {"id": 1031}, + "ERROR_CONFIGEX_CANT_CREATE_CONFIG_FILE": {"id": 1032}, + "ERROR_CONFIGEX_STORE_DIDNT_STORE": {"id": 1033}, + "ERROR_CONFIGEX_STORE_CORRUPT": {"id": 1034}, + "ERROR_CONFIGEX_EXPECTED_WRITE": {"id": 1035}, + "ERROR_CONFIGEX_EXPECTED_READ": {"id": 1036}, + "ERROR_CONFIGEX_STOP_CYCLING": {"id": 1037}, + "ERROR_CONFIGEX_TOO_MANY_OPEN": {"id": 1038}, + "ERROR_CONFIGEX_NEVER_OPENED": {"id": 1039}, + "ERROR_CONFIGEX_FILE_PROTECTED": {"id": 1040}, + "ERROR_CONFIGEX_PARTIAL_RECALL": {"id": 1041}, + "ERROR_CONFIGEX_DEFAULT_PASSWORD_USED": {"id": 1042}, + "ERROR_OPTICALPORT_PAYLOAD_COUNT": {"id": 1280}, + "ERROR_OPTICALPORT_INVALID_SUBREASON": {"id": 1281}, + "ERROR_OPTICALPORT_INVALID_BAUDRATE": {"id": 1282}, + "ERROR_OPTICALPORT_INVALID_BUFFERSIZE": {"id": 1283}, + "ERROR_OPTICALPORT_CRCFAILURE": {"id": 1284}, + "ERROR_OPTICALPORT_UNRECOGNISEDCMD": {"id": 1285}, + "ERROR_OPTICALPORT_FRAMING": {"id": 1286}, + "ERROR_OPTICALPORT_OVERFLOW": {"id": 1287}, + "ERROR_OPTICALPORT_PACKETTIMEOUT": {"id": 1288}, + "ERROR_OPTICALPORT_INVALIDESCAPE": {"id": 1289}, + "ERROR_OPTICALPORT_UNKNOWN_PARAMETER": {"id": 1290}, + "ERROR_OPTICALPORT_TRAINING_FAILED": {"id": 1291}, + "ERROR_OPTICALPORT_NOBREAK": {"id": 1292}, + "ERROR_LOGGER_UNKNOWN_PARAMETER": {"id": 2048}, + "ERROR_LOGGER_RESTARTED": {"id": 2049}, + "ERROR_LOGGER_BLOCK_LISTING": {"id": 2050}, + "ERROR_CUSTOMER_REBOOT,": {"id": 2304}, + "ERROR_CUSTOMER_REBOOT_STOP,": {"id": 2305}, + "ERROR_CUSTOMER_LOW_BATTERY,": {"id": 2306}, + "ERROR_CUSTOMER_LOW_BATTERY_STOP,": {"id": 2307}, + "ERROR_CUSTOMER_VERY_LOW_BATTERY,": {"id": 2308}, + "ERROR_CUSTOMER_VERY_LOW_BATTERY_STOP,": {"id": 2309}, + "ERROR_CUSTOMER_CONFIG_ERROR,": {"id": 2310}, + "ERROR_CUSTOMER_CONFIG_ERROR_STOP,": {"id": 2311}, + "ERROR_CUSTOMER_EMPTY_PIPE,": {"id": 2312}, + "ERROR_CUSTOMER_EMPTY_PIPE_STOP,": {"id": 2313}, + "ERROR_CUSTOMER_MAGNETIC_TAMPER,": {"id": 2314}, + "ERROR_CUSTOMER_MAGNETIC_TAMPER_STOP,": {"id": 2315}, + "ERROR_CUSTOMER_REVERSE_FLOW,": {"id": 2316}, + "ERROR_CUSTOMER_REVERSE_FLOW_STOP,": {"id": 2317}, + "ERROR_CUSTOMER_SUSPECT_LEAK,": {"id": 2318}, + "ERROR_CUSTOMER_SUSPECT_LEAK_STOP,": {"id": 2319}, + "ERROR_CUSTOMER_BROKEN_PIPE,": {"id": 2320}, + "ERROR_CUSTOMER_BROKEN_PIPE_STOP,": {"id": 2321}, + "ERROR_CUSTOMER_LOW_PRESSURE,": {"id": 2322}, + "ERROR_CUSTOMER_LOW_PRESSURE_STOP,": {"id": 2323}, + "ERROR_CUSTOMER_HIGH_PRESSURE,": {"id": 2324}, + "ERROR_CUSTOMER_HIGH_PRESSURE_STOP,": {"id": 2325}, + "ERROR_CUSTOMER_LOW_TEMPERATURE,": {"id": 2326}, + "ERROR_CUSTOMER_LOW_TEMPERATURE_STOP,": {"id": 2327}, + "ERROR_CUSTOMER_HIGH_TEMPERATURE,": {"id": 2328}, + "ERROR_CUSTOMER_HIGH_TEMPERATURE_STOP,": {"id": 2329}, + "ERROR_CUSTOMER_RADIO_ERROR,": {"id": 2330}, + "ERROR_CUSTOMER_RADIO_ERROR_STOP,": {"id": 2331}, + "ERROR_CUSTOMER_METROLOGY_PARAMS,": {"id": 2332}, + "ERROR_CUSTOMER_METROLOGY_PARAMS_STOP,": {"id": 2333}, + "ERROR_CUSTOMER_METROLOGY_MEASURE,": {"id": 2334}, + "ERROR_CUSTOMER_METROLOGY_MEASURE_STOP,": {"id": 2335}, + "ERROR_CUSTOMER_UNALLOCATED_6,": {"id": 2336}, + "ERROR_CUSTOMER_UNALLOCATED_6_STOP,": {"id": 2337}, + "ERROR_CUSTOMER_UNALLOCATED_7,": {"id": 2338}, + "ERROR_CUSTOMER_UNALLOCATED_7_STOP,": {"id": 2339}, + "ERROR_CUSTOMER_UNALLOCATED_8,": {"id": 2340}, + "ERROR_CUSTOMER_UNALLOCATED_8_STOP,": {"id": 2341}, + "ERROR_CUSTOMER_UNALLOCATED_9,": {"id": 2342}, + "ERROR_CUSTOMER_UNALLOCATED_9_STOP,": {"id": 2343}, + "ERROR_CUSTOMER_UNALLOCATED_10,": {"id": 2344}, + "ERROR_CUSTOMER_UNALLOCATED_10_STOP,": {"id": 2345}, + "ERROR_CUSTOMER_UNALLOCATED_11,": {"id": 2346}, + "ERROR_CUSTOMER_UNALLOCATED_11_STOP,": {"id": 2347}, + "ERROR_CUSTOMER_UNALLOCATED_12,": {"id": 2348}, + "ERROR_CUSTOMER_UNALLOCATED_12_STOP,": {"id": 2349}, + "ERROR_CUSTOMER_UNALLOCATED_13,": {"id": 2350}, + "ERROR_CUSTOMER_UNALLOCATED_13_STOP,": {"id": 2351}, + "ERROR_CUSTOMER_UNALLOCATED_14,": {"id": 2352}, + "ERROR_CUSTOMER_UNALLOCATED_14_STOP,": {"id": 2353}, + "ERROR_CUSTOMER_UNALLOCATED_15,": {"id": 2354}, + "ERROR_CUSTOMER_UNALLOCATED_15_STOP,": {"id": 2355}, + "ERROR_CUSTOMER_UNALLOCATED_16,": {"id": 2356}, + "ERROR_CUSTOMER_UNALLOCATED_16_STOP,": {"id": 2357}, + "ERROR_CUSTOMER_UNALLOCATED_17,": {"id": 2358}, + "ERROR_CUSTOMER_UNALLOCATED_17_STOP,": {"id": 2359}, + "ERROR_CUSTOMER_UNALLOCATED_18,": {"id": 2360}, + "ERROR_CUSTOMER_UNALLOCATED_18_STOP,": {"id": 2361}, + "ERROR_CUSTOMER_UNALLOCATED_19,": {"id": 2362}, + "ERROR_CUSTOMER_UNALLOCATED_19_STOP,": {"id": 2363}, + "ERROR_CUSTOMER_UNALLOCATED_20,": {"id": 2364}, + "ERROR_CUSTOMER_UNALLOCATED_20_STOP,": {"id": 2365}, + "ERROR_CUSTOMER_UNALLOCATED_21,": {"id": 2366}, + "ERROR_CUSTOMER_UNALLOCATED_21_STOP,": {"id": 2367}, + "ERROR_CUSTOMER_UNKNOWN_PARAMETER,": {"id": 2368}, + "ERROR_CUSTOMER_LOCALE_UNDEFINED,": {"id": 2369}, + "ERROR_CUSTOMER_NO_SUCH_ALARM,": {"id": 2370}, + "ERROR_CUSTOMER_OUT_OF_RANGE,": {"id": 2371}, + "ERROR_CUSTOMER_NOT_IMPLEMENTED,": {"id": 2372}, + "ERROR_CUSTOMER_BAD_CONFIG,": {"id": 2373}, + "ERROR_CUSTOMER_DID_NOT_STORE,": {"id": 2374}, + "ERROR_CUSTOMER_STORE_PENDING,": {"id": 2375}, + "ERROR_GENESISFLOW_BAD_TEST": {"id": 3840}, + "ERROR_GENESISFLOW_BAD_CONFIG": {"id": 3841}, + "ERROR_GENESISFLOW_DID_NOT_STORE": {"id": 3842}, + "ERROR_GENESISFLOW_STORE_PENDING": {"id": 3843}, + "ERROR_GENESISFLOW_STORE_BUFFER_SIZE": {"id": 3844}, + "ERROR_GENESISFLOW_STRING_TOO_LONG": {"id": 3845}, + "ERROR_GENESISFLOW_BAD_DISPLAY_MODE": {"id": 3846}, + "ERROR_GENESISFLOW_GLASS_TOO_LONG": {"id": 3847}, + "ERROR_GENESISFLOW_SLOT_NOT_YOURS": {"id": 3848}, + "ERROR_GENESISFLOW_SUBLIST_TOO_LONG": {"id": 3849}, + "ERROR_GENESISFLOW_NO_TEMP_SENSOR": {"id": 3850}, + "ERROR_GENESISFLOW_UNDER_TEMP": {"id": 3851}, + "ERROR_GENESISFLOW_LOW_TEMP_WARNING": {"id": 3852}, + "ERROR_GENESISFLOW_HIGH_TEMP_WARNING": {"id": 3853}, + "ERROR_GENESISFLOW_OVER_TEMP": {"id": 3854}, + "ERROR_GENESISFLOW_MISMATCHING_LSB": {"id": 3855}, + "ERROR_GENESISFLOW_OUT_OF_RANGE_PWDIFF": {"id": 3856}, + "ERROR_GENESISFLOW_OUT_OF_RANGE_AMPLITUDE": {"id": 3857}, + "ERROR_GENESISFLOW_OUT_OF_RANGE_TOF": {"id": 3858}, + "ERROR_GENESISFLOW_OUT_OF_RANGE_DTOF": {"id": 3859}, + "ERROR_GENESISFLOW_TOF_TIMEOUT": {"id": 3860}, + "ERROR_GENESISFLOW_CAL_CHANGE": {"id": 3861}, + "ERROR_GENESISFLOW_OUT_OF_RANGE_INTERVAL": {"id": 3862}, + "ERROR_GENESISFLOW_VALIDATE_FAIL": {"id": 3863}, + "ERROR_GENESISFLOW_OUT_OF_RANGE_TEMP": {"id": 3864}, + "ERROR_GENESISFLOW_NOT_READY": {"id": 3865}, + "ERROR_GENESISFLOW_METROLOGY_ERROR": {"id": 3866}, + "ERROR_GENESISFLOW_GP30_ID_ERROR": {"id": 3867}, + "ERROR_GENESISFLOW_GP30_FLAG_ERROR": {"id": 3868}, + "ERROR_GENESISFLOW_GP30_TIMEOUT_ERROR": {"id": 3869}, + "ERROR_GENESISFLOW_GP30_REQUEST_ERROR": {"id": 3870}, + "ERROR_GENESISFLOW_GP30_SEQ_ERROR": {"id": 3871}, + "ERROR_GENESISFLOW_VALUE_SEALED": {"id": 3872}, + "ERROR_GENESISFLOW_IN_TEST_MODE": {"id": 3873}, + "ERROR_GENESISFLOW_UNKNOWN_STATE": {"id": 3874}, + "ERROR_GENESISFLOW_DISPLAY_INIT_SUCCEEDED": {"id": 3875}, + "ERROR_GENESISFLOW_DISPLAY_INIT_FAILED": {"id": 3876}, + "ERROR_GENESISFLOW_GP30_INIT_FAILED": {"id": 3877}, + "ERROR_GENESISFLOW_START_TIMER_SUCCEEDED": {"id": 3878}, + "ERROR_GENESISFLOW_START_TIMER_FAILED": {"id": 3879}, + "ERROR_GENESISFLOW_VOLUME_STORE_FAILED": {"id": 3880}, + "ERROR_GENESISFLOW_EMPTY_PIPE": {"id": 3881}, + "ERROR_GENESISFLOW_PARAMETER_ERROR": {"id": 3882}, + "ERROR_GENESISFLOW_GP30_INTERNAL_ERROR": {"id": 3883}, + "ERROR_GENESISFLOW_GLASS_TOO_SHORT": {"id": 3884}, + "ERROR_GENESISFLOW_STORE_CAL_FAILED": {"id": 3885}, + "ERROR_GENESISFLOW_STORE_CONF_FAILED": {"id": 3886}, + "ERROR_GENESISFLOW_MODE_CHANGE": {"id": 3887}, + "ERROR_GENESISFLOW_BAD_POW10": {"id": 3888}, + "ERROR_GENESISFLOW_BAD_DECIMAL_SEPARATOR": {"id": 3889}, + "ERROR_GENESISFLOW_BAD_UNITS": {"id": 3890}, + "ERROR_GENESISFLOW_BAD_ICONS": {"id": 3891}, + "ERROR_GENESISFLOW_BAD_THOUSAND_SEPARATOR": {"id": 3892}, + "ERROR_GENESISFLOW_NEW_LOCALE_REJECTED": {"id": 3893}, + "ERROR_GENESISFLOW_SET_ACCUMULATORS": {"id": 3894}, + "ERROR_GENESISFLOW_SEAL_OPENED": {"id": 3895}, + "ERROR_GENESISFLOW_CALIBRATION_RECALL_INCOMPLETE": {"id": 3896}, + "ERROR_METROLOGYASST_BAD_CONFIG": {"id": 4608}, + "ERROR_METROLOGYASST_DID_NOT_STORE": {"id": 4609}, + "ERROR_METROLOGYASST_PENDING_STORE": {"id": 4610}, + "ERROR_IRDA_BAD_CONFIG": {"id": 5120}, + "ERROR_IRDA_BAD_LENGTH": {"id": 5121}, + "ERROR_NA2WALARMS_SENSOR_INVALID": {"id": 5888}, + "ERROR_NA2WALARMS_UNKNOWN_PARAMETER": {"id": 5889}, + "ERROR_NA2WALARMS_ALARM_INVALID": {"id": 5890}, + "ERROR_NA2WALARMS_UNIMPLEMENTED": {"id": 5891}, + "ERROR_NA2WALARMS_UNCONFIGURED": {"id": 5892}, + "ERROR_NA2WALARMS_CONFIG_INVALID": {"id": 5893}, + "ERROR_NA2WALARMS_NO_LATEST": {"id": 5894}, + "ERROR_NA2WALARMS_FIXED_TYPE": {"id": 5895}, + "ERROR_NA2WALARMS_PREDEF_SET": {"id": 5896}, + "ERROR_NA2WALARMS_USERDEF_VOLUME_SET": {"id": 5897}, + "ERROR_NA2WALARMS_USERDEF_TEMPERATURE_SET": {"id": 5898}, + "ERROR_NA2WALARMS_USERDEF_PRESSURE_SET": {"id": 5899}, + "ERROR_NA2WALARMS_PREDEF_CLEAR": {"id": 5900}, + "ERROR_NA2WALARMS_USERDEF_VOLUME_CLEAR": {"id": 5901}, + "ERROR_NA2WALARMS_USERDEF_TEMPERATURE_CLEAR": {"id": 5902}, + "ERROR_NA2WALARMS_USERDEF_PRESSURE_CLEAR": {"id": 5903} +} \ No newline at end of file diff --git a/LabelPrinting/App.config b/LabelPrinting/App.config index 1fa696586..be64bd998 100644 --- a/LabelPrinting/App.config +++ b/LabelPrinting/App.config @@ -9,6 +9,22 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ResetBatchNr/App.config b/ResetBatchNr/App.config index 1fa696586..be64bd998 100644 --- a/ResetBatchNr/App.config +++ b/ResetBatchNr/App.config @@ -9,6 +9,22 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ResultsBrowser/app.config b/ResultsBrowser/app.config index 6a3539d7e..6b44297a6 100644 --- a/ResultsBrowser/app.config +++ b/ResultsBrowser/app.config @@ -21,6 +21,22 @@ + + + + + + + + + + + + + + + + diff --git a/S640TestApp/App.config b/S640TestApp/App.config index 1fa696586..dd47cf82c 100644 --- a/S640TestApp/App.config +++ b/S640TestApp/App.config @@ -9,6 +9,26 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TBF.sln b/TBF.sln index f94f8b782..999adf46f 100644 --- a/TBF.sln +++ b/TBF.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.8.34330.188 +# Visual Studio Version 18 +VisualStudioVersion = 18.5.11723.231 stable MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TBF", "TBF\TBF.csproj", "{8648FD92-CDA1-4C3A-B5F9-FE547CE1FA48}" ProjectSection(ProjectDependencies) = postProject @@ -202,18 +202,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LegacyGenCtl", "ExternalPro EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eRegisterCore", "ExternalProjects\Laatzen\Genesis\Common\Hardware\WaterMeter\eRegister\eRegisterCore\eRegisterCore.csproj", "{A83696BF-D8A2-4809-8424-CFE172AED5B6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataPackages", "ExternalProjects\Laatzen\Genesis\Common\Hardware\WaterMeter\eRegister\DataPackages\DataPackages.csproj", "{C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StreamingProtocol", "ExternalProjects\Laatzen\Genesis\Common\Hardware\WaterMeter\eRegister\Protocols\StreamingProtocol.csproj", "{B6A19B80-0F0F-434C-A754-A7712FC208B2}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MagFluxCore", "ExternalProjects\Laatzen\Genesis\Common\Hardware\WaterMeter\MagFlux\MagFluxCore\MagFluxCore.csproj", "{B5DA260C-71CC-45CA-B79E-D1B376AF718C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataPackages", "ExternalProjects\Laatzen\Genesis\Common\Hardware\WaterMeter\MagFlux\DataPackages\DataPackages.csproj", "{BA17D20E-0CEB-4B27-9772-2392BD750ED5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StreamingProtocol", "ExternalProjects\Laatzen\Genesis\Common\Hardware\WaterMeter\MagFlux\Protocols\StreamingProtocol\StreamingProtocol.csproj", "{D6B81C60-2763-4C4D-989F-90822F53B01A}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RequestProtocol", "ExternalProjects\Laatzen\Genesis\Common\Hardware\WaterMeter\MagFlux\Protocols\RequestProtocol\RequestProtocol.csproj", "{00748F11-4B49-4D8B-93C4-4A11A210CCE2}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tools.JsonToXlsHelper", "ExternalProjects\Laatzen\Genesis\Common\Tools\Tools.JsonToXlsHelper\Tools.JsonToXlsHelper.csproj", "{20F137FD-C25E-42B7-A68F-58C746475897}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MagFluxConfig", "ExternalProjects\Laatzen\Genesis\Common\Hardware\WaterMeter\MagFlux\MagFluxConfig\MagFluxConfig.csproj", "{70398B99-B134-4BBD-968B-7399B70C3CE2}" @@ -5600,150 +5590,6 @@ Global {A83696BF-D8A2-4809-8424-CFE172AED5B6}.XP32bit|x64.Build.0 = Debug|Any CPU {A83696BF-D8A2-4809-8424-CFE172AED5B6}.XP32bit|x86.ActiveCfg = Debug|Any CPU {A83696BF-D8A2-4809-8424-CFE172AED5B6}.XP32bit|x86.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|Any CPU.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|Any CPU.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|x64.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|x64.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|x86.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|x86.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|Any CPU.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|Any CPU.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|Mixed Platforms.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|Mixed Platforms.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|x64.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|x64.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|x86.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|x86.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|x64.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|x64.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|x86.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|x86.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug-local IIS-CUST|Any CPU.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug-local IIS-CUST|Any CPU.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug-local IIS-CUST|Mixed Platforms.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug-local IIS-CUST|Mixed Platforms.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug-local IIS-CUST|x64.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug-local IIS-CUST|x64.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug-local IIS-CUST|x86.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug-local IIS-CUST|x86.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|Any CPU.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|Any CPU.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|Mixed Platforms.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|Mixed Platforms.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|x64.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|x64.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|x86.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|x86.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|Any CPU.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|x64.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|x64.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|x86.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|x86.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|x64.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|x86.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.VPN_Debug|Any CPU.ActiveCfg = VPN_Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.VPN_Debug|Any CPU.Build.0 = VPN_Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.VPN_Debug|Mixed Platforms.ActiveCfg = VPN_Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.VPN_Debug|Mixed Platforms.Build.0 = VPN_Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.VPN_Debug|x64.ActiveCfg = VPN_Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.VPN_Debug|x64.Build.0 = VPN_Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.VPN_Debug|x86.ActiveCfg = VPN_Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.VPN_Debug|x86.Build.0 = VPN_Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|Any CPU.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|Any CPU.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|Mixed Platforms.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|Mixed Platforms.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|x64.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|x64.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|x86.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|x86.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|Any CPU.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|Any CPU.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|x64.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|x64.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|x86.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|x86.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|Any CPU.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|Any CPU.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|Mixed Platforms.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|x64.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|x64.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|x86.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|x86.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|x64.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|x64.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|x86.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|x86.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug-local IIS-CUST|Any CPU.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug-local IIS-CUST|Any CPU.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug-local IIS-CUST|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug-local IIS-CUST|Mixed Platforms.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug-local IIS-CUST|x64.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug-local IIS-CUST|x64.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug-local IIS-CUST|x86.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug-local IIS-CUST|x86.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|Any CPU.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|Any CPU.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|Mixed Platforms.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|x64.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|x64.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|x86.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|x86.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|Any CPU.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|x64.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|x64.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|x86.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|x86.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|x64.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|x86.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.VPN_Debug|Any CPU.ActiveCfg = VPN_Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.VPN_Debug|Any CPU.Build.0 = VPN_Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.VPN_Debug|Mixed Platforms.ActiveCfg = VPN_Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.VPN_Debug|Mixed Platforms.Build.0 = VPN_Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.VPN_Debug|x64.ActiveCfg = VPN_Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.VPN_Debug|x64.Build.0 = VPN_Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.VPN_Debug|x86.ActiveCfg = VPN_Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.VPN_Debug|x86.Build.0 = VPN_Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|Any CPU.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|Any CPU.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|Mixed Platforms.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|x64.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|x64.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|x86.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|x86.Build.0 = Debug|Any CPU {B5DA260C-71CC-45CA-B79E-D1B376AF718C}._MANUAL_CONTROL|Any CPU.ActiveCfg = Debug|Any CPU {B5DA260C-71CC-45CA-B79E-D1B376AF718C}._MANUAL_CONTROL|Any CPU.Build.0 = Debug|Any CPU {B5DA260C-71CC-45CA-B79E-D1B376AF718C}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -5816,222 +5662,6 @@ Global {B5DA260C-71CC-45CA-B79E-D1B376AF718C}.XP32bit|x64.Build.0 = Debug|Any CPU {B5DA260C-71CC-45CA-B79E-D1B376AF718C}.XP32bit|x86.ActiveCfg = Debug|Any CPU {B5DA260C-71CC-45CA-B79E-D1B376AF718C}.XP32bit|x86.Build.0 = Debug|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}._MANUAL_CONTROL|Any CPU.ActiveCfg = _MANUAL_CONTROL|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}._MANUAL_CONTROL|Any CPU.Build.0 = _MANUAL_CONTROL|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = _MANUAL_CONTROL|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}._MANUAL_CONTROL|Mixed Platforms.Build.0 = _MANUAL_CONTROL|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}._MANUAL_CONTROL|x64.ActiveCfg = _MANUAL_CONTROL|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}._MANUAL_CONTROL|x64.Build.0 = _MANUAL_CONTROL|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}._MANUAL_CONTROL|x86.ActiveCfg = _MANUAL_CONTROL|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}._MANUAL_CONTROL|x86.Build.0 = _MANUAL_CONTROL|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.COM|Any CPU.ActiveCfg = COM|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.COM|Any CPU.Build.0 = COM|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.COM|Mixed Platforms.ActiveCfg = COM|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.COM|Mixed Platforms.Build.0 = COM|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.COM|x64.ActiveCfg = COM|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.COM|x64.Build.0 = COM|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.COM|x86.ActiveCfg = COM|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.COM|x86.Build.0 = COM|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug|Mixed Platforms.Build.0 = Debug|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug|x64.ActiveCfg = Debug|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug|x64.Build.0 = Debug|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug|x86.ActiveCfg = Debug|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug|x86.Build.0 = Debug|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug-local IIS-CUST|Any CPU.ActiveCfg = Debug|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug-local IIS-CUST|Any CPU.Build.0 = Debug|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug-local IIS-CUST|Mixed Platforms.ActiveCfg = Debug|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug-local IIS-CUST|Mixed Platforms.Build.0 = Debug|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug-local IIS-CUST|x64.ActiveCfg = Debug|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug-local IIS-CUST|x64.Build.0 = Debug|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug-local IIS-CUST|x86.ActiveCfg = Debug|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Debug-local IIS-CUST|x86.Build.0 = Debug|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.PerformTest|Any CPU.ActiveCfg = PerformTest|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.PerformTest|Any CPU.Build.0 = PerformTest|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.PerformTest|Mixed Platforms.ActiveCfg = PerformTest|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.PerformTest|Mixed Platforms.Build.0 = PerformTest|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.PerformTest|x64.ActiveCfg = PerformTest|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.PerformTest|x64.Build.0 = PerformTest|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.PerformTest|x86.ActiveCfg = PerformTest|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.PerformTest|x86.Build.0 = PerformTest|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Release|Any CPU.Build.0 = Release|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Release|Mixed Platforms.ActiveCfg = Release|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Release|Mixed Platforms.Build.0 = Release|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Release|x64.ActiveCfg = Release|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Release|x64.Build.0 = Release|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Release|x86.ActiveCfg = Release|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.Release|x86.Build.0 = Release|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.ReleaseTest|Mixed Platforms.Build.0 = Release|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.ReleaseTest|x64.ActiveCfg = Release|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.ReleaseTest|x64.Build.0 = Release|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.ReleaseTest|x86.ActiveCfg = Release|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.ReleaseTest|x86.Build.0 = Release|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.VPN_Debug|Any CPU.ActiveCfg = VPN_Debug|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.VPN_Debug|Any CPU.Build.0 = VPN_Debug|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.VPN_Debug|Mixed Platforms.ActiveCfg = VPN_Debug|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.VPN_Debug|Mixed Platforms.Build.0 = VPN_Debug|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.VPN_Debug|x64.ActiveCfg = VPN_Debug|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.VPN_Debug|x64.Build.0 = VPN_Debug|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.VPN_Debug|x86.ActiveCfg = VPN_Debug|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.VPN_Debug|x86.Build.0 = VPN_Debug|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.XP32bit|Any CPU.ActiveCfg = XP32bit|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.XP32bit|Any CPU.Build.0 = XP32bit|Any CPU - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.XP32bit|Mixed Platforms.ActiveCfg = XP32bit|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.XP32bit|Mixed Platforms.Build.0 = XP32bit|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.XP32bit|x64.ActiveCfg = XP32bit|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.XP32bit|x64.Build.0 = XP32bit|x64 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.XP32bit|x86.ActiveCfg = XP32bit|x86 - {BA17D20E-0CEB-4B27-9772-2392BD750ED5}.XP32bit|x86.Build.0 = XP32bit|x86 - {D6B81C60-2763-4C4D-989F-90822F53B01A}._MANUAL_CONTROL|Any CPU.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}._MANUAL_CONTROL|Any CPU.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}._MANUAL_CONTROL|x64.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}._MANUAL_CONTROL|x64.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}._MANUAL_CONTROL|x86.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}._MANUAL_CONTROL|x86.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.COM|Any CPU.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.COM|Any CPU.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.COM|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.COM|Mixed Platforms.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.COM|x64.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.COM|x64.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.COM|x86.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.COM|x86.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug|x64.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug|x64.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug|x86.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug|x86.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug-local IIS-CUST|Any CPU.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug-local IIS-CUST|Any CPU.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug-local IIS-CUST|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug-local IIS-CUST|Mixed Platforms.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug-local IIS-CUST|x64.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug-local IIS-CUST|x64.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug-local IIS-CUST|x86.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Debug-local IIS-CUST|x86.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.PerformTest|Any CPU.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.PerformTest|Any CPU.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.PerformTest|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.PerformTest|Mixed Platforms.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.PerformTest|x64.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.PerformTest|x64.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.PerformTest|x86.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.PerformTest|x86.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Release|Any CPU.Build.0 = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Release|x64.ActiveCfg = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Release|x64.Build.0 = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Release|x86.ActiveCfg = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.Release|x86.Build.0 = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.ReleaseTest|x64.Build.0 = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.ReleaseTest|x86.Build.0 = Release|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.VPN_Debug|Any CPU.ActiveCfg = VPN_Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.VPN_Debug|Any CPU.Build.0 = VPN_Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.VPN_Debug|Mixed Platforms.ActiveCfg = VPN_Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.VPN_Debug|Mixed Platforms.Build.0 = VPN_Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.VPN_Debug|x64.ActiveCfg = VPN_Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.VPN_Debug|x64.Build.0 = VPN_Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.VPN_Debug|x86.ActiveCfg = VPN_Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.VPN_Debug|x86.Build.0 = VPN_Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.XP32bit|Any CPU.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.XP32bit|Any CPU.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.XP32bit|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.XP32bit|Mixed Platforms.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.XP32bit|x64.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.XP32bit|x64.Build.0 = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.XP32bit|x86.ActiveCfg = Debug|Any CPU - {D6B81C60-2763-4C4D-989F-90822F53B01A}.XP32bit|x86.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}._MANUAL_CONTROL|Any CPU.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}._MANUAL_CONTROL|Any CPU.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}._MANUAL_CONTROL|x64.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}._MANUAL_CONTROL|x64.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}._MANUAL_CONTROL|x86.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}._MANUAL_CONTROL|x86.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.COM|Any CPU.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.COM|Any CPU.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.COM|Mixed Platforms.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.COM|Mixed Platforms.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.COM|x64.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.COM|x64.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.COM|x86.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.COM|x86.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug|x64.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug|x64.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug|x86.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug|x86.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug-local IIS-CUST|Any CPU.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug-local IIS-CUST|Any CPU.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug-local IIS-CUST|Mixed Platforms.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug-local IIS-CUST|Mixed Platforms.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug-local IIS-CUST|x64.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug-local IIS-CUST|x64.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug-local IIS-CUST|x86.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Debug-local IIS-CUST|x86.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.PerformTest|Any CPU.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.PerformTest|Any CPU.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.PerformTest|Mixed Platforms.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.PerformTest|Mixed Platforms.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.PerformTest|x64.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.PerformTest|x64.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.PerformTest|x86.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.PerformTest|x86.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Release|Any CPU.Build.0 = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Release|x64.ActiveCfg = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Release|x64.Build.0 = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Release|x86.ActiveCfg = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.Release|x86.Build.0 = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.ReleaseTest|x64.Build.0 = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.ReleaseTest|x86.Build.0 = Release|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.VPN_Debug|Any CPU.ActiveCfg = VPN_Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.VPN_Debug|Any CPU.Build.0 = VPN_Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.VPN_Debug|Mixed Platforms.ActiveCfg = VPN_Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.VPN_Debug|Mixed Platforms.Build.0 = VPN_Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.VPN_Debug|x64.ActiveCfg = VPN_Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.VPN_Debug|x64.Build.0 = VPN_Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.VPN_Debug|x86.ActiveCfg = VPN_Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.VPN_Debug|x86.Build.0 = VPN_Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.XP32bit|Any CPU.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.XP32bit|Any CPU.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.XP32bit|Mixed Platforms.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.XP32bit|Mixed Platforms.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.XP32bit|x64.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.XP32bit|x64.Build.0 = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.XP32bit|x86.ActiveCfg = Debug|Any CPU - {00748F11-4B49-4D8B-93C4-4A11A210CCE2}.XP32bit|x86.Build.0 = Debug|Any CPU {20F137FD-C25E-42B7-A68F-58C746475897}._MANUAL_CONTROL|Any CPU.ActiveCfg = _MANUAL_CONTROL|Any CPU {20F137FD-C25E-42B7-A68F-58C746475897}._MANUAL_CONTROL|Any CPU.Build.0 = _MANUAL_CONTROL|Any CPU {20F137FD-C25E-42B7-A68F-58C746475897}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = _MANUAL_CONTROL|x64 @@ -6214,12 +5844,7 @@ Global {62E5BA37-36AB-4F0A-BC12-554E7A1F1A39} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} {60765BF4-6165-4F2F-8756-1C699826265D} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} {A83696BF-D8A2-4809-8424-CFE172AED5B6} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} - {B6A19B80-0F0F-434C-A754-A7712FC208B2} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} {B5DA260C-71CC-45CA-B79E-D1B376AF718C} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} - {BA17D20E-0CEB-4B27-9772-2392BD750ED5} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} - {D6B81C60-2763-4C4D-989F-90822F53B01A} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} - {00748F11-4B49-4D8B-93C4-4A11A210CCE2} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} {20F137FD-C25E-42B7-A68F-58C746475897} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} {70398B99-B134-4BBD-968B-7399B70C3CE2} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} EndGlobalSection diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs index 1b9e1281e..7fd036103 100644 --- a/TBF/Properties/AssemblyInfo.cs +++ b/TBF/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("3.9.3134.0")] -[assembly: AssemblyFileVersion("3.9.3134.0")] +[assembly: AssemblyVersion("3.9.3134.112")] +[assembly: AssemblyFileVersion("3.9.3134.112")] diff --git a/TBF/Resources/Strings.Designer.cs b/TBF/Resources/Strings.Designer.cs index b36eb5c49..36d84ecf8 100644 --- a/TBF/Resources/Strings.Designer.cs +++ b/TBF/Resources/Strings.Designer.cs @@ -1,6 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. +// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -18,7 +19,7 @@ namespace TBF.Resources { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Strings { @@ -4452,7 +4453,7 @@ namespace TBF.Resources { } /// - /// Looks up a localized string similar to Pulses per liter. + /// Looks up a localized string similar to Pulses per unit. /// internal static string PulsesPerLtr { get { diff --git a/TBF/Resources/Strings.cs.resx b/TBF/Resources/Strings.cs.resx index 2a45ee942..00234e6e2 100644 --- a/TBF/Resources/Strings.cs.resx +++ b/TBF/Resources/Strings.cs.resx @@ -529,7 +529,7 @@ Rychlost změny [%] - Impulsy na litr + Impulsy na jednotky Komponent @@ -1734,6 +1734,18 @@ Zobraz Okno + + + + + + + + + + + Probíhá výpočet + Uspořádání testu @@ -1755,16 +1767,4 @@ Znovu otevřít - - - - - - - - - - - Probíhá výpočet - \ No newline at end of file diff --git a/TBF/Resources/Strings.de.resx b/TBF/Resources/Strings.de.resx index 675a32298..2ce6b09c4 100644 --- a/TBF/Resources/Strings.de.resx +++ b/TBF/Resources/Strings.de.resx @@ -532,7 +532,7 @@ Durchflussänderung [%] - Impulse pro Liter + Impulse pro Einheit Komponente @@ -2187,6 +2187,15 @@ Dialog anzeigen + + + + + + + + + Wasserzähler geprüft @@ -2220,13 +2229,4 @@ Abtastkopf wurde deaktiviert vom Benutzer! - - - - - - - - - \ No newline at end of file diff --git a/TBF/Resources/Strings.es.resx b/TBF/Resources/Strings.es.resx index 42dd41499..2e116070f 100644 --- a/TBF/Resources/Strings.es.resx +++ b/TBF/Resources/Strings.es.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + pulsos por unidad + Activity in Spanish diff --git a/TBF/Resources/Strings.fr.resx b/TBF/Resources/Strings.fr.resx index 5b63f80f0..f37f2e22d 100644 --- a/TBF/Resources/Strings.fr.resx +++ b/TBF/Resources/Strings.fr.resx @@ -529,7 +529,7 @@ Taux de changement [%] - Impulsions par litre + impulsions par unité Composant @@ -2004,6 +2004,15 @@ Afficher la boîte de dialogue + + + + + + + + + Types compteurs testés @@ -2019,13 +2028,4 @@ Temps test [s] - - - - - - - - - \ No newline at end of file diff --git a/TBF/Resources/Strings.it.resx b/TBF/Resources/Strings.it.resx index b700dfed6..c1b24abd9 100644 --- a/TBF/Resources/Strings.it.resx +++ b/TBF/Resources/Strings.it.resx @@ -529,7 +529,7 @@ tasso di cambio [%] - impulsi per litro + impulsi per unità componente @@ -1761,6 +1761,15 @@ Mostra dialogo + + + + + + + + + tipi di contatori testati @@ -1791,13 +1800,4 @@ Drenare - - - - - - - - - \ No newline at end of file diff --git a/TBF/Resources/Strings.pl.resx b/TBF/Resources/Strings.pl.resx index 7036778c3..50978605f 100644 --- a/TBF/Resources/Strings.pl.resx +++ b/TBF/Resources/Strings.pl.resx @@ -520,7 +520,7 @@ Szybkość zmian [%] - Impulsy na litr + impulsów na jednostkę Element @@ -1644,6 +1644,15 @@ Napięcie + + + + + + + + + Układ testu @@ -1695,13 +1704,4 @@ Jeszcze raz - - - - - - - - - \ No newline at end of file diff --git a/TBF/Resources/Strings.resx b/TBF/Resources/Strings.resx index 064b2ec0a..fb5f56b04 100644 --- a/TBF/Resources/Strings.resx +++ b/TBF/Resources/Strings.resx @@ -541,7 +541,7 @@ Rate of change [%] - Pulses per liter + Pulses per unit Delay between pictures diff --git a/TBF/Resources/Strings.ro.resx b/TBF/Resources/Strings.ro.resx index fdb95c768..1f9f1fbba 100644 --- a/TBF/Resources/Strings.ro.resx +++ b/TBF/Resources/Strings.ro.resx @@ -433,7 +433,7 @@ Variatie debit [%] - impuls pe litru + impulsuri pe unitate Componenta @@ -819,6 +819,15 @@ Save Communication + + + + + + + + + rece @@ -843,13 +852,4 @@ seria - - - - - - - - - \ No newline at end of file diff --git a/TBF/Resources/Strings.ru.resx b/TBF/Resources/Strings.ru.resx index ec13473b8..eeb2d30f8 100644 --- a/TBF/Resources/Strings.ru.resx +++ b/TBF/Resources/Strings.ru.resx @@ -520,7 +520,7 @@ Скорость изменения [%] - Импульсов на литр + импульсов на единицу Компонент @@ -1554,6 +1554,15 @@ Voltage + + + + + + + + + холодный @@ -1608,13 +1617,4 @@ Снова - - - - - - - - - \ No newline at end of file diff --git a/TBF/Resources/Strings.sk.resx b/TBF/Resources/Strings.sk.resx index 5bea76082..0f17f5f1e 100644 --- a/TBF/Resources/Strings.sk.resx +++ b/TBF/Resources/Strings.sk.resx @@ -135,6 +135,9 @@ Združené vodomery + + Pulzy na jednotky + Činnosť diff --git a/TBF/Rig/DataEntry/Standard24/TestStartEndForm.designer.cs b/TBF/Rig/DataEntry/Standard24/TestStartEndForm.designer.cs index c21a9caaf..437262653 100644 --- a/TBF/Rig/DataEntry/Standard24/TestStartEndForm.designer.cs +++ b/TBF/Rig/DataEntry/Standard24/TestStartEndForm.designer.cs @@ -1389,12 +1389,14 @@ namespace TBF.Rig.DataEntry.Standard24 // unitComboBox // this.unitComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.unitComboBox.Enabled = false; this.unitComboBox.Font = new System.Drawing.Font("Verdana", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); this.unitComboBox.FormattingEnabled = true; this.unitComboBox.Location = new System.Drawing.Point(999, 131); this.unitComboBox.Name = "unitComboBox"; this.unitComboBox.Size = new System.Drawing.Size(123, 31); this.unitComboBox.TabIndex = 103; + this.unitComboBox.Visible = false; this.unitComboBox.SelectedIndexChanged += new System.EventHandler(this.unitComboBox_SelectedIndexChanged); this.unitComboBox.TextChanged += new System.EventHandler(this.unitComboBox_TextChanged); // diff --git a/TBF/Rig/DataEntry/StandardCamera/TestStartEndForm.cs b/TBF/Rig/DataEntry/StandardCamera/TestStartEndForm.cs index 011dabbe1..64e1d4cba 100644 --- a/TBF/Rig/DataEntry/StandardCamera/TestStartEndForm.cs +++ b/TBF/Rig/DataEntry/StandardCamera/TestStartEndForm.cs @@ -19,7 +19,7 @@ namespace TBF.Rig.DataEntry.StandardCamera { private static readonly ILog log = LogManager.GetLogger(typeof(TestStartEndForm)); - const Unit unit = Unit.m3; + const Unit unit = Unit.l; /// /// Static members and constructor diff --git a/TBF/Rig/DataEntry/StandartCameraPurchaseOrder/TestStartEndForm.cs b/TBF/Rig/DataEntry/StandartCameraPurchaseOrder/TestStartEndForm.cs index 4543eaaf5..0ee767173 100644 --- a/TBF/Rig/DataEntry/StandartCameraPurchaseOrder/TestStartEndForm.cs +++ b/TBF/Rig/DataEntry/StandartCameraPurchaseOrder/TestStartEndForm.cs @@ -20,7 +20,7 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder { private static readonly ILog log = LogManager.GetLogger(typeof(TestStartEndForm)); - const Unit unit = Unit.m3; + const Unit unit = Unit.l; /// /// Static members and constructor diff --git a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Interfaces/IDataStorageWriter.cs b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Interfaces/IDataStorageWriter.cs index 40e733e9f..5746073f5 100644 --- a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Interfaces/IDataStorageWriter.cs +++ b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Interfaces/IDataStorageWriter.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using TBF.Rig.Output.DataStorage.UniDataStorageWriter.Diagnostic; +using TBF.Rig.Output.DataStorage.UniDataStorageWriter.Diagnostic; using TBF.Rig.Output.DataStorage.UniDataStorageWriter.Interfaces; namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter diff --git a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Types.cs b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Types.cs index cebb0ae79..d1a5137d5 100644 --- a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Types.cs +++ b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Types.cs @@ -31,6 +31,7 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter public const string Csv = ".csv"; public const string Xls = ".xls"; + public const string Xlsx = ".xlsx"; public const string Json = ".json"; } } diff --git a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/UI/WriterCfgCtrl.cs b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/UI/WriterCfgCtrl.cs index f7d16cd30..07f7c8131 100644 --- a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/UI/WriterCfgCtrl.cs +++ b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/UI/WriterCfgCtrl.cs @@ -1,12 +1,13 @@ - using Common; - using System; - using System.Collections.Generic; - using System.Linq; - using System.Text; - using TBF.Rig.Generic; - using TBF.Rig.Output.DataStorage.UniDataStorageWriter.Interfaces; - using TBF.Rig.Output.DataStorage.UniDataStorageWriter.Writers; - using static TBF.Rig.Output.DataStorage.UniDataStorageWriter.Types; +using Common; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using TBF.Rig.Generic; +using TBF.Rig.Output.DataStorage.UniDataStorageWriter.Interfaces; +using TBF.Rig.Output.DataStorage.UniDataStorageWriter.Writers; +using static TBF.Rig.Output.DataStorage.UniDataStorageWriter.Types; +using System.Runtime.InteropServices; namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI { @@ -25,6 +26,32 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI private WriterCfg config; + private bool isUnlocked; + + private const string CsvTemplateHint = + "Write template is not used."; + + private const string DefaultDatabaseInsertTemplate = + "Insert|INSERT INTO dbo.table ({0}) VALUES ({1})"; + + private const string DefaultDatabaseUpdateTemplate = + "Update|UPDATE dbo.table SET {2} = {3} WHERE {0} = {1}"; + + private const string DefaultXlsxInsertTemplate = + "Insert|INSERT INTO Sheet1 ({0}) VALUES ({1})"; + + private const string DefaultXlsxUpdateTemplate = + "Update|UPDATE Sheet1 SET {2} = {3} WHERE {0} = {1}"; + + private const int EmSetCueBanner = 0x1501; + + [DllImport("user32.dll", CharSet = CharSet.Unicode)] + private static extern IntPtr SendMessage( + IntPtr hWnd, + int msg, + IntPtr wParam, + string lParam); + public bool ShowMore { get { return false; } @@ -55,6 +82,8 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI buttonUpdateTemplate.Click += buttonUpdateTemplate_Click; buttonRemoveTemplate.Click += buttonRemoveTemplate_Click; writeTemplatesListBox.SelectedIndexChanged += writeTemplatesListBox_SelectedIndexChanged; + + technologyTypeComboBox.SelectedIndexChanged += technologyTypeComboBox_SelectedIndexChanged; } private void WriterCfgCtrl_Load(object sender, EventArgs e) @@ -70,6 +99,8 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI if (config != null) Redraw(); + + ApplyTechnologyConfiguration(true); } public void Closing() @@ -118,29 +149,136 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI RefreshTemplatesListBox(); UpdateInputHint(); RefreshWriteParamsListBox(); + + ApplyTechnologyConfiguration(true); } public void Unlock() { + isUnlocked = true; + nameTextBox.Enabled = true; dataStorageTypeComboBox.Enabled = true; dataSourceTextBox.Enabled = true; + sourceTestResultTextBox.Enabled = true; sourceTestResultTextBox.ReadOnly = true; + writeTestResultTextBox.Enabled = true; writeTestResultTextBox.ReadOnly = true; + writeParamValueTextBox.Enabled = true; listBoxWriteParams.Enabled = true; buttonAddParam.Enabled = true; buttonRemoveParam.Enabled = true; writeModeComboBox.Enabled = true; technologyTypeComboBox.Enabled = true; - writeTemplatesListBox.Enabled = true; - templateEditTextBox.Enabled = true; - buttonAddTemplate.Enabled = true; - buttonUpdateTemplate.Enabled = true; - buttonRemoveTemplate.Enabled = true; - examples1Button.Enabled = true; + + ApplyTechnologyConfiguration(false); + } + + /// + /// Updates source hints, default templates and template control availability + /// according to the selected technology. + /// + /// + /// to create default templates when the template list + /// is empty; otherwise, . + /// + private void ApplyTechnologyConfiguration(bool initializeDefaults) + { + string technologyType = + (technologyTypeComboBox.Text ?? string.Empty).Trim(); + + SetDataSourceHint(GetDataSourceHint(technologyType)); + + bool templatesSupported = + technologyType == TechnologyTypes.MicrosoftSql || + technologyType == TechnologyTypes.Xlsx || + technologyType == TechnologyTypes.Xls; + + if (technologyType == TechnologyTypes.Csv) + { + writeTemplatesListBox.Items.Clear(); + + templateEditTextBox.Text = CsvTemplateHint; + + SetTemplateControlsEnabled(false); + return; + } + + if (initializeDefaults && + templatesSupported && + writeTemplatesListBox.Items.Count == 0) + { + AddDefaultTemplates(technologyType); + } + + if (!templatesSupported) + { + writeTemplatesListBox.Items.Clear(); + templateEditTextBox.Clear(); + } + else if (templateEditTextBox.Text == CsvTemplateHint) + { + templateEditTextBox.Clear(); + } + + SetTemplateControlsEnabled( + templatesSupported && isUnlocked); + } + + /// + /// Adds default write templates for the selected technology. + /// + /// + /// Selected writer technology type. + /// + private void AddDefaultTemplates(string technologyType) + { + writeTemplatesListBox.Items.Clear(); + + switch (technologyType) + { + case TechnologyTypes.MicrosoftSql: + writeTemplatesListBox.Items.Add( + DefaultDatabaseInsertTemplate); + + writeTemplatesListBox.Items.Add( + DefaultDatabaseUpdateTemplate); + break; + + case TechnologyTypes.Xlsx: + case TechnologyTypes.Xls: + writeTemplatesListBox.Items.Add( + DefaultXlsxInsertTemplate); + + writeTemplatesListBox.Items.Add( + DefaultXlsxUpdateTemplate); + break; + } + + if (writeTemplatesListBox.Items.Count > 0) + writeTemplatesListBox.SelectedIndex = 0; + } + + /// + /// Enables or disables controls used for write template configuration. + /// + /// + /// to enable template editing; otherwise, + /// . + /// + private void SetTemplateControlsEnabled(bool enabled) + { + writeTemplatesListBox.Enabled = enabled; + templateEditTextBox.Enabled = enabled; + + buttonAddTemplate.Enabled = enabled; + buttonUpdateTemplate.Enabled = enabled; + buttonRemoveTemplate.Enabled = enabled; + + examples1Button.Enabled = enabled; } public CfgUpdateFlags VerifyCfg(ref string message) @@ -214,14 +352,9 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI tmpCfg.TechnologyType = (technologyTypeComboBox.Text ?? string.Empty).Trim(); tmpCfg.DataSource = dataSourceTextBox.Text; - if (config != null && config.WriteTemplates != null) - { - tmpCfg.WriteTemplates = new List(config.WriteTemplates); - } - else - { - tmpCfg.WriteTemplates = new List(); - } + tmpCfg.WriteTemplates = writeTemplatesListBox.Items + .Cast() + .ToList(); string selectedTemplate = tmpCfg.GetTemplate(mode); tmpCfg.QueryTemplate = selectedTemplate; @@ -267,6 +400,9 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI case TechnologyTypes.Csv: return new CsvWriter(cfg); + case TechnologyTypes.Xlsx: + return new XlsxWriter(cfg); + case TechnologyTypes.Json: throw new NotSupportedException("JSON writer is not supported yet."); @@ -362,18 +498,39 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI return request; } + /// + /// Parses an insert parameter in the format Column=Value. + /// + /// + /// Text containing the column name and value. + /// + /// + /// Parsed insert write item. + /// + /// + /// Thrown when the input format is invalid. + /// private InsertWriteItem ParseInsertItem(string text) { if (string.IsNullOrWhiteSpace(text)) throw new InvalidOperationException("Insert item is empty."); string[] parts = text - .Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries) + .Split(new[] { '=' }, 2, StringSplitOptions.None) .Select(p => p.Trim()) .ToArray(); if (parts.Length != 2) - throw new InvalidOperationException("Insert format must be: Column;Value"); + throw new InvalidOperationException( + "Insert format must be: Column=Value"); + + if (string.IsNullOrWhiteSpace(parts[0])) + throw new InvalidOperationException( + "Insert column name cannot be empty."); + + if (string.IsNullOrWhiteSpace(parts[1])) + throw new InvalidOperationException( + "Insert value cannot be empty."); return new InsertWriteItem { @@ -382,25 +539,75 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI }; } + /// + /// Parses an update parameter in the format + /// WhereName=WhereValue;SetName=SetValue. + /// + /// + /// Text containing the update condition and target value. + /// + /// + /// Parsed update write item. + /// + /// + /// Thrown when the input format is invalid. + /// private UpdateWriteItem ParseUpdateItem(string text) { if (string.IsNullOrWhiteSpace(text)) throw new InvalidOperationException("Update item is empty."); - string[] parts = text - .Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries) + string[] pairs = text + .Split(new[] { ';' }, StringSplitOptions.None) .Select(p => p.Trim()) .ToArray(); - if (parts.Length != 4) - throw new InvalidOperationException("Update format must be: WhereName;WhereValue;SetName;SetValue"); + if (pairs.Length != 2) + { + throw new InvalidOperationException( + "Update format must be: " + + "WhereName=WhereValue;SetName=SetValue"); + } + + string[] whereParts = pairs[0] + .Split(new[] { '=' }, 2, StringSplitOptions.None) + .Select(p => p.Trim()) + .ToArray(); + + string[] setParts = pairs[1] + .Split(new[] { '=' }, 2, StringSplitOptions.None) + .Select(p => p.Trim()) + .ToArray(); + + if (whereParts.Length != 2 || setParts.Length != 2) + { + throw new InvalidOperationException( + "Update format must be: " + + "WhereName=WhereValue;SetName=SetValue"); + } + + if (string.IsNullOrWhiteSpace(whereParts[0])) + throw new InvalidOperationException( + "WHERE column name cannot be empty."); + + if (string.IsNullOrWhiteSpace(whereParts[1])) + throw new InvalidOperationException( + "WHERE value cannot be empty."); + + if (string.IsNullOrWhiteSpace(setParts[0])) + throw new InvalidOperationException( + "SET column name cannot be empty."); + + if (string.IsNullOrWhiteSpace(setParts[1])) + throw new InvalidOperationException( + "SET value cannot be empty."); return new UpdateWriteItem { - WhereParameterName = parts[0], - WhereValue = parts[1], - SetParameterName = parts[2], - SetValue = parts[3] + WhereParameterName = whereParts[0], + WhereValue = whereParts[1], + SetParameterName = setParts[0], + SetValue = setParts[1] }; } @@ -413,18 +620,33 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI if (string.IsNullOrWhiteSpace(text)) return; - WriteMode mode; - if (!Enum.TryParse(writeModeComboBox.Text, true, out mode)) - mode = WriteMode.Insert; + try + { + WriteMode mode; - if (mode == WriteMode.Insert) - ParseInsertItem(text); - else if (mode == WriteMode.Update) - ParseUpdateItem(text); + if (!Enum.TryParse(writeModeComboBox.Text, true, out mode)) + mode = WriteMode.Insert; - batchWriteLines.Add(text); - writeParamValueTextBox.Clear(); - RefreshWriteParamsListBox(); + if (mode == WriteMode.Insert) + ParseInsertItem(text); + else if (mode == WriteMode.Update) + ParseUpdateItem(text); + + batchWriteLines.Add(text); + + writeParamValueTextBox.Clear(); + RefreshWriteParamsListBox(); + } + catch (InvalidOperationException ex) + { + writeTestResultTextBox.Text = + "Invalid write parameter:" + + Environment.NewLine + + ex.Message; + + writeParamValueTextBox.Focus(); + writeParamValueTextBox.SelectAll(); + } } private void buttonRemoveParam_Click(object sender, EventArgs e) @@ -452,13 +674,16 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI { if (writeModeComboBox.Text == WriteMode.Insert.ToString()) { - labelParamValue.Text = "Insert: Column;Value"; - writeParamValueTextBox.Text = "Column;Value"; + labelParamValue.Text = "Insert: Column=Value"; + writeParamValueTextBox.Text = "Column=Value"; } else { - labelParamValue.Text = "Update: WhereName;WhereValue;SetName;SetValue"; - writeParamValueTextBox.Text = "WhereName;WhereValue;SetName;SetValue"; + labelParamValue.Text = + "Update: WhereName=WhereValue;SetName=SetValue"; + + writeParamValueTextBox.Text = + "WhereName=WhereValue;SetName=SetValue"; } } @@ -539,37 +764,64 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI private void UpdateTechnologyTypeUi() { - string storageType = (dataStorageTypeComboBox.Text ?? string.Empty).Trim(); + string previousTechnology = + (technologyTypeComboBox.Text ?? string.Empty).Trim(); + + string storageType = + (dataStorageTypeComboBox.Text ?? string.Empty).Trim(); technologyTypeComboBox.Items.Clear(); - technologyTypeComboBox.Text = string.Empty; switch (storageType) { case StorageTypes.LocalDatabase: case StorageTypes.RemoteDatabase: technologyTypeLabel.Text = "Database type:"; - technologyTypeComboBox.Items.Add(TechnologyTypes.MicrosoftSql); - technologyTypeComboBox.Items.Add(TechnologyTypes.MySqlMariaDb); - technologyTypeComboBox.Items.Add(TechnologyTypes.SQLite); + + technologyTypeComboBox.Items.Add( + TechnologyTypes.MicrosoftSql); + + technologyTypeComboBox.Items.Add( + TechnologyTypes.MySqlMariaDb); + + technologyTypeComboBox.Items.Add( + TechnologyTypes.SQLite); break; case StorageTypes.LocalFile: case StorageTypes.RemoteFile: technologyTypeLabel.Text = "File type:"; - technologyTypeComboBox.Items.Add(TechnologyTypes.Csv); - technologyTypeComboBox.Items.Add(TechnologyTypes.Xls); - technologyTypeComboBox.Items.Add(TechnologyTypes.Json); - break; - case StorageTypes.RestApi: - technologyTypeLabel.Text = "Technology type:"; + technologyTypeComboBox.Items.Add( + TechnologyTypes.Csv); + + technologyTypeComboBox.Items.Add( + TechnologyTypes.Xlsx); + + technologyTypeComboBox.Items.Add( + TechnologyTypes.Xls); + + technologyTypeComboBox.Items.Add( + TechnologyTypes.Json); break; default: technologyTypeLabel.Text = "Technology type:"; break; } + + if (!string.IsNullOrWhiteSpace(previousTechnology) && + technologyTypeComboBox.Items.Contains(previousTechnology)) + { + technologyTypeComboBox.SelectedItem = + previousTechnology; + } + else if (technologyTypeComboBox.Items.Count > 0) + { + technologyTypeComboBox.SelectedIndex = 0; + } + + ApplyTechnologyConfiguration(true); } private void writeModeComboBox_SelectedIndexChanged(object sender, EventArgs e) @@ -599,6 +851,11 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI templateEditTextBox.Text = writeTemplatesListBox.SelectedItem.ToString(); } + private void technologyTypeComboBox_SelectedIndexChanged(object sender, EventArgs e) + { + ApplyTechnologyConfiguration(true); + } + private void buttonAddTemplate_Click(object sender, EventArgs e) { string text = (templateEditTextBox.Text ?? string.Empty).Trim(); @@ -652,5 +909,55 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI writeTemplatesListBox.SelectedIndex = newIndex; } } + + /// + /// Returns the data source hint for the selected technology. + /// + /// + /// Selected technology type. + /// + /// + /// Data source input hint. + /// + private string GetDataSourceHint(string technologyType) + { + switch (technologyType) + { + case TechnologyTypes.Csv: + return "Insert the .csv file path"; + + case TechnologyTypes.Xlsx: + return "Insert the .xlsx file path"; + + case TechnologyTypes.Xls: + return "Insert the .xls file path"; + + case TechnologyTypes.MicrosoftSql: + case TechnologyTypes.MySqlMariaDb: + case TechnologyTypes.SQLite: + return "Insert database connection string"; + + default: + return "Insert data storage source"; + } + } + + /// + /// Sets the placeholder text displayed by the data source textbox. + /// + /// + /// Placeholder text. + /// + private void SetDataSourceHint(string hint) + { + if (!dataSourceTextBox.IsHandleCreated) + return; + + SendMessage( + dataSourceTextBox.Handle, + EmSetCueBanner, + new IntPtr(1), + hint ?? string.Empty); + } } } \ No newline at end of file diff --git a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/UI/WriterCfgCtrl.designer.cs b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/UI/WriterCfgCtrl.designer.cs index ed9bbded4..4556d06de 100644 --- a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/UI/WriterCfgCtrl.designer.cs +++ b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/UI/WriterCfgCtrl.designer.cs @@ -202,7 +202,6 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.UI this.writeDataByParamAndTemplateButton.TabIndex = 17; this.writeDataByParamAndTemplateButton.Text = "Write data by param and template"; this.writeDataByParamAndTemplateButton.UseVisualStyleBackColor = true; - this.writeDataByParamAndTemplateButton.Click += new System.EventHandler(this.writeDataByParamAndTemplateButton_Click); // // groupBox3 // diff --git a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writer.cs b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writer.cs index 759bcf15d..e01d0deef 100644 --- a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writer.cs +++ b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writer.cs @@ -105,6 +105,12 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter case TechnologyTypes.Csv: return new CsvWriter(cfg); + case TechnologyTypes.Xlsx: + return new XlsxWriter(cfg); + + case TechnologyTypes.Xls: + return new XlsxWriter(cfg); + case TechnologyTypes.Json: return new JsonWriter(cfg); diff --git a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writers/CsvWriter .cs b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writers/CsvWriter .cs index abaf7333e..f1a55ddb0 100644 --- a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writers/CsvWriter .cs +++ b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writers/CsvWriter .cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; @@ -99,30 +100,160 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.Writers } /// - /// Insert mode: - /// request.InsertItems define a single CSV row. - /// Example: - /// SerialNumber=SN001 - /// Result=PASS - /// Produces: - /// SN001;PASS - /// - /// Current implementation writes only values, not header names. + /// Appends one data row to the CSV file. /// + /// + /// Request containing the insert items. + /// + /// + /// A diagnostic result describing the inserted row. + /// + /// + /// + /// When the CSV file is empty or contains only empty lines, the first row is + /// automatically created from the insert item column names. + /// + /// + /// When the CSV file already contains a header, values are ordered according + /// to the existing header. + /// + /// private WriterDiagnosticResult ExecuteInsert(DataWriteRequest request) { - if (request.InsertItems == null || request.InsertItems.Count == 0) + if (request.InsertItems == null || + request.InsertItems.Count == 0) + { return Fail("No insert items provided."); + } - string delimiter = ";"; + if (request.InsertItems.Any(i => i == null)) + return Fail("Insert items contain a null item."); - string[] values = request.InsertItems - .Select(i => EscapeCsvValue(i != null ? i.Value : null)) + if (request.InsertItems.Any( + i => string.IsNullOrWhiteSpace(i.ColumnName))) + { + return Fail("Insert item contains an empty column name."); + } + + string[] duplicateColumns = request.InsertItems + .GroupBy( + i => i.ColumnName, + StringComparer.OrdinalIgnoreCase) + .Where(g => g.Count() > 1) + .Select(g => g.Key) + .ToArray(); + + if (duplicateColumns.Length > 0) + { + return Fail( + "Insert items contain duplicate columns: " + + string.Join(", ", duplicateColumns)); + } + + const string delimiter = ";"; + + Dictionary valuesByColumn = + request.InsertItems.ToDictionary( + item => item.ColumnName, + item => item.Value, + StringComparer.OrdinalIgnoreCase); + + string firstNonEmptyLine = null; + + if (File.Exists(cfg.DataSource)) + { + firstNonEmptyLine = File + .ReadLines(cfg.DataSource, Encoding.UTF8) + .FirstOrDefault(line => !string.IsNullOrWhiteSpace(line)); + } + + string[] headerColumns; + + if (string.IsNullOrWhiteSpace(firstNonEmptyLine)) + { + headerColumns = request.InsertItems + .Select(item => item.ColumnName) + .ToArray(); + + string headerLine = string.Join( + delimiter, + headerColumns.Select(EscapeCsvValue)); + + // The file is empty or contains only blank lines. + // Rewrite it so that the header is always the first row. + File.WriteAllText( + cfg.DataSource, + headerLine + Environment.NewLine, + Encoding.UTF8); + } + else + { + headerColumns = ParseCsvLine( + firstNonEmptyLine, + delimiter[0]) + .Select(value => value.Trim()) + .ToArray(); + + if (headerColumns.Length == 0 || + headerColumns.All(string.IsNullOrWhiteSpace)) + { + return Fail("CSV file does not contain a valid header."); + } + + if (headerColumns.Any(string.IsNullOrWhiteSpace)) + { + return Fail( + "CSV header contains an empty column name."); + } + + string[] duplicateHeaderColumns = headerColumns + .GroupBy( + name => name, + StringComparer.OrdinalIgnoreCase) + .Where(g => g.Count() > 1) + .Select(g => g.Key) + .ToArray(); + + if (duplicateHeaderColumns.Length > 0) + { + return Fail( + "CSV header contains duplicate columns: " + + string.Join(", ", duplicateHeaderColumns)); + } + } + + string[] missingColumns = request.InsertItems + .Select(item => item.ColumnName) + .Where(name => !headerColumns.Contains( + name, + StringComparer.OrdinalIgnoreCase)) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToArray(); + + if (missingColumns.Length > 0) + { + return Fail( + "CSV header does not contain columns: " + + string.Join(", ", missingColumns)); + } + + string[] values = headerColumns + .Select(columnName => + { + string value; + + return valuesByColumn.TryGetValue(columnName, out value) + ? EscapeCsvValue(value) + : string.Empty; + }) .ToArray(); string line = string.Join(delimiter, values); - File.AppendAllText(cfg.DataSource, line + Environment.NewLine, Encoding.UTF8); + File.AppendAllText( + cfg.DataSource, + line + Environment.NewLine, + Encoding.UTF8); return new WriterDiagnosticResult { @@ -132,6 +263,76 @@ namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.Writers }; } + /// + /// Parses a single CSV line while respecting quoted values. + /// + /// + /// CSV line to parse. + /// + /// + /// Character separating individual fields. + /// + /// + /// Parsed CSV field values. + /// + /// + /// Thrown when the line contains an unterminated quoted value. + /// + private string[] ParseCsvLine(string line, char delimiter) + { + if (line == null) + return new string[0]; + + List values = new List(); + StringBuilder currentValue = new StringBuilder(); + + bool insideQuotes = false; + + for (int index = 0; index < line.Length; index++) + { + char character = line[index]; + + if (character == '"') + { + bool escapedQuote = + insideQuotes && + index + 1 < line.Length && + line[index + 1] == '"'; + + if (escapedQuote) + { + currentValue.Append('"'); + index++; + } + else + { + insideQuotes = !insideQuotes; + } + + continue; + } + + if (character == delimiter && !insideQuotes) + { + values.Add(currentValue.ToString()); + currentValue.Clear(); + continue; + } + + currentValue.Append(character); + } + + if (insideQuotes) + { + throw new InvalidOperationException( + "CSV line contains an unterminated quoted value."); + } + + values.Add(currentValue.ToString()); + + return values.ToArray(); + } + /// /// Update mode: /// CSV has no natural SQL-style row update, so current implementation writes diff --git a/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writers/XlsxWriter.cs b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writers/XlsxWriter.cs new file mode 100644 index 000000000..a82e21fc8 --- /dev/null +++ b/TBF/Rig/Output/DataStorage/UniDataStorageWriter/Writers/XlsxWriter.cs @@ -0,0 +1,1032 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using ClosedXML.Excel; +using TBF.Rig.Output.DataStorage.UniDataStorageWriter.Diagnostic; +using TBF.Rig.Output.DataStorage.UniDataStorageWriter.Interfaces; +using static TBF.Rig.Output.DataStorage.UniDataStorageWriter.Types; + +namespace TBF.Rig.Output.DataStorage.UniDataStorageWriter.Writers +{ + /// + /// Provides data writing support for Microsoft Excel Open XML files. + /// + /// + /// + /// The writer supports files using the .xlsx extension. + /// Microsoft Excel does not need to be installed on the target computer. + /// + /// + /// The first row of the first worksheet is used as the column header row. + /// Insert operations append a new row to the worksheet. Update operations + /// locate rows by a specified column value and update the requested cell. + /// + /// + public class XlsxWriter : IDataStorageWriter + { + private const string DefaultWorksheetName = "Data"; + + private readonly WriterCfg cfg; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Writer configuration containing the path of the target Excel file. + /// + /// + /// Thrown when is . + /// + public XlsxWriter(WriterCfg cfg) + { + this.cfg = cfg ?? throw new ArgumentNullException(nameof(cfg)); + } + + /// + /// Gets the storage types, technology types and write modes supported + /// by this writer. + /// + /// + /// The capabilities of the XLSX writer. + /// + public WriterCapabilities Capabilities + { + get + { + WriterCapabilities caps = new WriterCapabilities(); + + caps.SupportedStorageTypes.Add(StorageTypes.LocalFile); + caps.SupportedStorageTypes.Add(StorageTypes.RemoteFile); + + caps.SupportedTechnologyTypes.Add(TechnologyTypes.Xlsx); + + caps.SupportedWriteModes.Add(WriteMode.Insert); + caps.SupportedWriteModes.Add(WriteMode.Update); + + return caps; + } + } + + /// + /// Validates the configured XLSX source. + /// + /// + /// to validate the configured path without creating + /// missing directories or files; otherwise, . + /// + /// + /// A diagnostic result describing whether the XLSX source is valid + /// and accessible. + /// + /// + /// When is , + /// a missing directory and XLSX file are created automatically. + /// + public WriterDiagnosticResult TestSource(bool validateOnly) + { + try + { + WriterDiagnosticResult pathValidation = ValidateDataSource(); + if (!pathValidation.Success) + return pathValidation; + + string path = cfg.DataSource; + string directory = Path.GetDirectoryName(path); + + if (!string.IsNullOrWhiteSpace(directory) && + !Directory.Exists(directory)) + { + if (validateOnly) + return Fail("Directory does not exist: " + directory); + + Directory.CreateDirectory(directory); + } + + if (!File.Exists(path)) + { + if (validateOnly) + return Ok("XLSX file does not exist but the path is valid."); + + CreateEmptyWorkbook(path); + + return Ok("XLSX source was created successfully."); + } + + using (XLWorkbook workbook = new XLWorkbook(path)) + { + if (!workbook.Worksheets.Any()) + return Fail("XLSX file does not contain any worksheet."); + + IXLWorksheet worksheet = workbook.Worksheet(1); + + if (worksheet == null) + return Fail("The first XLSX worksheet could not be opened."); + } + + return Ok("XLSX source is ready."); + } + catch (IOException ex) + { + return Fail( + "XLSX source cannot be accessed. The file may be opened " + + "or locked by another process: " + ex.Message); + } + catch (UnauthorizedAccessException ex) + { + return Fail( + "Access to the XLSX source was denied: " + ex.Message); + } + catch (Exception ex) + { + return Fail("XLSX source test failed: " + ex.Message); + } + } + + /// + /// Writes data to the configured XLSX file. + /// + /// + /// Request containing the write mode and the data to be written. + /// + /// + /// A diagnostic result describing the outcome of the write operation. + /// + /// + /// Thrown when is . + /// + public WriterDiagnosticResult WriteData(DataWriteRequest request) + { + if (request == null) + throw new ArgumentNullException(nameof(request)); + + WriterDiagnosticResult sourceTest = TestSource(false); + if (!sourceTest.Success) + return sourceTest; + + try + { + switch (request.Mode) + { + case WriteMode.Insert: + return ExecuteInsert(request); + + case WriteMode.Update: + return ExecuteUpdate(request); + + default: + return Fail( + "XLSX mode is not supported: " + request.Mode); + } + } + catch (IOException ex) + { + return Fail( + "XLSX file cannot be written. The file may be opened " + + "or locked by another process: " + ex.Message); + } + catch (UnauthorizedAccessException ex) + { + return Fail( + "Access to the XLSX file was denied: " + ex.Message); + } + catch (Exception ex) + { + return Fail("XLSX write failed: " + ex.Message); + } + } + + /// + /// Appends one data row to the first worksheet. + /// + /// + /// Request containing the insert items. + /// + /// + /// A diagnostic result describing the inserted row. + /// + /// + /// + /// When the worksheet does not yet contain headers, the first row is + /// automatically created from the insert item column names. + /// + /// + /// When headers already exist, every insert item column must be present + /// in the header row. + /// + /// + private WriterDiagnosticResult ExecuteInsert(DataWriteRequest request) + { + if (request.InsertItems == null || + request.InsertItems.Count == 0) + { + return Fail("No insert items provided."); + } + + if (request.InsertItems.Any(i => i == null)) + return Fail("Insert items contain a null item."); + + if (request.InsertItems.Any( + i => string.IsNullOrWhiteSpace(i.ColumnName))) + { + return Fail("Insert item contains an empty column name."); + } + + string[] duplicateColumns = request.InsertItems + .GroupBy( + i => i.ColumnName, + StringComparer.OrdinalIgnoreCase) + .Where(g => g.Count() > 1) + .Select(g => g.Key) + .ToArray(); + + if (duplicateColumns.Length > 0) + { + return Fail( + "Insert items contain duplicate columns: " + + string.Join(", ", duplicateColumns)); + } + + using (XLWorkbook workbook = OpenWorkbook()) + { + string template = cfg.GetTemplate(request.Mode); + string worksheetName = ParseWorksheetName(template); + + IXLWorksheet worksheet = GetOrCreateWorksheet( + workbook, + worksheetName); + + Dictionary columns = + GetOrCreateHeaderColumns( + worksheet, + request.InsertItems.Select(i => i.ColumnName)); + + string[] missingColumns = request.InsertItems + .Select(i => i.ColumnName) + .Where(name => !columns.ContainsKey(name)) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToArray(); + + if (missingColumns.Length > 0) + { + return Fail( + "XLSX worksheet does not contain columns: " + + string.Join(", ", missingColumns)); + } + + int targetRowNumber = GetNextDataRowNumber(worksheet); + IXLRow targetRow = worksheet.Row(targetRowNumber); + + foreach (InsertWriteItem item in request.InsertItems) + { + int columnNumber = columns[item.ColumnName]; + + SetCellValue( + targetRow.Cell(columnNumber), + item.Value); + } + + workbook.Save(); + + string diagnostic = BuildInsertDiagnostic( + worksheet.Name, + targetRowNumber, + request.InsertItems); + + return new WriterDiagnosticResult + { + Success = true, + Message = "XLSX insert OK. Written 1 row.", + ExecutedTemplate = diagnostic + }; + } + } + + /// + /// Updates cells in rows matching the specified conditions. + /// + /// + /// Request containing the update items. + /// + /// + /// A diagnostic result containing the number of updated rows. + /// + /// + /// Each update item is processed separately. All rows whose value in + /// equals + /// are updated. + /// String comparison is case-sensitive. + /// + private WriterDiagnosticResult ExecuteUpdate(DataWriteRequest request) + { + if (request.UpdateItems == null || + request.UpdateItems.Count == 0) + { + return Fail("No update items provided."); + } + + if (request.UpdateItems.Any(i => i == null)) + return Fail("Update items contain a null item."); + + using (XLWorkbook workbook = OpenWorkbook()) + { + string template = cfg.GetTemplate(request.Mode); + string worksheetName = ParseWorksheetName(template); + + IXLWorksheet worksheet = GetOrCreateWorksheet( + workbook, + worksheetName); + + Dictionary columns = + GetHeaderColumns(worksheet); + + if (columns.Count == 0) + return Fail("XLSX worksheet does not contain a header row."); + + int totalUpdatedRows = 0; + StringBuilder diagnostics = new StringBuilder(); + + foreach (UpdateWriteItem item in request.UpdateItems) + { + WriterDiagnosticResult validation = + ValidateUpdateItem(item, columns); + + if (!validation.Success) + return validation; + + int whereColumnNumber = + columns[item.WhereParameterName]; + + int setColumnNumber = + columns[item.SetParameterName]; + + int updatedRows = UpdateMatchingRows( + worksheet, + whereColumnNumber, + item.WhereValue, + setColumnNumber, + item.SetValue); + + totalUpdatedRows += updatedRows; + + diagnostics.AppendLine( + BuildUpdateDiagnostic( + worksheet.Name, + item, + updatedRows)); + } + + workbook.Save(); + + return new WriterDiagnosticResult + { + Success = true, + Message = + "XLSX update OK. Rows: " + totalUpdatedRows, + ExecutedTemplate = + diagnostics.ToString().TrimEnd() + }; + } + } + + /// + /// Validates the configured data source path and file extension. + /// + /// + /// A successful result when the data source is valid; otherwise, + /// a failed diagnostic result. + /// + private WriterDiagnosticResult ValidateDataSource() + { + if (string.IsNullOrWhiteSpace(cfg.DataSource)) + return Fail("XLSX file path is not defined."); + + string extension = Path.GetExtension(cfg.DataSource); + + if (!string.Equals( + extension, + ".xlsx", + StringComparison.OrdinalIgnoreCase)) + { + return Fail( + "Invalid file extension. Expected .xlsx."); + } + + return Ok("XLSX data source is valid."); + } + + /// + /// Opens the configured workbook. + /// + /// + /// An opened . + /// + private XLWorkbook OpenWorkbook() + { + return new XLWorkbook(cfg.DataSource); + } + + /// + /// Creates an empty workbook containing the default worksheet. + /// + /// + /// Destination path of the workbook. + /// + private void CreateEmptyWorkbook(string path) + { + using (XLWorkbook workbook = new XLWorkbook()) + { + workbook.Worksheets.Add(DefaultWorksheetName); + workbook.SaveAs(path); + } + } + + /// + /// Gets the first worksheet from the specified workbook. + /// + /// + /// Workbook containing the worksheet. + /// + /// + /// The first worksheet in the workbook. + /// + /// + /// Thrown when the workbook does not contain a worksheet. + /// + private IXLWorksheet GetFirstWorksheet(XLWorkbook workbook) + { + if (workbook == null) + throw new ArgumentNullException(nameof(workbook)); + + IXLWorksheet worksheet = + workbook.Worksheets.FirstOrDefault(); + + if (worksheet == null) + { + throw new InvalidOperationException( + "XLSX workbook does not contain any worksheet."); + } + + return worksheet; + } + + /// + /// Reads header names from the first worksheet row. + /// + /// + /// Worksheet containing the header row. + /// + /// + /// A case-insensitive dictionary mapping column names to their + /// one-based worksheet column numbers. + /// + private Dictionary GetHeaderColumns( + IXLWorksheet worksheet) + { + Dictionary columns = + new Dictionary( + StringComparer.OrdinalIgnoreCase); + + IXLRow headerRow = worksheet.Row(1); + IXLCell lastUsedCell = headerRow.LastCellUsed(); + + if (lastUsedCell == null) + return columns; + + int lastColumnNumber = lastUsedCell.Address.ColumnNumber; + + for (int columnNumber = 1; + columnNumber <= lastColumnNumber; + columnNumber++) + { + string columnName = headerRow + .Cell(columnNumber) + .GetFormattedString() + .Trim(); + + if (string.IsNullOrWhiteSpace(columnName)) + continue; + + if (columns.ContainsKey(columnName)) + { + throw new InvalidOperationException( + "XLSX header contains duplicate column: " + + columnName); + } + + columns.Add(columnName, columnNumber); + } + + return columns; + } + + /// + /// Reads existing worksheet headers or creates them when the worksheet + /// is empty. + /// + /// + /// Worksheet containing the header row. + /// + /// + /// Column names required by the insert operation. + /// + /// + /// A dictionary mapping column names to worksheet column numbers. + /// + private Dictionary GetOrCreateHeaderColumns( + IXLWorksheet worksheet, + IEnumerable requiredColumnNames) + { + Dictionary columns = + GetHeaderColumns(worksheet); + + if (columns.Count > 0) + return columns; + + string[] columnNames = requiredColumnNames + .Where(name => !string.IsNullOrWhiteSpace(name)) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToArray(); + + for (int index = 0; index < columnNames.Length; index++) + { + int columnNumber = index + 1; + + worksheet.Cell(1, columnNumber).Value = + columnNames[index]; + + columns.Add( + columnNames[index], + columnNumber); + } + + return columns; + } + + /// + /// Determines the next available data row number. + /// + /// + /// Worksheet into which data will be inserted. + /// + /// + /// The one-based row number following the last used row. + /// + private int GetNextDataRowNumber(IXLWorksheet worksheet) + { + IXLRow lastUsedRow = worksheet.LastRowUsed(); + + if (lastUsedRow == null) + return 2; + + return Math.Max(lastUsedRow.RowNumber() + 1, 2); + } + + /// + /// Validates a single update item. + /// + /// + /// Update item to validate. + /// + /// + /// Available worksheet columns. + /// + /// + /// A successful result when the update item is valid; otherwise, + /// a failed diagnostic result. + /// + private WriterDiagnosticResult ValidateUpdateItem( + UpdateWriteItem item, + IDictionary columns) + { + if (string.IsNullOrWhiteSpace(item.WhereParameterName)) + return Fail("Update WHERE column name is empty."); + + if (string.IsNullOrWhiteSpace(item.SetParameterName)) + return Fail("Update SET column name is empty."); + + if (!columns.ContainsKey(item.WhereParameterName)) + { + return Fail( + "XLSX worksheet does not contain WHERE column: " + + item.WhereParameterName); + } + + if (!columns.ContainsKey(item.SetParameterName)) + { + return Fail( + "XLSX worksheet does not contain SET column: " + + item.SetParameterName); + } + + return Ok("Update item is valid."); + } + + /// + /// Updates all worksheet rows matching the specified value. + /// + /// + /// Worksheet containing the data. + /// + /// + /// One-based column number used to locate matching rows. + /// + /// + /// Value that must match the current cell value. + /// + /// + /// One-based column number of the cell to update. + /// + /// + /// New value assigned to the target cell. + /// + /// + /// The number of updated rows. + /// + private int UpdateMatchingRows( + IXLWorksheet worksheet, + int whereColumnNumber, + string whereValue, + int setColumnNumber, + string setValue) + { + IXLRow lastUsedRow = worksheet.LastRowUsed(); + + if (lastUsedRow == null || + lastUsedRow.RowNumber() < 2) + { + return 0; + } + + int updatedRows = 0; + int lastRowNumber = lastUsedRow.RowNumber(); + + for (int rowNumber = 2; + rowNumber <= lastRowNumber; + rowNumber++) + { + IXLCell whereCell = + worksheet.Cell(rowNumber, whereColumnNumber); + + string currentValue = + GetCellComparisonValue(whereCell); + + if (!string.Equals( + currentValue, + whereValue ?? string.Empty, + StringComparison.Ordinal)) + { + continue; + } + + IXLCell setCell = + worksheet.Cell(rowNumber, setColumnNumber); + + SetCellValue(setCell, setValue); + updatedRows++; + } + + return updatedRows; + } + + /// + /// Converts an XLSX cell value to a string used for update comparison. + /// + /// + /// Cell whose value is converted. + /// + /// + /// The formatted cell value, or an empty string for an empty cell. + /// + private string GetCellComparisonValue(IXLCell cell) + { + if (cell == null || cell.IsEmpty()) + return string.Empty; + + return cell.GetFormattedString(); + } + + /// + /// Assigns a request value to an XLSX cell. + /// + /// + /// Target worksheet cell. + /// + /// + /// Value to assign. A value clears the cell. + /// + private void SetCellValue(IXLCell cell, string value) + { + if (value == null) + { + cell.Clear(XLClearOptions.Contents); + return; + } + + cell.Value = value; + } + + /// + /// Builds a diagnostic description of an insert operation. + /// + /// + /// Name of the target worksheet. + /// + /// + /// Row number written by the operation. + /// + /// + /// Inserted values. + /// + /// + /// A human-readable insert diagnostic string. + /// + private string BuildInsertDiagnostic( + string worksheetName, + int rowNumber, + IEnumerable items) + { + string values = string.Join( + "; ", + items.Select( + item => + item.ColumnName + + "=" + + ToDiagnosticValue(item.Value))); + + return string.Format( + "INSERT [{0}] ROW {1}: {2}", + worksheetName, + rowNumber, + values); + } + + /// + /// Builds a diagnostic description of an update operation. + /// + /// + /// Name of the target worksheet. + /// + /// + /// Executed update item. + /// + /// + /// Number of rows updated by the operation. + /// + /// + /// A human-readable update diagnostic string. + /// + private string BuildUpdateDiagnostic( + string worksheetName, + UpdateWriteItem item, + int updatedRows) + { + return string.Format( + "UPDATE [{0}] SET {1}={2} WHERE {3}={4}; Rows={5}", + worksheetName, + item.SetParameterName, + ToDiagnosticValue(item.SetValue), + item.WhereParameterName, + ToDiagnosticValue(item.WhereValue), + updatedRows); + } + + /// + /// Converts a value to a diagnostic representation. + /// + /// + /// Value to represent. + /// + /// + /// The escaped diagnostic value. + /// + private string ToDiagnosticValue(string value) + { + if (value == null) + return "NULL"; + + return "'" + value.Replace("'", "''") + "'"; + } + + /// + /// Creates a successful diagnostic result. + /// + /// + /// Diagnostic message. + /// + /// + /// A successful writer diagnostic result. + /// + private WriterDiagnosticResult Ok(string message) + { + return new WriterDiagnosticResult + { + Success = true, + Message = message + }; + } + + /// + /// Creates a failed diagnostic result. + /// + /// + /// Diagnostic error message. + /// + /// + /// A failed writer diagnostic result. + /// + private WriterDiagnosticResult Fail(string message) + { + return new WriterDiagnosticResult + { + Success = false, + Message = message + }; + } + + /// + /// Resolves the worksheet name from the configured XLSX write template. + /// + /// + /// Template containing either a worksheet definition in the format + /// Sheet=WorksheetName or an SQL-like insert/update command. + /// + /// + /// The worksheet name resolved from the template. + /// + /// + /// Thrown when the template is empty or the worksheet name cannot be resolved. + /// + private string ParseWorksheetName(string template) + { + if (string.IsNullOrWhiteSpace(template)) + throw new InvalidOperationException( + "XLSX write template is empty."); + + string value = template.Trim(); + + const string sheetPrefix = "Sheet="; + + if (value.StartsWith( + sheetPrefix, + StringComparison.OrdinalIgnoreCase)) + { + return ValidateAndNormalizeWorksheetName( + value.Substring(sheetPrefix.Length)); + } + + const string insertPrefix = "INSERT INTO "; + + if (value.StartsWith( + insertPrefix, + StringComparison.OrdinalIgnoreCase)) + { + string remaining = value + .Substring(insertPrefix.Length) + .Trim(); + + int endIndex = remaining.IndexOfAny( + new[] { ' ', '(' }); + + string worksheetName = endIndex >= 0 + ? remaining.Substring(0, endIndex) + : remaining; + + return ValidateAndNormalizeWorksheetName( + worksheetName); + } + + const string updatePrefix = "UPDATE "; + + if (value.StartsWith( + updatePrefix, + StringComparison.OrdinalIgnoreCase)) + { + string remaining = value + .Substring(updatePrefix.Length) + .Trim(); + + int endIndex = remaining.IndexOfAny( + new[] { ' ', '(' }); + + string worksheetName = endIndex >= 0 + ? remaining.Substring(0, endIndex) + : remaining; + + return ValidateAndNormalizeWorksheetName( + worksheetName); + } + + throw new InvalidOperationException( + "XLSX worksheet name could not be resolved from template: " + + template); + } + + /// + /// Normalizes and validates an XLSX worksheet name. + /// + /// + /// Worksheet name to normalize and validate. + /// + /// + /// A valid worksheet name. + /// + /// + /// Thrown when the worksheet name is empty, too long, + /// or contains an invalid character. + /// + private string ValidateAndNormalizeWorksheetName( + string worksheetName) + { + string result = (worksheetName ?? string.Empty).Trim(); + + if (result.Length >= 2) + { + bool squareBrackets = + result[0] == '[' && + result[result.Length - 1] == ']'; + + bool singleQuotes = + result[0] == '\'' && + result[result.Length - 1] == '\''; + + bool doubleQuotes = + result[0] == '"' && + result[result.Length - 1] == '"'; + + if (squareBrackets || singleQuotes || doubleQuotes) + { + result = result.Substring( + 1, + result.Length - 2); + } + } + + result = result.Trim(); + + if (string.IsNullOrWhiteSpace(result)) + { + throw new InvalidOperationException( + "XLSX worksheet name is empty."); + } + + if (result.Length > 31) + { + throw new InvalidOperationException( + "XLSX worksheet name cannot contain more than 31 characters."); + } + + char[] invalidCharacters = + { + '\\', + '/', + '?', + '*', + '[', + ']', + ':' + }; + + if (result.IndexOfAny(invalidCharacters) >= 0) + { + throw new InvalidOperationException( + "XLSX worksheet name contains an invalid character: " + + result); + } + + return result; + } + + /// + /// Gets an existing worksheet or creates a new worksheet with the specified name. + /// + /// + /// Workbook containing the worksheet. + /// + /// + /// Name of the worksheet. + /// + /// + /// The existing or newly created worksheet. + /// + private IXLWorksheet GetOrCreateWorksheet( + XLWorkbook workbook, + string worksheetName) + { + if (workbook == null) + throw new ArgumentNullException(nameof(workbook)); + + IXLWorksheet worksheet; + + if (workbook.Worksheets.TryGetWorksheet( + worksheetName, + out worksheet)) + { + return worksheet; + } + + return workbook.Worksheets.Add(worksheetName); + } + } +} diff --git a/TBF/Rig/RegisterReaders/PulsesFromUniCB/RRProcParams.cs b/TBF/Rig/RegisterReaders/PulsesFromUniCB/RRProcParams.cs index 212f24411..179d81694 100644 --- a/TBF/Rig/RegisterReaders/PulsesFromUniCB/RRProcParams.cs +++ b/TBF/Rig/RegisterReaders/PulsesFromUniCB/RRProcParams.cs @@ -24,14 +24,14 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RRProcParams) })[0]; public override XmlSerializer GetSerializer() { return Serializer; } - public double PulsesPerLtr; /// [l^-1] - public string Units; /// [kg^-1]...MF + public double PulsesPerLtr; + public string Units; public int Filter; public override void InitializeAll() { PulsesPerLtr = 1.0; - Units = "---"; //...MF + Units = "---"; Filter = 0; } @@ -43,7 +43,7 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB Strings.Filter, }; - //...MF + private void RefreshParamNames(int i) { if (i == 0) { @@ -56,12 +56,12 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB public override string ParamName(int i) { - //if(i==0) RefreshParamNames(0);//...MF + //if(i==0) RefreshParamNames(0); return paramNames[i]; } public override int ParamsCount() { return paramNames.Length; } - public ICollection ParamValues(int ix) + /*public ICollection ParamValues(int ix) { var values = new List(); switch (ix) @@ -72,6 +72,33 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB default: return null; } + }*/ + + public ICollection ParamValues(int ix) + { + switch (ix) + { + case 1: + { + var values = new List + { + Unit.None.ToDescription() + }; + + for (Unit unit = (Unit)1; unit < Unit.Count; unit++) + { + if (Common.Units.IsQuantity(unit, Quantity.MultiFunctionalVariables)) + { + values.Add(unit.ToDescription()); + } + } + + return values; + } + + default: + return null; + } } public override string ToString(int i) @@ -127,7 +154,7 @@ namespace TBF.Rig.RegisterReaders.PulsesFromUniCB void CopyContentTo(RRProcParams prms) { prms.PulsesPerLtr = this.PulsesPerLtr; - prms.Units = this.Units; //...MF + prms.Units = this.Units; prms.Filter = this.Filter; } diff --git a/TBF/Rig/RegisterReaders/StandingStartStop/RRProcParams.cs b/TBF/Rig/RegisterReaders/StandingStartStop/RRProcParams.cs index b0c6ed40e..90b93ae10 100644 --- a/TBF/Rig/RegisterReaders/StandingStartStop/RRProcParams.cs +++ b/TBF/Rig/RegisterReaders/StandingStartStop/RRProcParams.cs @@ -24,23 +24,23 @@ namespace TBF.Rig.RegisterReaders.StandingStartStop public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RRProcParams) })[0]; public override XmlSerializer GetSerializer() { return Serializer; } - public double PulsesPerLtr; /// Target low limit of the flow increase or decrease - public string Units; /// [kg^-1]...MF + public double PulsesPerLtr; + public string Units; public override void InitializeAll() { PulsesPerLtr = 1.0; - Units = "---"; //...MF + Units = "---"; } string[] paramNames = new string[] { //Strings.PulsesPerLtr, - Strings.PulsesPerUnit,//...MF - Strings.Units,//...MF + Strings.PulsesPerUnit, + Strings.Units, }; - //...MF + private void RefreshParamNames(int i) { if (i == 0) @@ -54,7 +54,7 @@ namespace TBF.Rig.RegisterReaders.StandingStartStop public override string ParamName(int i) { return paramNames[i]; } public override int ParamsCount() { return paramNames.Length; } - public ICollection ParamValues(int ix) + /*marek mareciinopublic ICollection ParamValues(int ix) { var values = new List(); switch (ix) @@ -65,6 +65,33 @@ namespace TBF.Rig.RegisterReaders.StandingStartStop default: return null; } + }*/ + + public ICollection ParamValues(int ix) + { + switch (ix) + { + case 1: + { + var values = new List + { + Unit.None.ToDescription() + }; + + for (Unit unit = (Unit)1; unit < Unit.Count; unit++) + { + if (Common.Units.IsQuantity(unit, Quantity.MultiFunctionalVariables)) + { + values.Add(unit.ToDescription()); + } + } + + return values; + } + + default: + return null; + } } public override string ToString(int i) @@ -72,7 +99,7 @@ namespace TBF.Rig.RegisterReaders.StandingStartStop switch (i) { case 0: return PulsesPerLtr.ToString(); - case 1: return Units;//...MF + case 1: return Units; default: return string.Empty; } } @@ -113,7 +140,7 @@ namespace TBF.Rig.RegisterReaders.StandingStartStop void CopyContentTo(RRProcParams prms) { prms.PulsesPerLtr = this.PulsesPerLtr; - prms.Units = this.Units; //...MF + prms.Units = this.Units; } public IParamsProvider Clone() diff --git a/TBF/Rig/Sequences/MainSeq.cs b/TBF/Rig/Sequences/MainSeq.cs index ae6a22162..1ac66ca54 100644 --- a/TBF/Rig/Sequences/MainSeq.cs +++ b/TBF/Rig/Sequences/MainSeq.cs @@ -198,6 +198,7 @@ namespace TBF.Rig.Sequences IList e = new List(); Selection selection; string selectedTestName; + int selectedTestIndex = -1; Bridge.OnActivity(this, Strings.Starting_system); WaitForOkButton(); @@ -289,6 +290,7 @@ namespace TBF.Rig.Sequences : ((selection == Selection.Q2) ? "Q2" : ((selection == Selection.Q3) ? "Q3" : Program.MainWnd.BenchControlPanel.TestName)); + selectedTestIndex = Program.MainWnd.BenchControlPanel.TestIndex; /// /// Auto invocation actions /// @@ -792,6 +794,7 @@ namespace TBF.Rig.Sequences case Selection.Q3: selectedTestName = "Q3"; break; default: selectedTestName = Program.MainWnd.BenchControlPanel.TestName; + selectedTestIndex = Program.MainWnd.BenchControlPanel.TestIndex; break; } /// @@ -865,7 +868,7 @@ namespace TBF.Rig.Sequences { for (int i = 0; i < StateMachine.TestInstances.Length; i++) { - if (selectedTestName == StateMachine.TestInstances[i].Name) + if (selectedTestName == StateMachine.TestInstances[i].Name /*||*/&& selectedTestIndex == i) { selsctedTestIx = i; break; @@ -1184,7 +1187,7 @@ namespace TBF.Rig.Sequences /// for (int i = 0; i < StateMachine.TestInstances.Length; i++) { - if (selectedTestName == StateMachine.TestInstances[i].Name) + if (selectedTestName == StateMachine.TestInstances[i].Name || selectedTestIndex == i) { testIx = i; break; @@ -1532,45 +1535,13 @@ namespace TBF.Rig.Sequences goto error; } } - /*catch (Exception exc) + catch (Exception exc) { string msg = string.Format("Unable to update Batch.RsltsSent in local MySQL DB, BatchNr = {0}", ProcessData.BatchRslts.Batch.BatchNr); Bridge.OnError(this, msg); log.FatalFormat("{0}: {1}", msg, exc.Message); goto error; - }*/ - catch (Exception exc) - { - var batch = ProcessData.BatchRslts.Batch; - - // ⚠️ Skladanie detailného logu do jedného reťazca - var logBuilder = new StringBuilder(); - logBuilder.AppendLine("----------------- Unable to update Batch.RsltsSent in local MySQL DB, BatchNr = {0} ------------------"); - logBuilder.AppendLine("❌ Chyba pri UPDATE `batch` SET `RsltsSent` = '1'"); - logBuilder.AppendLine($"BatchNr = {batch.BatchNr}"); - logBuilder.AppendLine($"SQL príkaz: UPDATE `batch` SET `RsltsSent` = '1' WHERE `batch`.`BatchNr` = {batch.BatchNr};"); - logBuilder.AppendLine(); - logBuilder.AppendLine("💥 Výnimka:"); - logBuilder.AppendLine($" - Message: {exc.Message}"); - logBuilder.AppendLine($" - StackTrace: {exc.StackTrace}"); - logBuilder.AppendLine($" - InnerException: {(exc.InnerException != null ? exc.InnerException.Message : "null")}"); - logBuilder.AppendLine(); - logBuilder.AppendLine("📦 Batch obsah:"); - - // 💡 Dynamický výpis vlastností objektu Batch - var props = batch.GetType().GetProperties(); - foreach (var prop in props) - { - object value = prop.GetValue(batch, null); - logBuilder.AppendLine($" - {prop.Name}: {value}"); - } - - // ✍️ Uloženie do vlastného logu - LiveLogCache.Instance.AddLog(logBuilder.ToString()); - - Bridge.OnError(this, "Chyba pri aktualizácii výsledkov v MySQL."); - goto error; } } diff --git a/TBF/Rig/TestMethods/StandingStart/StandingStartSeq.cs b/TBF/Rig/TestMethods/StandingStart/StandingStartSeq.cs index 0ec158500..6f4636d3a 100644 --- a/TBF/Rig/TestMethods/StandingStart/StandingStartSeq.cs +++ b/TBF/Rig/TestMethods/StandingStart/StandingStartSeq.cs @@ -1,11 +1,12 @@ -/// +using Common; +using log4net; +/// /// Copyright (c) 2018-2022 Sensus Slovensko a.s. /// using System; using System.Collections.Generic; using System.IO; -using log4net; -using Common; +using System.Windows.Forms; using TBF.Boxes; using TBF.Resources; using TBF.Rig.GenericDevices; @@ -84,6 +85,8 @@ namespace TBF.Rig.TestMethods.StandingStart checkUiOp = new Operations.CheckUIOp(true); /// Runs in more then one state processDataLoggingOp = new TBF.Rig.Operations.ProcessDataLoggingOp(processDataLogger, this, heatMetersTestParams != null); + int delay; + if (cBrd is ControlBoard.Uni.UniCB) { int[] filters = new int[] { 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -120,8 +123,16 @@ namespace TBF.Rig.TestMethods.StandingStart int totalPulses = Convert.ToInt32(test.Volume / outPath.FlowMeter.LtrPerPulse); + log.InfoFormat( + "{0}({1}) : Test starting... (Repetition {2}, LastRepetition={3}, PumpPower={4})", + test.Method, + test.Name, + repetitionNr, + isLastRepetition, + test.PumpPower); + ///============================================================================================ - + /// Read pressure and temperature once before calling Bridge.OnTestSelected(...) State.Create(string.Format("{0}({1}) : Measuring process data", test.Method, test.Name)) .AddOperation(checkUiOp) @@ -373,6 +384,18 @@ namespace TBF.Rig.TestMethods.StandingStart /// Temperature is withing required range at this point /// + /// + /// reading pump power for dynamic using as default test.PumpPower for next test instances in cycle + /// + if (inPath.Pump is IPump) + { + test.PumpPower = (float)(inPath.Pump as IPump).Power; + + log.InfoFormat( + "PumpPower initialized from operator to '{0}'%", + test.PumpPower); + } + //----------------------------------------------------------------- Bridge.OnActivity(this, Strings.Stopping_flow_for_the_fixed_start); //----------------------------------------------------------------- @@ -421,10 +444,40 @@ namespace TBF.Rig.TestMethods.StandingStart LogProcessDataTestInfo(processDataLogger, test.Procedure.Name, test.Name); int startPulses = 0; - /// - /// Enter watermeter begin states here - /// - GenericDevices.IHasWMStatesForm dataEntryCmpnt = TbfComponents.FindComponent(StateMachine.Procedure.DataEntry) as GenericDevices.IHasWMStatesForm; + ///...MF + ///----------------- + delay = test.TimeFlow2Mass; + + if (delay > 0) + { + State.Create(string.Format("{0}({1}) : Delay for meters stabilization ", test.Method, test.Name, delay)) + .AddOperation(checkUiOp) + .AddOperations(readTempPressOps) + .AddOperation(testInProgress) + .AddOperation(new Operations.TimerOp(delay)) //...develop: step 5 + .EnterState(); + do + { + e = StateMachine.WaitRunDevsRunOps(); + if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } + if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } + + /// Show remaining time + if ((delay = Math.Max(delay, 0)) > 60) + Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", "Delay", delay / 60, "min", delay % 60, Strings.sec)); + else + Bridge.OnActivity(this, string.Format("{0} ... {1} s", "Delay", delay)); + + if (delay > 0) + delay--; + } + while (!e.Contains(Event.TimerExpired)); + } + + /// + /// Enter watermeter begin states here + /// + GenericDevices.IHasWMStatesForm dataEntryCmpnt = TbfComponents.FindComponent(StateMachine.Procedure.DataEntry) as GenericDevices.IHasWMStatesForm; if (dataEntryCmpnt != null) { @@ -668,6 +721,35 @@ namespace TBF.Rig.TestMethods.StandingStart double volumeCTV = constMasterCorr * Convert.ToDouble(endPulses - startPulses); double refEnergy = Energy.Sum * volumeCTV / VolumeForEnergy.Sum; /// [J]=[J]*[l]/[l] + ///...MF + ///----------------- + delay = test.TimeFlow2Mass; + + if (delay > 0) + { + State.Create(string.Format("{0}({1}) : Delay for meters stabilization ", test.Method, test.Name, delay)) + .AddOperation(checkUiOp) + .AddOperations(readTempPressOps) + .AddOperation(testInProgress) + .AddOperation(new Operations.TimerOp(delay)) //...develop: step 5 + .EnterState(); + do + { + e = StateMachine.WaitRunDevsRunOps(); + if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } + if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } + + /// Show remaining time + if ((delay = Math.Max(delay, 0)) > 60) + Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", "Delay", delay / 60, "min", delay % 60, Strings.sec)); + else + Bridge.OnActivity(this, string.Format("{0} ... {1} s", "Delay", delay)); + + if (delay > 0) + delay--; + } + while (!e.Contains(Event.TimerExpired)); + } /// /// Enter watermeter end states here diff --git a/TBF/Rig/TestMethods/StandingStartMassCollection/StandingStartMassCollectionSeq.cs b/TBF/Rig/TestMethods/StandingStartMassCollection/StandingStartMassCollectionSeq.cs index 5e0ece144..8921a93e6 100644 --- a/TBF/Rig/TestMethods/StandingStartMassCollection/StandingStartMassCollectionSeq.cs +++ b/TBF/Rig/TestMethods/StandingStartMassCollection/StandingStartMassCollectionSeq.cs @@ -488,31 +488,26 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection ///...MF ///----------------- - delay = 5; - //if (test.TimePump2StartV > 0) - //{ - State.Create(string.Format("{0}({1}) : Delay 5s", test.Method, test.Name)) - .AddOperation(checkUiOp) - .AddOperation(new Operations.TimerOp(delay)) //...develop: step 3 - .EnterState(); - do + delay = test.TimeFlow2Mass; + + if (delay > 0) { - e = StateMachine.WaitRunDevsRunOps(); - if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } - if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } + State.Create(string.Format("{0}({1}) : Delay for meters stabilization ", test.Method, test.Name, delay)) + .AddOperation(checkUiOp) + .AddOperations(readTempPressOps) + .AddOperation(new Operations.TimerOp(delay)) //...develop: step 5 + .EnterState(); + do + { + e = StateMachine.WaitRunDevsRunOps(); + if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } + if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } - /// Show remaining time - if ((delay = Math.Max(delay, 0)) > 60) - Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", "Delay", delay / 60, "min", delay % 60, Strings.sec)); - else - Bridge.OnActivity(this, string.Format("{0} ... {1} s", "Delay", delay)); - - if (delay > 0) - delay--; - } + /// Show remaining time + Bridge.OnDelayActivity(this, "Delayed activity: Start the standing start/stop test (diverter switch...)", ref delay); + } while (!e.Contains(Event.TimerExpired)); - //} - ///----------------- + } State.Create(string.Format("{0}({1}) : Start the standing start/stop test", test.Method, test.Name)) .AddOperation(checkUiOp) @@ -526,41 +521,12 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } } - ///...MF - ///----------------- - delay = test.TimeFlow2Mass; - - if (delay > 0) - { - State.Create(string.Format("{0}({1}) : Delay for meters stabilization ", test.Method, test.Name, delay)) - .AddOperation(checkUiOp) - .AddOperations(readTempPressOps) - .AddOperation(testInProgress) - .AddOperation(new Operations.TimerOp(delay)) //...develop: step 5 - .EnterState(); - do - { - e = StateMachine.WaitRunDevsRunOps(); - if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } - if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } - - /// Show remaining time - if ((delay = Math.Max(delay, 0)) > 60) - Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", "Delay", delay / 60, "min", delay % 60, Strings.sec)); - else - Bridge.OnActivity(this, string.Format("{0} ... {1} s", "Delay", delay)); - - if(delay>0) - delay--; - } - while (!e.Contains(Event.TimerExpired)); - } int time = StateMachine.Time; double currentFlow = RefFlow.Val; //------------------------------------------------ - Bridge.OnActivity(this, Strings.Measuring_the_weight); + //Bridge.OnActivity(this, Strings.Measuring_the_weight); //------------------------------------------------ LogProcessDataTestInfo(processDataLogger, test.Procedure.Name, test.Name); @@ -574,6 +540,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection GenericDevices.IHasWMStatesForm dataEntryCmpnt = TbfComponents.FindComponent(StateMachine.Procedure.DataEntry) as GenericDevices.IHasWMStatesForm; IOperation readStartMassOp = scale.ReadStableMassOp(ref StartMass, test.TimeFlow2Mass, test.MassMethod, test.MassRepeats, test.MassSpread); IOperation readStopMassOp = scale.ReadStableMassOp(ref StartMass, test.TimeStop2Mass, test.MassMethod, test.MassRepeats, test.MassSpread); + IOperation readEndMassOp = scale.ReadStableMassOp(ref EndMass, test.TimeStop2Mass, test.MassMethod, test.MassRepeats, test.MassSpread); if (dataEntryCmpnt != null) { @@ -657,13 +624,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } /// Show remaining time - if ((delay = Math.Max(delay, 0)) > 60) - Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", "Delay", delay / 60, "min", delay % 60, Strings.sec)); - else - Bridge.OnActivity(this, string.Format("{0} ... {1} s", "Delay", delay)); - - if (delay > 0) - delay--; + Bridge.OnDelayActivity(this, "Delayed activity: Measuring the start mass", ref delay); } while (!e.Contains(Event.ModelessFormClosed) || !e.Contains(Event.ScaleDone)); long readEndTime = StateMachine.Time; @@ -787,6 +748,9 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection retVal = Event.RecoverableError; goto stopTest; } + + /// Show remaining time + Bridge.OnDelayActivity(this, "Delayed activity: Measuring the start mass", ref delay); } while (!e.Contains(Event.ScaleDone) && !e.Contains(Event.Next)); } @@ -826,15 +790,6 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } - /// Show remaining time - if ((remainingTime = Math.Max(estimtdEndTime - StateMachine.Time, 0)) > 60) - Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", Strings.Test_in_progress, remainingTime / 60, "min", remainingTime % 60, Strings.sec)); - else - Bridge.OnActivity(this, string.Format("{0} ... {1} s", Strings.Test_in_progress, remainingTime)); - - if (delay > 0) - delay--; - /// Update statistics RefFrequency.Val = cBrd.RefFrequency; RefFlow.Val = outPath.FlowMeter.ReadFlow(); @@ -864,6 +819,12 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection #endregion + /// Show remaining time + if ((remainingTime = Math.Max(estimtdEndTime - StateMachine.Time, 0)) > 60) + Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", Strings.Test_in_progress, remainingTime / 60, "min", remainingTime % 60, Strings.sec)); + else + Bridge.OnActivity(this, string.Format("{0} ... {1} s", Strings.Test_in_progress, remainingTime)); + Bridge.OnTestProgress(this, new TestProgressEventArgs(test, repetitionNr, Progress.Test)); } while ((cBrd.DebugLevel==DebugMode.Simulate && !e.Contains(Event.FlowReached)) || @@ -891,7 +852,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection log.WarnFormat("Start valve switch time on test end = {0} ms", cBrd.ValveOpenCloseTime); - ///...MF + /*///...MF ///----------------- delay = test.TimeStop2Mass; @@ -919,7 +880,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection delay--; } while (!e.Contains(Event.TimerExpired)); - } + }*/ if (heatMetersPath == null) @@ -928,17 +889,17 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection LogProcessDataHeaderHeatMeters(processDataLogger, "End mass"); //------------------------------------------------ - Bridge.OnActivity(this, Strings.Measuring_the_weight); + //Bridge.OnActivity(this, Strings.Measuring_the_weight); //------------------------------------------------ - /* + delay = test.TimeStop2Mass; State.Create(string.Format("{0}({1}) : Measuring the end mass after residual flow ", test.Method, test.Name, delay)) .AddOperation(checkUiOp) .AddOperations(readTempPressOps) - //.AddOperation(testInProgress)...nevhodne prepina diverter + .AddOperation(testInProgress) .AddOperation(scale.ReadStableMassOp(ref EndMass, delay, test.MassMethod, test.MassRepeats, test.MassSpread))//...develop: step 13 - .AddOperation(new Operations.TimerOp(StableMassMsrmntTimeoutSec)) + //.AddOperation(new Operations.TimerOp(StableMassMsrmntTimeoutSec)) .AddOperation(processDataLoggingOp) .EnterState(); do { @@ -953,15 +914,9 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection } /// Show remaining time - if ((delay = Math.Max(delay, 0)) > 60) - Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", "Delay", delay / 60, "min", delay % 60, Strings.sec)); - else - Bridge.OnActivity(this, string.Format("{0} ... {1} s", "Delay", delay)); - - if (delay > 0) - delay--; + Bridge.OnDelayActivity(this, "Delayed activity: Measuring the end mass", ref delay); } - while (!e.Contains(Event.ScaleDone) && !e.Contains(Event.Next));*/ + while (!e.Contains(Event.ScaleDone) && !e.Contains(Event.Next)); /// tMass2 = StateMachine.Time; @@ -1048,22 +1003,24 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection state.AddOperation((dataEntryCmpnt as GenericDevices.IHasHeatMtrStatesForm). ShowTestEndFormOp(sensPath.RegisterReaders, volumeCTV, test.ErrLimLo + test.Uncertainty, test.ErrLimHi - test.Uncertainty, - refEnergy, test.ErrLimLo + test.Uncertainty, test.ErrLimHi - test.Uncertainty)); + refEnergy, test.ErrLimLo + test.Uncertainty, test.ErrLimHi - test.Uncertainty)); //...develop: half of step 14 } else { state.AddOperation(dataEntryCmpnt.ShowTestEndFormOp(sensPath.RegisterReaders, - volumeCTV, test.ErrLimLo + test.Uncertainty, test.ErrLimHi - test.Uncertainty)); + volumeCTV, test.ErrLimLo + test.Uncertainty, test.ErrLimHi - test.Uncertainty)); //...develop: half of step 14 } + state.AddOperation(checkUiOp) .AddOperations(readTempPressOps) .AddOperation(testInProgress) + //.AddOperation(readEndMassOp) //...develop: half of step 14 + step 15 .EnterState(); do { e = StateMachine.WaitRunDevsRunOps(); if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } } - while (!e.Contains(Event.ModelessFormClosed)); + while (!e.Contains(Event.ModelessFormClosed)) ; if (heatMetersTestParams != null) @@ -1212,6 +1169,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection tstRslt.ConstMasterRaw = 1; /// Uncorrected master flowmeter coefficient tstRslt.ConstMasterCorr = 1; /// Corrected master pulses per liter tstRslt.ConstMaster = 1; + tstRslt.MassConstMaster = 1; } tstRslt.ErrorMaster = Formulas.ErrorFromVolumes(tstRslt.VolumeMaster, tstRslt.VolumeCTV); tstRslt.MassErrorMaster = Formulas.ErrorFromVolumes(tstRslt.VolumeMaster, tstRslt.MassCTV); diff --git a/TBF/Rig/TestMethods/StandingStartMassCollectionAdvance/StandingStartMassCollectionAdvanceSeq.cs b/TBF/Rig/TestMethods/StandingStartMassCollectionAdvance/StandingStartMassCollectionAdvanceSeq.cs index 0abbfa3e5..dbddf799b 100644 --- a/TBF/Rig/TestMethods/StandingStartMassCollectionAdvance/StandingStartMassCollectionAdvanceSeq.cs +++ b/TBF/Rig/TestMethods/StandingStartMassCollectionAdvance/StandingStartMassCollectionAdvanceSeq.cs @@ -1,14 +1,16 @@ -/// +using Common; +using Config.Entities; +using FluentNHibernate.Conventions; +using log4net; +/// /// Copyright (c) 2013-2021 Sensus Slovensko a.s. /// using System; using System.Collections.Generic; using System.IO; using System.Threading; -using log4net; -using Common; -using Config.Entities; -using FluentNHibernate.Conventions; +using System.Windows.Forms; +using System.Xml.Serialization; using TBF.Boxes; using TBF.Resources; using TBF.Rig.Generic; @@ -16,6 +18,7 @@ using TBF.Rig.GenericDevices; using TBF.Rig.Network.RestAPI; using TBF.Rig.Operations; using TBF.Rig.Sequences; +using TBF.Rig.Various.ErrorFlags; using TBF.UiBridge; namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance @@ -115,6 +118,8 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance checkUiOp = new Operations.CheckUIOp(true); /// Runs in more then one state processDataLoggingOp = new TBF.Rig.Operations.ProcessDataLoggingOp(processDataLogger, this, heatMetersTestParams != null); + int delay; + if (cBrd is ControlBoard.Uni.UniCB) { int[] filters = new int[] { 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -332,8 +337,8 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance State.Create(string.Format("{0}({1}) : Setting the flow", test.Method, test.Name)) .AddOperation(checkUiOp) .AddOperations(readTempPressOps) - .AddOperation(cBrd.SetFlowOp(test.QfromM3ph(), test.QtoM3ph(), RefFlow, FlowSettingTimeoutSec)) - .AddOperation(heatMetersPromptOp) + .AddOperation(cBrd.SetFlowOp(test.QfromM3ph(), test.QtoM3ph(), RefFlow, FlowSettingTimeoutSec))//...develop: step 1 + .AddOperation(heatMetersPromptOp) .EnterState(); do { e = StateMachine.WaitRunDevsRunOps(); @@ -454,8 +459,8 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance State.Create(string.Format("{0}({1}) : Close the start/stop valve before measuring the start mass", test.Method, test.Name)) .AddOperation(checkUiOp) .AddOperations(readTempPressOps) - .AddOperation(cBrd.CloseStartValveOp()) - .EnterState(); + .AddOperation(cBrd.CloseStartValveOp())//...develop: step 2 + .EnterState(); do { e = StateMachine.WaitRunDevsRunOps(); if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } @@ -463,10 +468,33 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance } while (!e.Contains(Event.ValvesSet)); + ///...MF + ///----------------- + delay = test.TimeFlow2Mass; + + if (delay > 0) + { + State.Create(string.Format("{0}({1}) : Delay for meters stabilization ", test.Method, test.Name, delay)) + .AddOperation(checkUiOp) + .AddOperations(readTempPressOps) + .AddOperation(new Operations.TimerOp(delay)) //...develop: step 5 + .EnterState(); + do + { + e = StateMachine.WaitRunDevsRunOps(); + if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } + if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } + + /// Show remaining time + Bridge.OnDelayActivity(this, "Delayed activity: Start the standing start/stop test (diverter switch...)", ref delay); + } + while (!e.Contains(Event.TimerExpired)); + } + State.Create(string.Format("{0}({1}) : Start the standing start/stop test", test.Method, test.Name)) .AddOperation(checkUiOp) .AddOperations(readTempPressOps) - .AddOperation(testInProgress) + .AddOperation(testInProgress)//...develop: step 4 --> diverter switch to the mass .EnterState(); for (int i = 0; i < 3; i++) { @@ -479,7 +507,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance double currentFlow = RefFlow.Val; //------------------------------------------------ - Bridge.OnActivity(this, Strings.Measuring_the_weight); + //Bridge.OnActivity(this, Strings.Measuring_the_weight); //------------------------------------------------ LogProcessDataTestInfo(processDataLogger, test.Procedure.Name, test.Name); @@ -492,6 +520,8 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance /// GenericDevices.IHasWMStatesForm dataEntryCmpnt = TbfComponents.FindComponent(StateMachine.Procedure.DataEntry) as GenericDevices.IHasWMStatesForm; IOperation readStartMassOp = scale.ReadStableMassOp(ref StartMass, test.TimeFlow2Mass, test.MassMethod, test.MassRepeats, test.MassSpread); + IOperation readStopMassOp = scale.ReadStableMassOp(ref StartMass, test.TimeStop2Mass, test.MassMethod, test.MassRepeats, test.MassSpread); + IOperation readEndMassOp = scale.ReadStableMassOp(ref EndMass, test.TimeStop2Mass, test.MassMethod, test.MassRepeats, test.MassSpread); if (dataEntryCmpnt != null) { @@ -510,7 +540,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance State state2 = State.Create(string.Format("{0}({1}) : Grab images", test.Method, test.Name)) .AddOperation(checkUiOp) .AddOperations(readTempPressOps) - .AddOperation(readStartMassOp) + //.AddOperation(readStartMassOp) .AddOperation(testInProgress) .AddOperation(processDataLoggingOp); @@ -562,20 +592,24 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance string.Format("{0}({1}) : Grabbing images - valve close", test.Method, test.Name)); } /////// - + delay = test.TimeStop2Mass; Bridge.OnActivity(this, Strings.Grabbing_images);//Strings.Enter_water_meter_data); - State.Create(string.Format("{0}({1}) : Enter start states of water meters", test.Method, test.Name)) + State.Create(string.Format("{0}({1}) : Enter start states of water meters and Measuring the start mass after residual flow ", test.Method, test.Name, test.TimeStop2Mass)) .AddOperation(checkUiOp) .AddOperations(readTempPressOps) - .AddOperation(readStartMassOp) + //.AddOperation(readStartMassOp) .AddOperation(testInProgress) - //.AddOperation((dataEntryCmpnt as GenericDevices.IHasWMStatesForm).ShowTestStartFormOp(sensPath.RegisterReaders)) + //.AddOperation((dataEntryCmpnt as GenericDevices.IHasWMStatesForm).ShowTestStartFormOp(sensPath.RegisterReaders))//...develop: half of step 6 + .AddOperation(readStopMassOp) //...develop: half of step 6 .AddOperation(processDataLoggingOp) .EnterState(); do { e = StateMachine.WaitRunDevsRunOps(); if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } + + /// Show remaining time + Bridge.OnDelayActivity(this, "Delayed activity: Measuring the start mass", ref delay); } while (!e.Contains(Event.ScaleDone/*Event.ModelessFormClosed*/)); @@ -654,10 +688,31 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance } } } + + State.Create(string.Format("{0}({1}) : Measure the start mass", test.Method, test.Name)) + .AddOperation(checkUiOp) + .AddOperations(readTempPressOps) + .AddOperation(testInProgress)//...nevhodne prepina diverter + .AddOperation(scale.ReadStableMassOp(ref StartMass, 0, test.MassMethod, test.MassRepeats, test.MassSpread))//...develop: step 8 + .AddOperation(processDataLoggingOp) + .EnterState(); + do + { + e = StateMachine.WaitRunDevsRunOps(); + if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } + if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } + if (e.Contains(Event.ScaleTimeout)) + { + Bridge.OnError(this, Strings.Mass_measurement_timeout); + retVal = Event.RecoverableError; + goto stopTest; + } + } + while (!e.Contains(Event.ScaleDone) && !e.Contains(Event.Next)); } else { - State.Create(string.Format("{0}({1}) : Measure the start mass", test.Method, test.Name)) + /*State.Create(string.Format("{0}({1}) : Measure the start mass", test.Method, test.Name)) .AddOperation(checkUiOp) .AddOperations(readTempPressOps) .AddOperation(testInProgress) @@ -675,6 +730,30 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance goto stopTest; } } + while (!e.Contains(Event.ScaleDone) && !e.Contains(Event.Next));*/ + State.Create(string.Format("{0}({1}) : Measure the start mass", test.Method, test.Name)) + .AddOperation(checkUiOp) + .AddOperations(readTempPressOps) + .AddOperation(testInProgress)//...nevhodne prepina diverter + //.AddOperation(readStartMassOp) + .AddOperation(scale.ReadStableMassOp(ref StartMass, test.TimeFlow2Mass, test.MassMethod, test.MassRepeats, test.MassSpread)) + .AddOperation(processDataLoggingOp) + .EnterState(); + do + { + e = StateMachine.WaitRunDevsRunOps(); + if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } + if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } + if (e.Contains(Event.ScaleTimeout)) + { + Bridge.OnError(this, Strings.Mass_measurement_timeout); + retVal = Event.RecoverableError; + goto stopTest; + } + + /// Show remaining time + Bridge.OnDelayActivity(this, "Delayed activity: Measuring the start mass", ref delay); + } while (!e.Contains(Event.ScaleDone) && !e.Contains(Event.Next)); } /// @@ -702,10 +781,10 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance State.Create(string.Format("{0}({1}) : Start the test, open the start/stop valve", test.Method, test.Name)) .AddOperation(checkUiOp) .AddOperations(readTempPressOps) - .AddOperation(cBrd.OpenStartValveOp(timeStampStart, startSwitchTime)) + .AddOperation(cBrd.OpenStartValveOp(timeStampStart, startSwitchTime)) //...develop: step 9 .AddOperation(testInProgress) .AddOperation(controlFlowOp) - .AddOperation(processDataLoggingOp) + .AddOperation(processDataLoggingOp)//...develop: step 10, step 11 .EnterState(); do { e = StateMachine.WaitRunDevsRunOps(); @@ -713,12 +792,6 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } - /// Show remaining time - if ((remainingTime = Math.Max(estimtdEndTime - StateMachine.Time, 0)) > 60) - Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", Strings.Test_in_progress, remainingTime / 60, "min", remainingTime % 60, Strings.sec)); - else - Bridge.OnActivity(this, string.Format("{0} ... {1} s", Strings.Test_in_progress, remainingTime)); - /// Update statistics RefFrequency.Val = cBrd.RefFrequency; RefFlow.Val = outPath.FlowMeter.ReadFlow(); @@ -748,6 +821,12 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance #endregion + /// Show remaining time + if ((remainingTime = Math.Max(estimtdEndTime - StateMachine.Time, 0)) > 60) + Bridge.OnActivity(this, string.Format("{0} ... {1} {2} {3} {4}", Strings.Test_in_progress, remainingTime / 60, "min", remainingTime % 60, Strings.sec)); + else + Bridge.OnActivity(this, string.Format("{0} ... {1} s", Strings.Test_in_progress, remainingTime)); + Bridge.OnTestProgress(this, new TestProgressEventArgs(test, repetitionNr, Progress.Test)); } while ((cBrd.DebugLevel==DebugMode.Simulate && !e.Contains(Event.FlowReached)) || @@ -763,7 +842,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance .AddOperation(checkUiOp) .AddOperations(readTempPressOps) .AddOperation(testInProgress) - .AddOperation(cBrd.CloseStartValveOp(timeStampEnd, stopSwitchTime)) + .AddOperation(cBrd.CloseStartValveOp(timeStampEnd, stopSwitchTime))//...develop: step 12 .AddOperation(processDataLoggingOp) .EnterState(); do { @@ -780,14 +859,17 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance LogProcessDataHeaderHeatMeters(processDataLogger, "End mass"); //------------------------------------------------ - Bridge.OnActivity(this, Strings.Measuring_the_weight); + //Bridge.OnActivity(this, Strings.Measuring_the_weight); //------------------------------------------------ - State.Create(string.Format("{0}({1}) : Measuring the end mass", test.Method, test.Name)) + + delay = test.TimeStop2Mass; + + State.Create(string.Format("{0}({1}) : Measuring the end mass after residual flow ", test.Method, test.Name, delay)) .AddOperation(checkUiOp) .AddOperations(readTempPressOps) .AddOperation(testInProgress) .AddOperation(scale.ReadStableMassOp(ref EndMass, test.TimeStop2Mass, test.MassMethod, test.MassRepeats, test.MassSpread)) - .AddOperation(new Operations.TimerOp(StableMassMsrmntTimeoutSec)) + //.AddOperation(new Operations.TimerOp(StableMassMsrmntTimeoutSec)) .AddOperation(processDataLoggingOp) .EnterState(); do { @@ -800,26 +882,14 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance retVal = Event.RecoverableError; goto stopTest; } + + /// Show remaining time + Bridge.OnDelayActivity(this, "Delayed activity: Measuring the end mass", ref delay); } while (!e.Contains(Event.ScaleDone) && !e.Contains(Event.Next)); /// tMass2 = StateMachine.Time; - if (test.DoDrainingAfter) - { - State.Create(string.Format("{0}({1}) : Open the drain valve", test.Method, test.Name)) - .AddOperation(checkUiOp) - .AddOperation(cBrd.SetValvesOp(scale.DrainValve, null)) - .EnterState(); - do - { - e = StateMachine.WaitRunDevsRunOps(); - if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } - } - while (e.Contains(Event.ValvesBusy)); - } - - double massStart = MeasurementCorrection.CorrectedValue(StartMass.Val, scale.Corrections); double massEnd = MeasurementCorrection.CorrectedValue(EndMass.Val, scale.Corrections); double densityOut = Formulas.WaterDensityFromTempPress((TempUpStat.Average + TempDownStat.Average) / 2, @@ -827,7 +897,8 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance double buoyancy = Formulas.Buoyancy(); double massOfEvaporatedWater = (double)(tMass2 - tMass1) * outPath.Scale.EvaporationRate(TempDivStat.Average); double volumeCTV = 1000.0 * buoyancy * (massEnd - massStart + massOfEvaporatedWater) / densityOut; - if (debugLevel == Common.DebugMode.Simulate) volumeCTV = test.Volume; + double massCTV = buoyancy * (massEnd - massStart + massOfEvaporatedWater); + if (debugLevel == Common.DebugMode.Simulate) volumeCTV = test.Volume; double refEnergy = Energy.Sum * volumeCTV / VolumeForEnergy.Sum; /// [J]=[J]*[l]/[l] @@ -1000,6 +1071,20 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance } } + if (test.DoDrainingAfter) + { + State.Create(string.Format("{0}({1}) : Open the drain valve", test.Method, test.Name)) + .AddOperation(checkUiOp) + .AddOperation(cBrd.SetValvesOp(scale.DrainValve, null)) + .EnterState(); + do + { + e = StateMachine.WaitRunDevsRunOps(); + if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } + } + while (e.Contains(Event.ValvesBusy)); + } + //------------------------------------------------ Bridge.OnActivity(this, Strings.Test_completed); //------------------------------------------------ @@ -1037,6 +1122,8 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance /// Main results tstRslt.VolumeCTV = volumeCTV; /// [l] 1000.0f is because density is in [kg/m3] tstRslt.Flow = 3.6 * volumeCTV / tstRslt.TestTime; /// [m3/h] + tstRslt.MassCTV = massCTV; /// [kg] 1000.0f is because density is in [kg/m3] + tstRslt.MassFlow = 3.6 * massCTV / tstRslt.TestTime; /// [kg/h] if (cBrd is ControlBoard.Uni.UniCB) { @@ -1045,6 +1132,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance tstRslt.ConstMasterCorr = outPath.FlowMeter.LtrPerPulseCorrected(tstRslt.Flow, tstRslt.TempDownMean); tstRslt.VolumeMaster = tstRslt.ConstMasterRaw * tstRslt.PulsesMaster; /// [l] volume from the master flow meter tstRslt.ConstMaster = (tstRslt.VolumeMaster != 0) ? (tstRslt.ConstMasterRaw * tstRslt.VolumeCTV / tstRslt.VolumeMaster) : tstRslt.ConstMasterCorr; + tstRslt.MassConstMaster = (tstRslt.PulsesMaster != 0) ? (tstRslt.MassCTV / tstRslt.PulsesMaster) : tstRslt.ConstMasterCorr; } else { @@ -1204,18 +1292,74 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollectionAdvance if (meterRslt != null && regReader != null) { meterRslt.RegReaderType = (int)regReader.RegisterReaderType; + ComponentProcedure procParamsEntity = test.Procedure.GetProcedureParamsEntity(regReader.Name); + + try + { + if (regReader.RegisterReaderType == RegisterReaderType.Pulses) + { + XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TBF.Rig.RegisterReaders.PulsesFromUniCB.RRProcParams) })[0]; + TBF.Rig.RegisterReaders.PulsesFromUniCB.RRProcParams tmp = Serializer.Deserialize(new StringReader(procParamsEntity.Parameters.ToString())) as TBF.Rig.RegisterReaders.PulsesFromUniCB.RRProcParams; + regReader.PulsesPerLtr = tmp.PulsesPerLtr; + regReader.QuantityUnits = tmp.Units; + } + else if (regReader.RegisterReaderType == RegisterReaderType.Manual) + { + XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TBF.Rig.RegisterReaders.StandingStartStop.RRProcParams) })[0]; + TBF.Rig.RegisterReaders.StandingStartStop.RRProcParams tmp = Serializer.Deserialize(new StringReader(procParamsEntity.Parameters.ToString())) as TBF.Rig.RegisterReaders.StandingStartStop.RRProcParams; + regReader.PulsesPerLtr = tmp.PulsesPerLtr; + regReader.QuantityUnits = tmp.Units; + } + else + { + //MessageBox.Show("Cannot create or initialize a printer", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + } + } + catch (Exception ex) + { + log.ErrorFormat(string.Format("Error during RegisterReader parameters deserialization. regReader.Name='{0}', regReader.ClassName='{1}', Exception: {2}", + regReader.Name, + regReader.ClassName, + ex)); + } + meterRslt.PulsesPerLiter = regReader.PulsesPerLtr; - meterRslt.VolumeStart = 0.0d;//regReader.BeginWMState; - meterRslt.VolumeEnd = 0.0d;//regReader.EndWMState; - meterRslt.VolumeMeter = 0.0d;//Math.Abs(meterRslt.VolumeEnd - meterRslt.VolumeStart); + meterRslt.VolumeStart = regReader.BeginWMState;//0.0d;//regReader.BeginWMState; + meterRslt.VolumeEnd = regReader.EndWMState;//0.0d;//regReader.EndWMState; + meterRslt.VolumeMeter = Math.Abs(meterRslt.VolumeEnd - meterRslt.VolumeStart);//0.0d;//Math.Abs(meterRslt.VolumeEnd - meterRslt.VolumeStart); + meterRslt.MassMeter = Math.Abs(meterRslt.VolumeEnd - meterRslt.VolumeStart); meterRslt.VolumeRef = tstRslt.VolumeCTV; /// liter + meterRslt.MassRef = tstRslt.MassCTV; /// kg meterRslt.PulsesMeter = meterRslt.VolumeMeter; meterRslt.PulsesMaster = tstRslt.PulsesMaster; meterRslt.TestTime = tstRslt.TestTime; - meterRslt.Error = 100.0d;//Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef); - meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) + //meterRslt.Error = 100.0d;//Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef); + double Error = 0; + if (meterRslt.GetQuantityFromUnits() == "Mass") + Error = Formulas.ErrorFromVolumes(meterRslt.MassMeter, meterRslt.MassRef); + else + Error = Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef); + + meterRslt.Error = Error; + /*meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0); + && (tstRslt.ErrorFlags == 0);*/ + var ErrLimLo_Volume = test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime); + var ErrLimHi_Volume = test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime); + var ErrLimLo_Mass = test.GetErrLimLo(tstRslt.MassCTV, tstRslt.TestTime); + var ErrLimHi_Mass = test.GetErrLimHi(tstRslt.MassCTV, tstRslt.TestTime); + + bool Passed; + if (meterRslt.GetQuantityFromUnits() == "Mass") + Passed = (meterRslt.Error >= ErrLimLo_Volume + test.Uncertainty) && + (meterRslt.Error <= ErrLimHi_Volume - test.Uncertainty) && + (tstRslt.ErrorFlags == 0); + else + Passed = (meterRslt.Error >= ErrLimLo_Mass + test.Uncertainty) && + (meterRslt.Error <= ErrLimHi_Mass - test.Uncertainty) && + (tstRslt.ErrorFlags == 0); + + meterRslt.Passed = Passed; meterRslt.TestDone = false; tstRslt.TestDone = false; tstRslt.TestMeasured = true; diff --git a/TBF/TBF.csproj b/TBF/TBF.csproj index 0063cff64..46a89ce96 100644 --- a/TBF/TBF.csproj +++ b/TBF/TBF.csproj @@ -51,7 +51,7 @@ pdbonly true bin\Release\ - TRACE;CAMERA;LANG_PL;IPERL; + TRACE;CAMERA;IPERL; prompt 4 AnyCPU @@ -108,6 +108,21 @@ ..\packages\Castle.Core.5.1.1\lib\net462\Castle.Core.dll + + ..\packages\ClosedXML.0.105.0\lib\netstandard2.0\ClosedXML.dll + + + ..\packages\ClosedXML.Parser.2.0.0\lib\netstandard2.0\ClosedXML.Parser.dll + + + ..\packages\DocumentFormat.OpenXml.3.1.1\lib\net46\DocumentFormat.OpenXml.dll + + + ..\packages\DocumentFormat.OpenXml.Framework.3.1.1\lib\net46\DocumentFormat.OpenXml.Framework.dll + + + ..\packages\ExcelNumberFormat.1.1.0\lib\net20\ExcelNumberFormat.dll + ..\packages\FluentNHibernate.2.0.3.0\lib\net40\FluentNHibernate.dll @@ -120,6 +135,9 @@ ..\packages\Common\Logic.ProductionToProductMapper.dll + + ..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\packages\MySql.Data.6.6.5\lib\net40\MySql.Data.dll @@ -141,10 +159,19 @@ ..\packages\Oracle.ManagedDataAccess.19.11.0\lib\net40\Oracle.ManagedDataAccess.dll True + + ..\packages\RBush.Signed.4.0.0\lib\net47\RBush.dll + ..\packages\Renci.SshNet\Renci.SshNet.dll + + ..\packages\SixLabors.Fonts.1.0.0\lib\netstandard2.0\SixLabors.Fonts.dll + + + ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + @@ -157,13 +184,19 @@ ..\packages\System.Drawing.Common.9.0.5\lib\net462\System.Drawing.Common.dll + + ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + ..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll @@ -173,6 +206,7 @@ + ..\packages\Common\Xylem.Common.CommonCore.dll @@ -1223,6 +1257,7 @@ WriterCfgCtrl.cs + UserControl diff --git a/TBF/UI/Procedures/ProcedureDlg.cs b/TBF/UI/Procedures/ProcedureDlg.cs index 8e7382cdf..6793b2114 100644 --- a/TBF/UI/Procedures/ProcedureDlg.cs +++ b/TBF/UI/Procedures/ProcedureDlg.cs @@ -410,12 +410,12 @@ namespace TBF.UI.Procedures LoadUISettings(); /// Enable/disable/show/hide controls in General tab -#if LANG_PL +//#if LANG_PL altProcNameLabel.Visible = true; altProcNameTextBox.Visible = true; //altProcPeriodLabel.Visible = true; //altProcPeriodTextBox.Visible = true; -#endif +//#endif procNameTextBox.Enabled = false; descriptionTextBox.Enabled = false; variantTextBox.Enabled = false; diff --git a/TBF/UI/Shared/BenchControlPanel.cs b/TBF/UI/Shared/BenchControlPanel.cs index f3915ceff..db546eb55 100644 --- a/TBF/UI/Shared/BenchControlPanel.cs +++ b/TBF/UI/Shared/BenchControlPanel.cs @@ -18,8 +18,9 @@ namespace TBF.UI.Shared static readonly ILog log = LogManager.GetLogger(typeof(BenchControlPanel)); public string TestName; + public int TestIndex; - // Original (enabled) colors of buttons and empty bench + // Original (enabled) colors of buttons and empty bench Color colorStopEn; Color colorTestsEn; Color colorCycleEn; @@ -185,6 +186,7 @@ namespace TBF.UI.Shared } string oriTestName = testComboBox.Text; + int oriTestIndex = testComboBox.SelectedIndex; IList procedures = TBF.DB.CreateSession(Program.MainWnd.SelectedProcedure.Source == ProcedureSelection.FromSharedDB ? DBKind.RemoteConfig : DBKind.Config) @@ -196,6 +198,7 @@ namespace TBF.UI.Shared { testComboBox.Text = string.Empty; TestName = null; + TestIndex = -1; Program.MainWnd.CurrentProcedure = null; return; } @@ -207,6 +210,7 @@ namespace TBF.UI.Shared } testComboBox.Items.Clear(); + int i = 0; foreach (var tinst in procedures[0].GetTestInstances()) { testComboBox.Items.Add(tinst); @@ -215,7 +219,8 @@ namespace TBF.UI.Shared if (testComboBox.Items.Contains(oriTestName)) { testComboBox.Text = oriTestName; - TestName = oriTestName; + TestIndex = oriTestIndex; + TestName = oriTestName; } else if (testComboBox.Items.Count > 0) { @@ -226,13 +231,19 @@ namespace TBF.UI.Shared { testComboBox.Text = string.Empty; TestName = null; - } + TestIndex = -1; + } } private void testComboBox_SelectedIndexChanged(object sender, EventArgs e) { - TestName = testComboBox.Text; - startTestBtn.Select(); + if (testComboBox.SelectedItem is TestInstance) + { + TestName = testComboBox.SelectedItem.ToString(); + TestIndex = ((TestInstance)testComboBox.SelectedItem).Test.ItemNr; + + } + startTestBtn.Select(); } diff --git a/TBF/UiBridge/Bridge.cs b/TBF/UiBridge/Bridge.cs index 226422de1..4895daa75 100644 --- a/TBF/UiBridge/Bridge.cs +++ b/TBF/UiBridge/Bridge.cs @@ -9,6 +9,7 @@ using NHibernate; using Common; using Config.Entities; using SharedDatabase.Entities; +using Config.Resources; namespace TBF.UiBridge { @@ -334,5 +335,35 @@ namespace TBF.UiBridge catch (Exception e) { log.Error("SetpointChangeHandler(...) failed", e); } } public static event EventHandler SetpointChangeHandler; + + public static void OnDelayActivity(object sender, string nextAction, ref int delay) + { + delay = Math.Max(delay, 0); + + string activity; + + if (delay > 60) + { + activity = string.Format( + "{0} in {1} min {2} {3}", + nextAction, + delay / 60, + delay % 60, + Strings.sec); + } + else + { + activity = string.Format( + "{0} in {1} {2}", + nextAction, + delay, + Strings.sec); + } + + OnActivity(sender, activity); + + if (delay > 0) + delay--; + } } } diff --git a/TBF/app.config b/TBF/app.config index 64516adb1..a5310bf9b 100644 --- a/TBF/app.config +++ b/TBF/app.config @@ -83,6 +83,22 @@ + + + + + + + + + + + + + + + + diff --git a/TBF/packages.config b/TBF/packages.config index 609408d25..478c4224c 100644 --- a/TBF/packages.config +++ b/TBF/packages.config @@ -1,18 +1,29 @@  + + + + + + + + + + - + + \ No newline at end of file diff --git a/TBFTests/app.config b/TBFTests/app.config index 79f5b8a14..84e18af51 100644 --- a/TBFTests/app.config +++ b/TBFTests/app.config @@ -14,6 +14,18 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/ToFirstMonitor/App.config b/ToFirstMonitor/App.config index dd580728f..8d668f958 100644 --- a/ToFirstMonitor/App.config +++ b/ToFirstMonitor/App.config @@ -9,6 +9,22 @@ + + + + + + + + + + + + + + + + diff --git a/ToSecondMonitor/App.config b/ToSecondMonitor/App.config index dd580728f..8d668f958 100644 --- a/ToSecondMonitor/App.config +++ b/ToSecondMonitor/App.config @@ -9,6 +9,22 @@ + + + + + + + + + + + + + + + + diff --git a/et --hard 8277b564d4b753b8ba8a76c094cf78742d784811 b/et --hard 8277b564d4b753b8ba8a76c094cf78742d784811 new file mode 100644 index 000000000..5c4f7c9aa --- /dev/null +++ b/et --hard 8277b564d4b753b8ba8a76c094cf78742d784811 @@ -0,0 +1,50 @@ +83c1f0e81 (HEAD -> bugfix/Results-MultifunctionalVariables-Units, bugfix/SLM-PT50-7-2026) HEAD@{0}: reset: moving to 83c1f0e817132cc54a53994081a7aa42a43e4e20 +8277b564d HEAD@{1}: reset: moving to 8277b564d4b753b8ba8a76c094cf78742d784811 +ecf4211f3 HEAD@{2}: commit: Update - increase work revision +8277b564d HEAD@{3}: commit: Upgrade - Replace PulsesTypeByQuantity with MultiFunctionalVariables unit filtering based on RegisterReader quantity type - remove PulsesTypeByQuantity-based parameter values +c988d3def HEAD@{4}: checkout: moving from bugfix/More-BugFixes to bugfix/Results-MultifunctionalVariables-Units +f9181fee7 (bugfix/More-BugFixes) HEAD@{5}: checkout: moving from bugfix/Results-MultifunctionalVariables-Units to bugfix/More-BugFixes +c988d3def HEAD@{6}: checkout: moving from bugfix/SLM-PT50-7-2026 to bugfix/Results-MultifunctionalVariables-Units +83c1f0e81 (HEAD -> bugfix/Results-MultifunctionalVariables-Units, bugfix/SLM-PT50-7-2026) HEAD@{7}: checkout: moving from bugfix/Results-MultifunctionalVariables-Units to bugfix/SLM-PT50-7-2026 +c988d3def HEAD@{8}: commit: hit1 +83c1f0e81 (HEAD -> bugfix/Results-MultifunctionalVariables-Units, bugfix/SLM-PT50-7-2026) HEAD@{9}: checkout: moving from bugfix/SLM-PT50-7-2026 to bugfix/Results-MultifunctionalVariables-Units +83c1f0e81 (HEAD -> bugfix/Results-MultifunctionalVariables-Units, bugfix/SLM-PT50-7-2026) HEAD@{10}: commit: Update - Actualized revision nr. +a88a5a8db HEAD@{11}: commit (amend): Fix - 1. StandingStartMassCollection and StandingStartMassCollectionAdvance - changed all delayed Activity strings, 2. Added UI/Bridge onDelayedActivity() method for universal using +da2f8854e HEAD@{12}: commit (amend): Fix - 1. StandingStartMassCollection and StandingStartMassCollectionAdvance - changed all delayed Activity strings, 2. Added UI/Bridge onDelayedActivity() method for universal using +3ae52aee2 HEAD@{13}: commit: Fix - 1. StandingStartMassCollection and StandingStartMassCollectionAdvance - changed all delayed Activity strings, 2. Added UI/Bridge onDelayedActivity() method for universal using +271200a8d HEAD@{14}: commit: Upgrade - StandingStartMassCollectionAdvance method - 1. changed structure and residual flow delays by changes in StandingStartMassCollection method, 2. added variables, counting and evaluation for volume/mass type of RegisterReader +b703297f5 HEAD@{15}: commit: Fix - 1. repaired StandingStartMassCollection MassEN evaluation, the problem was caused by the end scale measuring only after recalculating the basic values - 2. removed fixed delay for the first diverter switching and first diverter switching was moved after a configurable delay - 3. hidden unitComboBox in the StartEnd dialog of the DataEntry.Standard24 component, because units are now defined using the RegisterReader component +637d1d021 HEAD@{16}: commit: Fix - StandingMassCollection method - add end mass measurement +dbe424b17 HEAD@{17}: checkout: moving from develop/SLM-PT50 to bugfix/SLM-PT50-7-2026 +c1ee29cd0 (MB-http-origin/develop/SLM-PT50_genesisDirectDecode, develop/SLM-PT50) HEAD@{18}: checkout: moving from 69b607f9633f183a3e698cc2ec3586d27ca3bee0 to develop/SLM-PT50 +69b607f96 HEAD@{19}: checkout: moving from bugfix/SLM-PT50-7-2026 to 69b607f9633f183a3e698cc2ec3586d27ca3bee0 +dbe424b17 HEAD@{20}: checkout: moving from 6ac3ea87ef67fe79578bf89a73e539a87a95ef2e to bugfix/SLM-PT50-7-2026 +6ac3ea87e HEAD@{21}: checkout: moving from bugfix/SLM-PT50-7-2026 to 6ac3ea87ef67fe79578bf89a73e539a87a95ef2e +dbe424b17 HEAD@{22}: commit: Add - StandingStart method - Store and log default PumpPower for dynamic test repetitions - Read PumpPower from the current pump before starting dynamic tests. +be0525a31 HEAD@{23}: commit: Upgrade - improved StandingStart method by SLM requirements, added fixed delays for meters stabilization +0ce130f0e (develop/SLM-PT50-7-2026-merged) HEAD@{24}: merge develop/SLM-PT50-7-2026-merged: Fast-forward +6ac3ea87e HEAD@{25}: checkout: moving from develop/SLM-PT50-7-2026-merged to bugfix/SLM-PT50-7-2026 +0ce130f0e (develop/SLM-PT50-7-2026-merged) HEAD@{26}: commit: Fix - repaired merging compatibility problem of GCI return type GciConnectResult - IsLoggedOn and IsConnected, increased VisualStudio version from 17.8 to 18.5 +c1ee29cd0 (MB-http-origin/develop/SLM-PT50_genesisDirectDecode, develop/SLM-PT50) HEAD@{27}: checkout: moving from develop/SLM-PT50 to develop/SLM-PT50-7-2026-merged +c1ee29cd0 (MB-http-origin/develop/SLM-PT50_genesisDirectDecode, develop/SLM-PT50) HEAD@{28}: checkout: moving from bugfix/SLM-PT50-7-2026 to develop/SLM-PT50 +6ac3ea87e HEAD@{29}: checkout: moving from develop/SLM-PT50 to bugfix/SLM-PT50-7-2026 +c1ee29cd0 (MB-http-origin/develop/SLM-PT50_genesisDirectDecode, develop/SLM-PT50) HEAD@{30}: pull --progress --no-edit --no-stat --recurse-submodules=no MB-http-origin: Fast-forward +f1bc71fb9 HEAD@{31}: pull --progress --no-edit --no-stat --recurse-submodules=no MB-http-origin: Fast-forward +6ac3ea87e HEAD@{32}: merge bugfix/SLM-PT50-7-2026: Fast-forward +38d28599a (develop/Mexico-6-2026) HEAD@{33}: checkout: moving from bugfix/SLM-PT50-7-2026 to develop/SLM-PT50 +6ac3ea87e HEAD@{34}: commit: Upgrade - improved StandingStartMassCollection method by SLM requirements, added fixed delays, added residual flow delays +38973e003 HEAD@{35}: commit: Add - Store and log default PumpPower for dynamic test repetitions - Read PumpPower from the current pump before starting dynamic tests. +37c89a4c9 HEAD@{36}: commit (amend): Fix - missing safe shutdown when PerformSteps returns UiCmdStop +39970d6ac HEAD@{37}: commit: Fix missing safe shutdown when PerformSteps returns UiCmdStop +0075362f9 HEAD@{38}: commit (amend): Fix - Handle scale underload condition +04e0e1455 HEAD@{39}: commit: Fixed - Handle scale underload condition +38d28599a (develop/Mexico-6-2026) HEAD@{40}: Branch: renamed refs/heads/bugfix/SLMPT50-7-2026 to refs/heads/bugfix/SLM-PT50-7-2026 +38d28599a (develop/Mexico-6-2026) HEAD@{42}: checkout: moving from develop/SLM-PT50 to bugfix/SLMPT50-7-2026 +38d28599a (develop/Mexico-6-2026) HEAD@{43}: checkout: moving from develop/Mexico-6-2026 to develop/SLM-PT50 +38d28599a (develop/Mexico-6-2026) HEAD@{44}: checkout: moving from develop/SLM-PT50 to develop/Mexico-6-2026 +38d28599a (develop/Mexico-6-2026) HEAD@{45}: checkout: moving from feature/task/SWDocumentation-DocFX to develop/SLM-PT50 +c2ff40d81 (feature/task/SWDocumentation-DocFX) HEAD@{46}: checkout: moving from bugfix/German-Labels-not-defined-in-Procedure-ResultsBrowser-table to feature/task/SWDocumentation-DocFX +b8e891fc4 (bugfix/German-Labels-not-defined-in-Procedure-ResultsBrowser-table) HEAD@{47}: checkout: moving from develop/Mexico-6-2026 to bugfix/German-Labels-not-defined-in-Procedure-ResultsBrowser-table +38d28599a (develop/Mexico-6-2026) HEAD@{48}: merge develop/SLM-PT50: Fast-forward +c9a4b0f3c (feature/task/MTE-database-storing) HEAD@{49}: checkout: moving from develop/SLM-PT50 to develop/Mexico-6-2026 +38d28599a (develop/Mexico-6-2026) HEAD@{50}: pull --progress --no-edit \ No newline at end of file diff --git a/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll b/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll index 54a7face9..84a293170 100644 Binary files a/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll and b/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.dll differ diff --git a/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.pdb b/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.pdb index 1423ef7ab..41c22fd20 100644 Binary files a/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.pdb and b/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.pdb differ diff --git a/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.dll b/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.dll index 532c633f4..34db3c96c 100644 Binary files a/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.dll and b/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.dll differ diff --git a/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.pdb b/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.pdb index 16dc16ec6..de9edebe7 100644 Binary files a/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.pdb and b/packages/Common/Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd.pdb differ diff --git a/packages/Common/Xylem.Common.Ui.CordonelPreadjustmentUi.pdb b/packages/Common/Xylem.Common.Ui.CordonelPreadjustmentUi.pdb index fad771f73..860404a19 100644 Binary files a/packages/Common/Xylem.Common.Ui.CordonelPreadjustmentUi.pdb and b/packages/Common/Xylem.Common.Ui.CordonelPreadjustmentUi.pdb differ diff --git a/packages/Common/Xylem.Common.Ui.GenesisToolBox.exe b/packages/Common/Xylem.Common.Ui.GenesisToolBox.exe index 0c0165752..6c5844cee 100644 Binary files a/packages/Common/Xylem.Common.Ui.GenesisToolBox.exe and b/packages/Common/Xylem.Common.Ui.GenesisToolBox.exe differ diff --git a/packages/Common/Xylem.Common.Ui.GenesisToolBox.exe.config b/packages/Common/Xylem.Common.Ui.GenesisToolBox.exe.config index 95a21f9d3..0e4e85051 100644 --- a/packages/Common/Xylem.Common.Ui.GenesisToolBox.exe.config +++ b/packages/Common/Xylem.Common.Ui.GenesisToolBox.exe.config @@ -2,48 +2,44 @@ -
+
- + - + - + - - - + + + - - - - - - + + - + - + diff --git a/packages/Common/Xylem.Common.Ui.GenesisToolBox.pdb b/packages/Common/Xylem.Common.Ui.GenesisToolBox.pdb index d08494a06..4f47685cf 100644 Binary files a/packages/Common/Xylem.Common.Ui.GenesisToolBox.pdb and b/packages/Common/Xylem.Common.Ui.GenesisToolBox.pdb differ diff --git a/packages/Common/XylemCommonUiLegacyGenCtl.dll b/packages/Common/XylemCommonUiLegacyGenCtl.dll index 528886ee0..dbd218751 100644 Binary files a/packages/Common/XylemCommonUiLegacyGenCtl.dll and b/packages/Common/XylemCommonUiLegacyGenCtl.dll differ diff --git a/packages/Common/XylemCommonUiLegacyGenCtl.pdb b/packages/Common/XylemCommonUiLegacyGenCtl.pdb index 0373d5c9e..e621a0271 100644 Binary files a/packages/Common/XylemCommonUiLegacyGenCtl.pdb and b/packages/Common/XylemCommonUiLegacyGenCtl.pdb differ