diff --git a/.gitignore b/.gitignore index 964aaed6..323da9f6 100644 --- a/.gitignore +++ b/.gitignore @@ -398,3 +398,5 @@ FodyWeavers.xsd ![Ww]eb.config *applicationhost.config /Common/CommonConsole +/Common/Common.v3.ncrunchsolution +/TBF_V2/Sources/TBF/TBF/BenchControl/TestMethods/GenesisCommunication.zip diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..1586d834 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "LaaProductionWeb/LaaPackages"] + path = LaaProductionWeb/LaaPackages + url = https://slm.sms-esaap.com/la_operations/laapackages.git +[submodule "Common/LaaPackages"] + path = Common/LaaPackages + url = https://slm.sms-esaap.com/la_operations/laapackages.git diff --git a/Common/.shared/NlogConfig.xml b/Common/.shared/NlogConfig.xml index 2943dea5..fbf263fd 100644 --- a/Common/.shared/NlogConfig.xml +++ b/Common/.shared/NlogConfig.xml @@ -3,21 +3,21 @@ - + - - - - + + + + diff --git a/Common/.shared/SharedAssemblyInfo.cs b/Common/.shared/SharedAssemblyInfo.cs index 2c53cf85..6c4ebd47 100644 --- a/Common/.shared/SharedAssemblyInfo.cs +++ b/Common/.shared/SharedAssemblyInfo.cs @@ -14,5 +14,4 @@ using System.Reflection; //[assembly: AssemblyVersion("1.2.*.0")] -[assembly: AssemblyVersion("2.6.10.*")] -[assembly: AssemblyFileVersion("2.6.10.0")] \ No newline at end of file +[assembly: AssemblyVersion("2.7.0.*")] diff --git a/Common/.shared/configuration.json b/Common/.shared/configuration.json new file mode 100644 index 00000000..c62a96e4 --- /dev/null +++ b/Common/.shared/configuration.json @@ -0,0 +1,22280 @@ +{ + "SUMMARY": { + "schema": "1", + "version": "350", + "description": "...", + "build": { + "emea": "R1416 2025-04-09", + "na": "B2011 2024-10-10" + }, + "CordonelRegisterResponsibilities.xlsx": { + "version": "66.0", + "timestamp": "2025-02-18 13:16" + }, + "date_modified": "2025-04-09 09:43" + }, + "CONFIGEXCHANGE": { + "id": 4, + "version": { + "first": 3, + "last": 242 + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F.", + "R.D." + ], + "remarks": "Used in login.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "Used for identification and login.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 242 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "I don't expect this to be changed.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + } + }, + "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": 163 + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "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 + } + } + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "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": [ + "J.S." + ], + "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 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "This updates the same value as AlarmEnableMask, best to avoid changing it.", + "region": { + "emea": { + "values": { + "default": 32851 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": [ + "J.S" + ], + "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": [ + "J.S" + ], + "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 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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 + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "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 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "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 + } + } + } + } + } + ] + }, + "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 measurements in 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 measurements in 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 measurements in reverse flow required to set reverse flow alarm", + "version": { + "first": 143, + "last": 163 + }, + "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": [ + "J.S." + ], + "remarks": "NEW! 1800 is the new default. Sould be up to 15min! A.F.: in normal usage (2Hz measurement) 15 measurements means 7.5 seconds.", + "region": { + "emea": { + "values": { + "default": 1800 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "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 + } + } + } + ] + }, + "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": 163 + }, + "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 + } + } + } + ] + }, + "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": 163 + }, + "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 + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Default for J.S. is 5.", + "region": { + "emea": { + "values": { + "default": 5 + } + }, + "na": { + "values": { + "default": 5 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "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 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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 + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 500 + } + }, + "na": { + "values": { + "default": 270 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 20 + } + }, + "na": { + "values": { + "default": 20 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Absolute or relative? A.F.: gauge pressure.", + "region": { + "emea": { + "values": { + "default": 1600000 + } + }, + "na": { + "values": { + "default": 1380000 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Absolute or relative? A.F.: gauge pressure.", + "region": { + "emea": { + "values": { + "default": 30000 + } + }, + "na": { + "values": { + "default": 240000 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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 + } + } + } + ] + }, + "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": 163 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "J.S.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "Internal use in firmware only", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "A.F." + ], + "remarks": "Write to zero before leaving manufacturing to ensure not marked as 'installed'.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "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 + } + } + } + ] + }, + "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", + "version": { + "first": 161, + "last": 163 + }, + "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": [ + ".J.L." + ], + "remarks": "This has default setting for DEWA customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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", + "version": { + "first": 161, + "last": 163 + }, + "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": [ + ".J.L." + ], + "remarks": "This has default setting for DEWA customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + } + } + ] + } + }, + "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": 22 + }, + "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": 22 + }, + "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 + } + } + } + ] + }, + "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": 22 + }, + "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 + } + } + } + ] + } + }, + "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": [ + "B.D." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 2 + } + }, + "na": { + "values": { + "default": 2 + } + } + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "Default is 6 and it should stay as 6 for all sizes.", + "region": { + "emea": { + "values": { + "default": 6 + } + }, + "na": { + "values": { + "default": 6 + } + } + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "J.S.", + "R.D." + ], + "remarks": "(<=125 = 3n ) 150=> 2n in m³ -> what about other Units. See Display Unit Customer Specification.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "J.S." + ], + "remarks": "Same units for each calculator. Vako.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "J.S." + ], + "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 + } + } + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "You will need this if you wish to reset the volume to zero at the end of calibration.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "J.S." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 1 + } + } + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "You will need to use this during calibration.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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 + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "remarks": "Default for other DN (3932160 -> DN50).", + "region": { + "emea": { + "values": { + "default": 3932160 + } + }, + "na": { + "values": { + "default": 3932160 + } + } + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "J.S." + ], + "remarks": "Default for other DN (J.S.: 2000000-> DN50)", + "region": { + "emea": { + "values": { + "default": 2000000, + "DN125": "TBD", + "DN250": "TBD", + "DN300": "TBD" + } + } + } + } + }, + { + "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 + } + } + }, + { + "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 + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "You will need this if you use TriggerIdle or TriggerTest", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "R.D." + ], + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "B.D" + ], + "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" + } + } + } + } + }, + { + "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": [ + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D." + ], + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D." + ], + "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 + } + } + }, + { + "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": [ + "A.F.", + "B.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "A.F.", + "B.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "A.F.", + "B.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "Display should be sealed at end of manufacture (EMEA only).", + "region": { + "emea": { + "values": { + "default": 1 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "629145600 <-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "default": 2936012800 + } + }, + "na": { + "values": { + "default": 2936012800 + } + } + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "<-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "default": 629145600 + } + }, + "na": { + "values": { + "default": 629145600 + } + } + } + } + }, + { + "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": [ + "A.F." + ], + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 8192 + } + }, + "na": { + "values": { + "default": 8192 + } + } + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "remarks": "0.5us for all meter sizes. 0.5us is 137438 (0x218DE).", + "region": { + "emea": { + "values": { + "default": 137438 + } + }, + "na": { + "values": { + "default": 137438 + } + } + } + } + }, + { + "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": [ + "M.C." + ], + "remarks": "Will change with different releases - should be tracked elsewhere. meter_lut_202406170836_v0.17_crc_list.", + "region": { + "emea": { + "values": { + "DN40": 16549, + "DN50": 51664, + "DN65": 52673, + "DN80": 18061, + "DN100": 48372, + "DN125": 8134, + "DN150": 1637, + "DN200": 60969, + "DN250": 45341, + "DN300": 49157 + } + }, + "na": { + "values": { + "US1_5": 50785, + "US2": 58892, + "US3": 52036, + "US4": 50586, + "US6": 8010, + "US8": 17423, + "US10": 24406, + "US12": 11854 + } + } + } + } + } + ] + }, + "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 + } + } + } + } + } + ] + }, + "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": 313, + "last": 322 + }, + "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" + } + } + } + } + } + ] + }, + "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": 313, + "last": 322 + }, + "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" + } + } + } + } + } + ] + }, + "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": 313, + "last": 322 + }, + "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" + } + } + } + } + } + ] + }, + "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": 313, + "last": 322 + }, + "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" + } + } + } + } + } + ] + }, + "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": 313, + "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": "Probably customer specific in EMEA should always be false in NA.", + "region": { + "emea": { + "values": { + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "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": [ + "J.S." + ], + "remarks": "1 sec.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + }, + "na": { + "values": { + "default": 3 + } + } + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "These are the fields used in NA AMR reading strings.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "Simple timestamp, should be filled in at the end of manufacture. Time now.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "In NA the AMR digits should be displayed on the LCD periodically, in EMEA they shouldn't.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "G01 Pulse value (100 l/Imp., ...). Customer specific.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "G02 Pulse type (Netted Imp./Tamp. (-), …). Customer specific.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "G03 Pulse length (500ms, …). Customer specific.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "C05 unit (m³, kl, US-Gall./Imp.-Gall, Barrel, ...)", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "Counter size and unit. See FlowPoint.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "°C - EMEA/China / °F - USA.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 1 + } + } + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "Mpa - EMEA/China / PSI - USA / Bar - USA.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "custom": [ + 1, + 2 + ] + } + } + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 60000 + } + }, + "na": { + "values": { + "default": 60000 + } + } + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "-> 0", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "B09 Housing option (D,Y). Variant specific.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "For use in testing.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "For use in testing.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 1, + "DN300": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "Read only.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "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": [ + "A.F." + ], + "remarks": "You do need to use this if you change any parameters in NA2WALARMS and want to keep them.", + "region": { + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "NA has a series of alarms called 'predefined' these are the ones that should be enabled.", + "region": { + "na": null + } + } + } + ] + } + }, + "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": 199 + }, + "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": 199 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "na": null + } + } + } + ] + }, + "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": 199 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "na": null + } + } + } + ] + } + }, + "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": [ + "A.F." + ], + "remarks": "You may wish to do this at the end of manufacture to clear all the old data out.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "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 + } + } + }, + "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": 77 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 201335811 + } + } + } + } + } + ] + }, + "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": [ + "J.S.", + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 5 + } + } + } + } + } + ] + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 201335811 + } + } + } + } + } + ] + }, + "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": [ + "J.S.", + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 1 + } + } + } + } + } + ] + }, + "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": 77 + }, + "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 + } + } + } + } + } + ] + }, + "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": 77 + }, + "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 + } + } + } + } + } + ] + } + }, + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 6 + } + }, + "na": { + "values": { + "default": 6 + } + } + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 2 + } + }, + "na": { + "values": { + "default": 2 + } + } + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "A.F.", + "R.D" + ], + "remarks": "This should be set to the expected life of the meter. In the early days the expected lifetime will be this.", + "region": { + "emea": { + "values": { + "default": 630720000 + } + }, + "na": { + "values": { + "default": 630720000 + } + } + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + } + }, + "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": 546 + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 15 + } + } + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 900 + } + } + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + } + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + } + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 7 + } + } + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Constant, do not change.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + } + } + ] + }, + "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": [ + "J.L." + ], + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Set to 0xFF at the end of parameterization to trigger shipping mode.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Set final radio address.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Not used anymore.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Not used anymore.", + "region": { + "emea": null + } + } + } + ] + }, + "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": [ + "J.L." + ], + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at CUSTOMER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at CUSTOMER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 29 + } + } + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Runtime value.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "J.L." + ], + "remarks": "D05 radio key (Sensus (standard), …)", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Customer specific.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Dependant on territory setting acc SAP order.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Customer specific. Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "1: if OTA update is allowed.", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": 546 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignor because is set up at CUSTOMER APP?", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + } + }, + "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": 540 + }, + "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": 540 + }, + "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 + } + } + } + ] + }, + "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": 540 + }, + "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 + } + } + } + ] + }, + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "A.F.", + "R.D." + ], + "remarks": "Time now. Write the current time during manufacture.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "This is effectively another application version number but for the Breeze Core and is worth looking at.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "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 + } + } + } + ] + }, + "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": 540 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "A.F.", + "R.D." + ], + "remarks": "Set fix as final step at production.", + "region": { + "emea": { + "values": { + "default": 254 + } + }, + "na": { + "values": { + "default": 255 + } + } + } + } + } + ] + }, + "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": 540 + }, + "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 + } + } + } + ] + } + }, + "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/Common/.vs/Common/config/applicationhost.config b/Common/.vs/Common/config/applicationhost.config index 40cde372..c55a7f21 100644 --- a/Common/.vs/Common/config/applicationhost.config +++ b/Common/.vs/Common/config/applicationhost.config @@ -155,7 +155,7 @@ - + diff --git a/Common/.vs/config/applicationhost.config b/Common/.vs/config/applicationhost.config index 883679a3..a894c3cf 100644 --- a/Common/.vs/config/applicationhost.config +++ b/Common/.vs/config/applicationhost.config @@ -155,7 +155,7 @@ - + diff --git a/Common/Common.sln b/Common/Common.sln index 8896c271..a91c22e1 100644 --- a/Common/Common.sln +++ b/Common/Common.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.28307.852 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36121.58 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utils", "Utils", "{7A0EE7B8-6B7E-41E9-B679-319C8CA48CF1}" EndProject @@ -101,7 +101,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IrdaDemo", "Ui\IrdaDemo\Ird EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WaterMeterRegisters", "Hardware\WaterMeter\WaterMeterCore\WaterMeterRegisters\WaterMeterRegisters.csproj", "{26AFCF1E-1287-48B8-A506-32B1E8A0DD0E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProductionUiCordonel", "ProductionUiCordonel\ProductionUiCordonel.csproj", "{D72BFC81-AA50-45F2-9FB2-DF4F373F6AD4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProductionUiCordonelLegacy", "ProductionUiCordonel\ProductionUiCordonelLegacy.csproj", "{D72BFC81-AA50-45F2-9FB2-DF4F373F6AD4}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommonCore.Configuration", "CommonCore.Configuration\CommonCore.Configuration.csproj", "{9EB1F659-6F73-4F65-BCAB-4114FD94F5FC}" EndProject @@ -149,8 +149,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MagFlux", "MagFlux", "{C939 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Protocols", "Protocols", "{94579693-7AC6-4FF0-B540-1F3780E1BCFA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MjkControlledCodeRef", "MjkControlledCodeRef", "{B4F8545B-F379-42A5-BDE9-763FD7B79598}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MagFluxToolBox", "Ui\MagFluxToolBox\MagFluxToolBox.csproj", "{A5E7CE52-3101-4E9B-B896-C2C0FADE4812}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MagFluxConfig", "Hardware\WaterMeter\MagFlux\MagFluxConfig\MagFluxConfig.csproj", "{70398B99-B134-4BBD-968B-7399B70C3CE2}" @@ -167,10 +165,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolCore", "Hardware\In EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaaProduction", "LaaProduction\LaaProduction.csproj", "{FD30EB7A-7809-4E62-9374-791D31877D6D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommonConsole", "CommonConsole\CommonConsole.csproj", "{AFC428F5-0141-4A3F-BEF2-470A89D972F6}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "modbus_master_csharp", "modbus_master_csharp\modbus_master_csharp.csproj", "{F14940F8-3C86-4BB7-A915-B021E4B3052D}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OmniPlus", "OmniPlus", "{68323534-4337-4E3A-89BC-11D8BB55343A}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OmniPlus", "OmniPlus\OmniPlus\OmniPlus.csproj", "{F8D84B9A-0FCF-4083-B067-8C39B7314152}" @@ -201,38 +195,176 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InspectionUI.Abstraction", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InspectionUI.RemoteControl", "OmniPlus\InspectionUI.RemoteControl\InspectionUI.RemoteControl.csproj", "{41E949AD-FBF6-47A3-AC1D-7E17AB7F1252}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Hardware.Interfaces.Ports", "Hardware\Interfaces\Ports\Common.Hardware.Interfaces.Ports\Common.Hardware.Interfaces.Ports.csproj", "{9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.UI.SIRTBroadcaster", "Ui\Common.UI.SIRTBroadcaster\Common.UI.SIRTBroadcaster.csproj", "{8D3B1C46-B23E-46CC-9B59-24E34DE60510}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.UI.VFM", "Ui\Common.UI.VFM\Common.UI.VFM.csproj", "{9C1C5522-E986-4FD6-8F2F-19821D704A88}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OmniPlus", "OmniPlus", "{68A1B84B-B38F-4BD1-94A8-DB18600457FF}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Hardware.WaterMeter.OmniPlus.Features", "Hardware\WaterMeter\OmniPlus\Common.Hardware.WaterMeter.OmniPlus.Features\Common.Hardware.WaterMeter.OmniPlus.Features.csproj", "{9D89FA2A-1217-4CE9-B217-E7602B974EA9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Hardware.WaterMeter.OmniPlus", "Hardware\WaterMeter\OmniPlus\Common.Hardware.WaterMeter.OmniPlus\Common.Hardware.WaterMeter.OmniPlus.csproj", "{6480CC2A-AB54-4A26-8413-D5141431C080}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Logic.Extensions.SQL", "Logic\Common.Logic.Extensions.SQL\Common.Logic.Extensions.SQL.csproj", "{62490923-CD17-45A6-B79F-A027927C75B5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Logic.Extensions.Http", "Logic\Common.Logic.Extensions.Http\Common.Logic.Extensions.Http.csproj", "{57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Hardware.Interfaces.Ports.SIRT", "Hardware\Interfaces\Ports\Common.Hardware.Interfaces.Ports.SIRT\Common.Hardware.Interfaces.Ports.SIRT.csproj", "{B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Hardware.WaterMeter.eRegister.Features", "Hardware\WaterMeter\eRegister\Common.Hardware.WaterMeter.eRegister.Features\Common.Hardware.WaterMeter.eRegister.Features.csproj", "{E19C1694-132E-477C-86CB-8E146D5F59B0}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PendingEmails", "PendingEmails\PendingEmails.csproj", "{28FD69D1-B2DA-485D-9571-711BF3917350}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Hardware.WaterMeter.eRegister", "Hardware\WaterMeter\eRegister\Common.Hardware.WaterMeter.eRegister\Common.Hardware.WaterMeter.eRegister.csproj", "{4E8BB839-D40A-488C-88CE-F21811F1F476}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Utils.Extensions", "Utils\Common.Utils.Extensions\Common.Utils.Extensions.csproj", "{05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MagFluxApi-MJK controlled Code", "MagFluxApi-MJK controlled Code", "{56768A27-D0E4-430E-8E75-AFC7319F189A}" + ProjectSection(SolutionItems) = preProject + Hardware\WaterMeter\MagFlux\MagFluxApi\magflux_api.dll = Hardware\WaterMeter\MagFlux\MagFluxApi\magflux_api.dll + Hardware\WaterMeter\MagFlux\MagFluxApi\shared_code.dll = Hardware\WaterMeter\MagFlux\MagFluxApi\shared_code.dll + EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EregisterConnector", "Hardware\WaterMeter\eRegister\EregisterConnector\EregisterConnector.csproj", "{DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "api_doc", "api_doc", "{E6081C0A-8452-44B4-8EB4-E0CAE9119830}" + ProjectSection(SolutionItems) = preProject + Hardware\WaterMeter\MagFlux\MagFluxApi\api_doc\CalibrationPoint.cs = Hardware\WaterMeter\MagFlux\MagFluxApi\api_doc\CalibrationPoint.cs + Hardware\WaterMeter\MagFlux\MagFluxApi\api_doc\CalibrationPoints.cs = Hardware\WaterMeter\MagFlux\MagFluxApi\api_doc\CalibrationPoints.cs + Hardware\WaterMeter\MagFlux\MagFluxApi\api_doc\IMagFlux.cs = Hardware\WaterMeter\MagFlux\MagFluxApi\api_doc\IMagFlux.cs + Hardware\WaterMeter\MagFlux\MagFluxApi\api_doc\IMagFluxAPI.cs = Hardware\WaterMeter\MagFlux\MagFluxApi\api_doc\IMagFluxAPI.cs + Hardware\WaterMeter\MagFlux\MagFluxApi\api_doc\IMagFluxRequestProtocol.cs = Hardware\WaterMeter\MagFlux\MagFluxApi\api_doc\IMagFluxRequestProtocol.cs + Hardware\WaterMeter\MagFlux\MagFluxApi\api_doc\SensorInfo.cs = Hardware\WaterMeter\MagFlux\MagFluxApi\api_doc\SensorInfo.cs + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Hardware.SIRT", "Hardware\Common.Hardware.SIRT\Common.Hardware.SIRT.csproj", "{8DE8E742-EE0A-4004-AA49-3D08D748E5AC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.UI", "Ui\Common.UI\Common.UI.csproj", "{FDE234FD-FF24-479F-B5CA-DFB74B4636DA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "bin", "bin", "{3332395B-122F-4DE5-A294-9DDAEA09F10C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{890AA5E6-C55A-4E35-9841-999FA24B5025}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Exchange", "Exchange", "{E98D33EA-B918-442E-91E5-6073B6235BCB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SignalR", "SignalR", "{E4563F0A-BAF0-4867-86F8-002C58706D91}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "bin", "bin", "{E67F6B4B-EE83-4645-B93C-A812F3972CAC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{7E8683D6-960C-4119-8410-F1AD635C5DB0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "obj", "obj", "{5E122406-85AF-4A0D-AA32-CBB8E7303638}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{666A6463-81BF-4743-95C8-5665F0F241AD}" + ProjectSection(SolutionItems) = preProject + OmniPlus\Exchange\SignalR\obj\Debug\SignalR.csproj.CoreCompileInputs.cache = OmniPlus\Exchange\SignalR\obj\Debug\SignalR.csproj.CoreCompileInputs.cache + OmniPlus\Exchange\SignalR\obj\Debug\SignalR.csprojAssemblyReference.cache = OmniPlus\Exchange\SignalR\obj\Debug\SignalR.csprojAssemblyReference.cache + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TempPE", "TempPE", "{38F01931-D7C0-47DB-A8D5-30659BAC9FD0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ExchangeHub", "ExchangeHub", "{0BC64A60-EA33-4F63-BFDE-1FF4B3E64702}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "bin", "bin", "{284FF5BD-C6FF-4463-A48C-3897B1EB93D6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{22F102C0-F8BA-4118-832C-F3F313C8158E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "obj", "obj", "{251BD903-22A1-4CF7-A732-51146E8A6E03}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{5988A87F-1A59-4D2F-B29B-735161B3E166}" + ProjectSection(SolutionItems) = preProject + OmniPlus\ExchangeHub\obj\Debug\ExchangeHub.csproj.CoreCompileInputs.cache = OmniPlus\ExchangeHub\obj\Debug\ExchangeHub.csproj.CoreCompileInputs.cache + OmniPlus\ExchangeHub\obj\Debug\ExchangeHub.csprojAssemblyReference.cache = OmniPlus\ExchangeHub\obj\Debug\ExchangeHub.csprojAssemblyReference.cache + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TempPE", "TempPE", "{D426F0CD-4CB0-48C9-B637-BC7E64C2D8CB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HttpExtensions", "HttpExtensions", "{5ED7AC71-7DE1-457D-9B06-806BF5D74208}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "bin", "bin", "{1BF76053-7CFE-44A3-9734-7EAC68910FD9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{3E2D93D8-A2B2-4A31-BF03-31FD4574FFBB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "obj", "obj", "{F9DAF734-AD0A-45A4-902D-4904824B0EC0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{4A6B1A1E-8C99-4785-B9F6-D57DA585A4F8}" + ProjectSection(SolutionItems) = preProject + OmniPlus\HttpExtensions\obj\Debug\HttpExtensions.csproj.CoreCompileInputs.cache = OmniPlus\HttpExtensions\obj\Debug\HttpExtensions.csproj.CoreCompileInputs.cache + OmniPlus\HttpExtensions\obj\Debug\HttpExtensions.csprojAssemblyReference.cache = OmniPlus\HttpExtensions\obj\Debug\HttpExtensions.csprojAssemblyReference.cache + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TempPE", "TempPE", "{DE91E5BF-D218-4C82-A677-D802D646BA31}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "InspectionUI.Plugins.Controls", "InspectionUI.Plugins.Controls", "{829C9518-1A10-488F-9987-A42D81D70AB6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "bin", "bin", "{4EE95E2E-8465-46B4-9CB0-3D49A710D288}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{FB21C23C-11A6-4A90-BE86-895B633A2F1F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "obj", "obj", "{1DBC9ABD-3B10-43B7-81BE-EBA149B204CA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{8B2361C9-E2E0-4C5B-866D-9E807BFDF250}" + ProjectSection(SolutionItems) = preProject + OmniPlus\InspectionUI.Plugins.Controls\obj\Debug\InspectionUI.Plugins.Controls.csproj.CoreCompileInputs.cache = OmniPlus\InspectionUI.Plugins.Controls\obj\Debug\InspectionUI.Plugins.Controls.csproj.CoreCompileInputs.cache + OmniPlus\InspectionUI.Plugins.Controls\obj\Debug\InspectionUI.Plugins.Controls.csprojAssemblyReference.cache = OmniPlus\InspectionUI.Plugins.Controls\obj\Debug\InspectionUI.Plugins.Controls.csprojAssemblyReference.cache + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TempPE", "TempPE", "{A23A0945-FD09-47E4-936D-74A942287F8B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "InspectionUI.Plugins.Eregister", "InspectionUI.Plugins.Eregister", "{864F51AD-8C3B-4B10-9028-866BEAB746EF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "bin", "bin", "{7C6ECFCF-8606-461C-BF45-0E9A06105991}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{4B22FCBD-25EE-4EF2-9047-B4612CD01627}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "obj", "obj", "{64F041ED-0A66-405B-9253-ECCF2EAFD857}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{9A0113D8-6AA8-47CD-BFE9-ED2699648C3F}" + ProjectSection(SolutionItems) = preProject + OmniPlus\InspectionUI.Plugins.Eregister\obj\Debug\InspectionUI.Plugins.Eregister.csproj.CoreCompileInputs.cache = OmniPlus\InspectionUI.Plugins.Eregister\obj\Debug\InspectionUI.Plugins.Eregister.csproj.CoreCompileInputs.cache + OmniPlus\InspectionUI.Plugins.Eregister\obj\Debug\InspectionUI.Plugins.Eregister.csprojAssemblyReference.cache = OmniPlus\InspectionUI.Plugins.Eregister\obj\Debug\InspectionUI.Plugins.Eregister.csprojAssemblyReference.cache + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TempPE", "TempPE", "{409F6B28-CC28-423A-BE52-FE373525FF2E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "obj", "obj", "{8CA55CC7-45FA-41D3-8AD5-85E5F388D259}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{9EF9B896-6705-421D-BA6C-CE3BBB4E385F}" + ProjectSection(SolutionItems) = preProject + OmniPlus\obj\Debug\OmniPlus.csproj.CoreCompileInputs.cache = OmniPlus\obj\Debug\OmniPlus.csproj.CoreCompileInputs.cache + OmniPlus\obj\Debug\OmniPlus.csprojAssemblyReference.cache = OmniPlus\obj\Debug\OmniPlus.csprojAssemblyReference.cache + OmniPlus\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs = OmniPlus\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs + OmniPlus\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs = OmniPlus\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs + OmniPlus\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs = OmniPlus\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TempPE", "TempPE", "{88654695-4FC4-4443-A585-F933D431CD40}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SqlExtensions", "SqlExtensions", "{A778164E-C265-4B13-82A1-FF227AC3D668}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "bin", "bin", "{19F9470D-C4C5-4CC8-ABAD-D081BBFE77BE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{A2C99C6E-3D79-4888-A914-CAB2D11E24A1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "obj", "obj", "{B2EAC69C-22C9-41D5-987B-5E1F435C0CBC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{7C77A79B-646C-4CF8-AD1C-930E0B059829}" + ProjectSection(SolutionItems) = preProject + OmniPlus\SqlExtensions\obj\Debug\SqlExtensions.csproj.CoreCompileInputs.cache = OmniPlus\SqlExtensions\obj\Debug\SqlExtensions.csproj.CoreCompileInputs.cache + OmniPlus\SqlExtensions\obj\Debug\SqlExtensions.csprojAssemblyReference.cache = OmniPlus\SqlExtensions\obj\Debug\SqlExtensions.csprojAssemblyReference.cache + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TempPE", "TempPE", "{91CA9896-2288-4967-8991-AC49A77B6058}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LaaPackages", "LaaPackages", "{2E31C385-4FFC-473E-9C00-D7DC48140704}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaaPackages.SqlClient", "LaaPackages\LaaPackages.SqlClient\LaaPackages.SqlClient.csproj", "{F90B940C-9A83-496D-AAE0-11CD02CE0A22}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaaPackages.HttpClient", "LaaPackages\LaaPackages.HttpClient\LaaPackages.HttpClient.csproj", "{C9816412-7752-4F7A-8BD2-765DB6D58B3C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Stichproben", "Stichproben\Stichproben.csproj", "{F69A79FA-548D-4E21-887E-01FABDAD9E73}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaaPackages.Features.Cordonel", "LaaPackages\LaaPackages.Features.Cordonel\LaaPackages.Features.Cordonel.csproj", "{8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaaPackages.Extensions", "LaaPackages\LaaPackages.Extensions\LaaPackages.Extensions.csproj", "{15A06398-ECB6-49C9-ACB4-52A495A886A6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaaProductionWeb.Resources", "LaaPackages\LaaProductionWeb.Resources\LaaProductionWeb.Resources.csproj", "{DA65E376-3D35-4D96-913A-7197FCA6DF48}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UserAccessCtrl", "Utils\UserAccessCtrl\UserAccessCtrl.csproj", "{2D55BBD1-5373-484C-8781-C6ECEAFC2A90}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassAccess", "Utils\ClassAccess\ClassAccess.csproj", "{30BF7357-0B6C-498D-8123-5AACC66B3E5F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Production", "Production", "{AE29BDE3-843C-4B9B-8B02-D3C4814028AC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProductionUiCordonel", "Production\ProductionUiCordonel\ProductionUiCordonel.csproj", "{4928FC37-15EC-4872-8514-EA4ADCC4139D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProductionUiCordonel.UnitTests", "Production\ProductionUiCordonel.UnitTests\ProductionUiCordonel.UnitTests.csproj", "{48DA0272-9B14-4CC8-976F-A91E42DE4680}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MockGenesis", "MockGenesis", "{A6B3AB5A-A567-4C77-80FB-1E1E19A00713}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MockGenesis", "Hardware\WaterMeter\Genesis\MockGenesis\MockGenesis.csproj", "{D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommonConsole", "CommonConsole\CommonConsole.csproj", "{AFC428F5-0141-4A3F-BEF2-470A89D972F6}" EndProject Global - GlobalSection(SharedMSBuildProjectFiles) = preSolution - Utils\DateTimeServerShared\DateTimeServerShared.projitems*{4806d89a-fbfb-41bc-aaa7-2242444bf55a}*SharedItemsImports = 4 - EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution _MANUAL_CONTROL|Any CPU = _MANUAL_CONTROL|Any CPU _MANUAL_CONTROL|Mixed Platforms = _MANUAL_CONTROL|Mixed Platforms @@ -544,8 +676,8 @@ Global {42E9198C-ED2C-4BC8-B0A1-55D91D8F1E90}.Debug|Any CPU.Build.0 = Debug|Any CPU {42E9198C-ED2C-4BC8-B0A1-55D91D8F1E90}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {42E9198C-ED2C-4BC8-B0A1-55D91D8F1E90}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {42E9198C-ED2C-4BC8-B0A1-55D91D8F1E90}.Debug|x64.ActiveCfg = Debug|Any CPU - {42E9198C-ED2C-4BC8-B0A1-55D91D8F1E90}.Debug|x64.Build.0 = Debug|Any CPU + {42E9198C-ED2C-4BC8-B0A1-55D91D8F1E90}.Debug|x64.ActiveCfg = Debug|x64 + {42E9198C-ED2C-4BC8-B0A1-55D91D8F1E90}.Debug|x64.Build.0 = Debug|x64 {42E9198C-ED2C-4BC8-B0A1-55D91D8F1E90}.Debug|x86.ActiveCfg = Debug|Any CPU {42E9198C-ED2C-4BC8-B0A1-55D91D8F1E90}.Debug|x86.Build.0 = Debug|Any CPU {42E9198C-ED2C-4BC8-B0A1-55D91D8F1E90}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = PerformTest|Any CPU @@ -608,8 +740,8 @@ Global {494AB06C-10C4-43F8-BC8A-92088EB35867}.Debug|Any CPU.Build.0 = Debug|Any CPU {494AB06C-10C4-43F8-BC8A-92088EB35867}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {494AB06C-10C4-43F8-BC8A-92088EB35867}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {494AB06C-10C4-43F8-BC8A-92088EB35867}.Debug|x64.ActiveCfg = Debug|Any CPU - {494AB06C-10C4-43F8-BC8A-92088EB35867}.Debug|x64.Build.0 = Debug|Any CPU + {494AB06C-10C4-43F8-BC8A-92088EB35867}.Debug|x64.ActiveCfg = Debug|x64 + {494AB06C-10C4-43F8-BC8A-92088EB35867}.Debug|x64.Build.0 = Debug|x64 {494AB06C-10C4-43F8-BC8A-92088EB35867}.Debug|x86.ActiveCfg = Debug|Any CPU {494AB06C-10C4-43F8-BC8A-92088EB35867}.Debug|x86.Build.0 = Debug|Any CPU {494AB06C-10C4-43F8-BC8A-92088EB35867}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = PerformTest|Any CPU @@ -800,8 +932,8 @@ Global {95A50087-99EE-4349-9A17-C547290DB42F}.Debug|Any CPU.Build.0 = Debug|Any CPU {95A50087-99EE-4349-9A17-C547290DB42F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {95A50087-99EE-4349-9A17-C547290DB42F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {95A50087-99EE-4349-9A17-C547290DB42F}.Debug|x64.ActiveCfg = Debug|Any CPU - {95A50087-99EE-4349-9A17-C547290DB42F}.Debug|x64.Build.0 = Debug|Any CPU + {95A50087-99EE-4349-9A17-C547290DB42F}.Debug|x64.ActiveCfg = Debug|x64 + {95A50087-99EE-4349-9A17-C547290DB42F}.Debug|x64.Build.0 = Debug|x64 {95A50087-99EE-4349-9A17-C547290DB42F}.Debug|x86.ActiveCfg = Debug|Any CPU {95A50087-99EE-4349-9A17-C547290DB42F}.Debug|x86.Build.0 = Debug|Any CPU {95A50087-99EE-4349-9A17-C547290DB42F}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = PerformTest|Any CPU @@ -1437,8 +1569,8 @@ Global {63E0AC5E-B7C8-4363-A2FE-BE489E648FF0}.Debug|Any CPU.Build.0 = Debug|Any CPU {63E0AC5E-B7C8-4363-A2FE-BE489E648FF0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {63E0AC5E-B7C8-4363-A2FE-BE489E648FF0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {63E0AC5E-B7C8-4363-A2FE-BE489E648FF0}.Debug|x64.ActiveCfg = Debug|Any CPU - {63E0AC5E-B7C8-4363-A2FE-BE489E648FF0}.Debug|x64.Build.0 = Debug|Any CPU + {63E0AC5E-B7C8-4363-A2FE-BE489E648FF0}.Debug|x64.ActiveCfg = Debug|x64 + {63E0AC5E-B7C8-4363-A2FE-BE489E648FF0}.Debug|x64.Build.0 = Debug|x64 {63E0AC5E-B7C8-4363-A2FE-BE489E648FF0}.Debug|x86.ActiveCfg = Debug|Any CPU {63E0AC5E-B7C8-4363-A2FE-BE489E648FF0}.Debug|x86.Build.0 = Debug|Any CPU {63E0AC5E-B7C8-4363-A2FE-BE489E648FF0}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = PerformTest|Any CPU @@ -1947,8 +2079,8 @@ Global {26AFCF1E-1287-48B8-A506-32B1E8A0DD0E}.Debug|Any CPU.Build.0 = Debug|Any CPU {26AFCF1E-1287-48B8-A506-32B1E8A0DD0E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {26AFCF1E-1287-48B8-A506-32B1E8A0DD0E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {26AFCF1E-1287-48B8-A506-32B1E8A0DD0E}.Debug|x64.ActiveCfg = Debug|Any CPU - {26AFCF1E-1287-48B8-A506-32B1E8A0DD0E}.Debug|x64.Build.0 = Debug|Any CPU + {26AFCF1E-1287-48B8-A506-32B1E8A0DD0E}.Debug|x64.ActiveCfg = Debug|x64 + {26AFCF1E-1287-48B8-A506-32B1E8A0DD0E}.Debug|x64.Build.0 = Debug|x64 {26AFCF1E-1287-48B8-A506-32B1E8A0DD0E}.Debug|x86.ActiveCfg = Debug|Any CPU {26AFCF1E-1287-48B8-A506-32B1E8A0DD0E}.Debug|x86.Build.0 = Debug|Any CPU {26AFCF1E-1287-48B8-A506-32B1E8A0DD0E}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU @@ -2203,8 +2335,8 @@ Global {315E94B8-B82F-4B25-B5BD-297DF3BC1D54}.Debug|Any CPU.Build.0 = Debug|Any CPU {315E94B8-B82F-4B25-B5BD-297DF3BC1D54}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {315E94B8-B82F-4B25-B5BD-297DF3BC1D54}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {315E94B8-B82F-4B25-B5BD-297DF3BC1D54}.Debug|x64.ActiveCfg = Debug|Any CPU - {315E94B8-B82F-4B25-B5BD-297DF3BC1D54}.Debug|x64.Build.0 = Debug|Any CPU + {315E94B8-B82F-4B25-B5BD-297DF3BC1D54}.Debug|x64.ActiveCfg = Debug|x64 + {315E94B8-B82F-4B25-B5BD-297DF3BC1D54}.Debug|x64.Build.0 = Debug|x64 {315E94B8-B82F-4B25-B5BD-297DF3BC1D54}.Debug|x86.ActiveCfg = Debug|Any CPU {315E94B8-B82F-4B25-B5BD-297DF3BC1D54}.Debug|x86.Build.0 = Debug|Any CPU {315E94B8-B82F-4B25-B5BD-297DF3BC1D54}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU @@ -2523,8 +2655,8 @@ Global {20F137FD-C25E-42B7-A68F-58C746475897}.Debug|Any CPU.Build.0 = Debug|Any CPU {20F137FD-C25E-42B7-A68F-58C746475897}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {20F137FD-C25E-42B7-A68F-58C746475897}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {20F137FD-C25E-42B7-A68F-58C746475897}.Debug|x64.ActiveCfg = Debug|Any CPU - {20F137FD-C25E-42B7-A68F-58C746475897}.Debug|x64.Build.0 = Debug|Any CPU + {20F137FD-C25E-42B7-A68F-58C746475897}.Debug|x64.ActiveCfg = Debug|x64 + {20F137FD-C25E-42B7-A68F-58C746475897}.Debug|x64.Build.0 = Debug|x64 {20F137FD-C25E-42B7-A68F-58C746475897}.Debug|x86.ActiveCfg = Debug|Any CPU {20F137FD-C25E-42B7-A68F-58C746475897}.Debug|x86.Build.0 = Debug|Any CPU {20F137FD-C25E-42B7-A68F-58C746475897}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU @@ -2587,8 +2719,8 @@ Global {8A619CD5-6C8D-420C-A132-7946C6F13E6E}.Debug|Any CPU.Build.0 = Debug|Any CPU {8A619CD5-6C8D-420C-A132-7946C6F13E6E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {8A619CD5-6C8D-420C-A132-7946C6F13E6E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {8A619CD5-6C8D-420C-A132-7946C6F13E6E}.Debug|x64.ActiveCfg = Debug|Any CPU - {8A619CD5-6C8D-420C-A132-7946C6F13E6E}.Debug|x64.Build.0 = Debug|Any CPU + {8A619CD5-6C8D-420C-A132-7946C6F13E6E}.Debug|x64.ActiveCfg = Debug|x64 + {8A619CD5-6C8D-420C-A132-7946C6F13E6E}.Debug|x64.Build.0 = Debug|x64 {8A619CD5-6C8D-420C-A132-7946C6F13E6E}.Debug|x86.ActiveCfg = Debug|Any CPU {8A619CD5-6C8D-420C-A132-7946C6F13E6E}.Debug|x86.Build.0 = Debug|Any CPU {8A619CD5-6C8D-420C-A132-7946C6F13E6E}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Debug|Any CPU @@ -2651,8 +2783,8 @@ Global {94CA71F3-C5D7-4EC6-BA47-FA8EEA3C9406}.Debug|Any CPU.Build.0 = Debug|Any CPU {94CA71F3-C5D7-4EC6-BA47-FA8EEA3C9406}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {94CA71F3-C5D7-4EC6-BA47-FA8EEA3C9406}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {94CA71F3-C5D7-4EC6-BA47-FA8EEA3C9406}.Debug|x64.ActiveCfg = Debug|Any CPU - {94CA71F3-C5D7-4EC6-BA47-FA8EEA3C9406}.Debug|x64.Build.0 = Debug|Any CPU + {94CA71F3-C5D7-4EC6-BA47-FA8EEA3C9406}.Debug|x64.ActiveCfg = Debug|x64 + {94CA71F3-C5D7-4EC6-BA47-FA8EEA3C9406}.Debug|x64.Build.0 = Debug|x64 {94CA71F3-C5D7-4EC6-BA47-FA8EEA3C9406}.Debug|x86.ActiveCfg = Debug|Any CPU {94CA71F3-C5D7-4EC6-BA47-FA8EEA3C9406}.Debug|x86.Build.0 = Debug|Any CPU {94CA71F3-C5D7-4EC6-BA47-FA8EEA3C9406}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU @@ -2971,8 +3103,8 @@ Global {70BF5094-0F03-41FC-B0BD-BEFCF51686C9}.Debug|Any CPU.Build.0 = Debug|Any CPU {70BF5094-0F03-41FC-B0BD-BEFCF51686C9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {70BF5094-0F03-41FC-B0BD-BEFCF51686C9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {70BF5094-0F03-41FC-B0BD-BEFCF51686C9}.Debug|x64.ActiveCfg = Debug|Any CPU - {70BF5094-0F03-41FC-B0BD-BEFCF51686C9}.Debug|x64.Build.0 = Debug|Any CPU + {70BF5094-0F03-41FC-B0BD-BEFCF51686C9}.Debug|x64.ActiveCfg = Debug|x64 + {70BF5094-0F03-41FC-B0BD-BEFCF51686C9}.Debug|x64.Build.0 = Debug|x64 {70BF5094-0F03-41FC-B0BD-BEFCF51686C9}.Debug|x86.ActiveCfg = Debug|Any CPU {70BF5094-0F03-41FC-B0BD-BEFCF51686C9}.Debug|x86.Build.0 = Debug|Any CPU {70BF5094-0F03-41FC-B0BD-BEFCF51686C9}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU @@ -3099,8 +3231,8 @@ Global {62E5BA37-36AB-4F0A-BC12-554E7A1F1A39}.Debug|Any CPU.Build.0 = Debug|Any CPU {62E5BA37-36AB-4F0A-BC12-554E7A1F1A39}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {62E5BA37-36AB-4F0A-BC12-554E7A1F1A39}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {62E5BA37-36AB-4F0A-BC12-554E7A1F1A39}.Debug|x64.ActiveCfg = Debug|Any CPU - {62E5BA37-36AB-4F0A-BC12-554E7A1F1A39}.Debug|x64.Build.0 = Debug|Any CPU + {62E5BA37-36AB-4F0A-BC12-554E7A1F1A39}.Debug|x64.ActiveCfg = Debug|x64 + {62E5BA37-36AB-4F0A-BC12-554E7A1F1A39}.Debug|x64.Build.0 = Debug|x64 {62E5BA37-36AB-4F0A-BC12-554E7A1F1A39}.Debug|x86.ActiveCfg = Debug|Any CPU {62E5BA37-36AB-4F0A-BC12-554E7A1F1A39}.Debug|x86.Build.0 = Debug|Any CPU {62E5BA37-36AB-4F0A-BC12-554E7A1F1A39}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU @@ -3847,134 +3979,6 @@ Global {FD30EB7A-7809-4E62-9374-791D31877D6D}.XP32bit|x64.Build.0 = Release|Any CPU {FD30EB7A-7809-4E62-9374-791D31877D6D}.XP32bit|x86.ActiveCfg = Release|Any CPU {FD30EB7A-7809-4E62-9374-791D31877D6D}.XP32bit|x86.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|Any CPU.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|Any CPU.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|x64.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|x64.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|x86.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|x86.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|Any CPU.ActiveCfg = qweerqwer|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|Any CPU.Build.0 = qweerqwer|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|x64.ActiveCfg = Debug|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|x64.Build.0 = Debug|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|x86.ActiveCfg = Debug|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|x86.Build.0 = Debug|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|x64.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|x64.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|x86.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|x86.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|Any CPU.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|x64.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|x64.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|x86.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|x86.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|x64.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|x86.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|x64.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|x64.Build.0 = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|x86.ActiveCfg = Release|Any CPU - {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|x86.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.COM|Any CPU.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.COM|Any CPU.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.COM|x64.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.COM|x64.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.COM|x86.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.COM|x86.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Debug|x64.ActiveCfg = Debug|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Debug|x64.Build.0 = Debug|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Debug|x86.ActiveCfg = Debug|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Debug|x86.Build.0 = Debug|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.PerformTest|x64.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.PerformTest|x64.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.PerformTest|x86.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.PerformTest|x86.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Release|Any CPU.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Release|x64.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Release|x64.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Release|x86.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.Release|x86.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.ReleaseTest|x64.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.ReleaseTest|x86.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.XP32bit|x64.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.XP32bit|x64.Build.0 = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.XP32bit|x86.ActiveCfg = Release|Any CPU - {F14940F8-3C86-4BB7-A915-B021E4B3052D}.XP32bit|x86.Build.0 = Release|Any CPU {F8D84B9A-0FCF-4083-B067-8C39B7314152}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU {F8D84B9A-0FCF-4083-B067-8C39B7314152}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU {F8D84B9A-0FCF-4083-B067-8C39B7314152}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU @@ -4743,582 +4747,6 @@ Global {41E949AD-FBF6-47A3-AC1D-7E17AB7F1252}.XP32bit|x64.Build.0 = Release|Any CPU {41E949AD-FBF6-47A3-AC1D-7E17AB7F1252}.XP32bit|x86.ActiveCfg = Release|Any CPU {41E949AD-FBF6-47A3-AC1D-7E17AB7F1252}.XP32bit|x86.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.COM|Any CPU.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.COM|Any CPU.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.COM|x64.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.COM|x64.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.COM|x86.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.COM|x86.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Debug|x64.ActiveCfg = Debug|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Debug|x64.Build.0 = Debug|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Debug|x86.ActiveCfg = Debug|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Debug|x86.Build.0 = Debug|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.PerformTest|x64.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.PerformTest|x64.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.PerformTest|x86.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.PerformTest|x86.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Release|Any CPU.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Release|x64.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Release|x64.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Release|x86.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.Release|x86.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.ReleaseTest|x64.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.ReleaseTest|x86.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.XP32bit|x64.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.XP32bit|x64.Build.0 = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.XP32bit|x86.ActiveCfg = Release|Any CPU - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6}.XP32bit|x86.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.COM|Any CPU.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.COM|Any CPU.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.COM|x64.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.COM|x64.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.COM|x86.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.COM|x86.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Debug|x64.ActiveCfg = Debug|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Debug|x64.Build.0 = Debug|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Debug|x86.ActiveCfg = Debug|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Debug|x86.Build.0 = Debug|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.PerformTest|x64.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.PerformTest|x64.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.PerformTest|x86.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.PerformTest|x86.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Release|Any CPU.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Release|x64.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Release|x64.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Release|x86.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.Release|x86.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.ReleaseTest|x64.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.ReleaseTest|x86.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.XP32bit|x64.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.XP32bit|x64.Build.0 = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.XP32bit|x86.ActiveCfg = Release|Any CPU - {8D3B1C46-B23E-46CC-9B59-24E34DE60510}.XP32bit|x86.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.COM|Any CPU.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.COM|Any CPU.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.COM|x64.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.COM|x64.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.COM|x86.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.COM|x86.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Debug|x64.ActiveCfg = Debug|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Debug|x64.Build.0 = Debug|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Debug|x86.ActiveCfg = Debug|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Debug|x86.Build.0 = Debug|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.PerformTest|x64.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.PerformTest|x64.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.PerformTest|x86.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.PerformTest|x86.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Release|Any CPU.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Release|x64.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Release|x64.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Release|x86.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.Release|x86.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.ReleaseTest|x64.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.ReleaseTest|x86.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.XP32bit|x64.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.XP32bit|x64.Build.0 = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.XP32bit|x86.ActiveCfg = Release|Any CPU - {9C1C5522-E986-4FD6-8F2F-19821D704A88}.XP32bit|x86.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.COM|Any CPU.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.COM|Any CPU.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.COM|x64.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.COM|x64.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.COM|x86.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.COM|x86.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Debug|x64.ActiveCfg = Debug|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Debug|x64.Build.0 = Debug|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Debug|x86.ActiveCfg = Debug|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Debug|x86.Build.0 = Debug|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.PerformTest|x64.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.PerformTest|x64.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.PerformTest|x86.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.PerformTest|x86.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Release|Any CPU.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Release|x64.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Release|x64.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Release|x86.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.Release|x86.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.ReleaseTest|x64.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.ReleaseTest|x86.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.XP32bit|x64.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.XP32bit|x64.Build.0 = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.XP32bit|x86.ActiveCfg = Release|Any CPU - {9D89FA2A-1217-4CE9-B217-E7602B974EA9}.XP32bit|x86.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.COM|Any CPU.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.COM|Any CPU.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.COM|x64.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.COM|x64.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.COM|x86.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.COM|x86.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Debug|x64.ActiveCfg = Debug|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Debug|x64.Build.0 = Debug|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Debug|x86.ActiveCfg = Debug|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Debug|x86.Build.0 = Debug|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.PerformTest|x64.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.PerformTest|x64.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.PerformTest|x86.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.PerformTest|x86.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Release|Any CPU.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Release|x64.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Release|x64.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Release|x86.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.Release|x86.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.ReleaseTest|x64.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.ReleaseTest|x86.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.XP32bit|x64.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.XP32bit|x64.Build.0 = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.XP32bit|x86.ActiveCfg = Release|Any CPU - {6480CC2A-AB54-4A26-8413-D5141431C080}.XP32bit|x86.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.COM|Any CPU.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.COM|Any CPU.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.COM|x64.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.COM|x64.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.COM|x86.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.COM|x86.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Debug|x64.ActiveCfg = Debug|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Debug|x64.Build.0 = Debug|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Debug|x86.ActiveCfg = Debug|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Debug|x86.Build.0 = Debug|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.PerformTest|x64.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.PerformTest|x64.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.PerformTest|x86.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.PerformTest|x86.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Release|Any CPU.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Release|x64.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Release|x64.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Release|x86.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.Release|x86.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.ReleaseTest|x64.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.ReleaseTest|x86.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.XP32bit|x64.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.XP32bit|x64.Build.0 = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.XP32bit|x86.ActiveCfg = Release|Any CPU - {62490923-CD17-45A6-B79F-A027927C75B5}.XP32bit|x86.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.COM|Any CPU.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.COM|Any CPU.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.COM|x64.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.COM|x64.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.COM|x86.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.COM|x86.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Debug|x64.ActiveCfg = Debug|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Debug|x64.Build.0 = Debug|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Debug|x86.ActiveCfg = Debug|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Debug|x86.Build.0 = Debug|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.PerformTest|x64.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.PerformTest|x64.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.PerformTest|x86.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.PerformTest|x86.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Release|Any CPU.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Release|x64.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Release|x64.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Release|x86.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.Release|x86.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.ReleaseTest|x64.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.ReleaseTest|x86.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.XP32bit|x64.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.XP32bit|x64.Build.0 = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.XP32bit|x86.ActiveCfg = Release|Any CPU - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7}.XP32bit|x86.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.COM|Any CPU.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.COM|Any CPU.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.COM|x64.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.COM|x64.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.COM|x86.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.COM|x86.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Debug|x64.ActiveCfg = Debug|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Debug|x64.Build.0 = Debug|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Debug|x86.ActiveCfg = Debug|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Debug|x86.Build.0 = Debug|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.PerformTest|x64.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.PerformTest|x64.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.PerformTest|x86.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.PerformTest|x86.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Release|Any CPU.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Release|x64.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Release|x64.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Release|x86.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.Release|x86.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.ReleaseTest|x64.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.ReleaseTest|x86.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.XP32bit|x64.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.XP32bit|x64.Build.0 = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.XP32bit|x86.ActiveCfg = Release|Any CPU - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD}.XP32bit|x86.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.COM|Any CPU.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.COM|Any CPU.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.COM|x64.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.COM|x64.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.COM|x86.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.COM|x86.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Debug|x64.ActiveCfg = Debug|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Debug|x64.Build.0 = Debug|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Debug|x86.ActiveCfg = Debug|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Debug|x86.Build.0 = Debug|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.PerformTest|x64.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.PerformTest|x64.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.PerformTest|x86.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.PerformTest|x86.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Release|Any CPU.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Release|x64.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Release|x64.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Release|x86.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.Release|x86.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.ReleaseTest|x64.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.ReleaseTest|x86.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.XP32bit|x64.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.XP32bit|x64.Build.0 = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.XP32bit|x86.ActiveCfg = Release|Any CPU - {E19C1694-132E-477C-86CB-8E146D5F59B0}.XP32bit|x86.Build.0 = Release|Any CPU {28FD69D1-B2DA-485D-9571-711BF3917350}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU {28FD69D1-B2DA-485D-9571-711BF3917350}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU {28FD69D1-B2DA-485D-9571-711BF3917350}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU @@ -5447,134 +4875,902 @@ Global {4E8BB839-D40A-488C-88CE-F21811F1F476}.XP32bit|x64.Build.0 = Release|Any CPU {4E8BB839-D40A-488C-88CE-F21811F1F476}.XP32bit|x86.ActiveCfg = Release|Any CPU {4E8BB839-D40A-488C-88CE-F21811F1F476}.XP32bit|x86.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.COM|Any CPU.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.COM|Any CPU.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.COM|x64.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.COM|x64.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.COM|x86.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.COM|x86.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Debug|x64.ActiveCfg = Debug|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Debug|x64.Build.0 = Debug|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Debug|x86.ActiveCfg = Debug|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Debug|x86.Build.0 = Debug|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.PerformTest|x64.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.PerformTest|x64.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.PerformTest|x86.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.PerformTest|x86.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Release|Any CPU.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Release|x64.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Release|x64.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Release|x86.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.Release|x86.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.ReleaseTest|x64.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.ReleaseTest|x86.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.XP32bit|x64.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.XP32bit|x64.Build.0 = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.XP32bit|x86.ActiveCfg = Release|Any CPU - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3}.XP32bit|x86.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.COM|Any CPU.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.COM|Any CPU.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.COM|x64.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.COM|x64.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.COM|x86.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.COM|x86.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Debug|x64.ActiveCfg = Debug|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Debug|x64.Build.0 = Debug|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Debug|x86.ActiveCfg = Debug|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Debug|x86.Build.0 = Debug|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.PerformTest|x64.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.PerformTest|x64.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.PerformTest|x86.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.PerformTest|x86.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Release|Any CPU.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Release|x64.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Release|x64.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Release|x86.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.Release|x86.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.ReleaseTest|x64.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.ReleaseTest|x86.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.XP32bit|x64.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.XP32bit|x64.Build.0 = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.XP32bit|x86.ActiveCfg = Release|Any CPU - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD}.XP32bit|x86.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.COM|Any CPU.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.COM|Any CPU.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.COM|x64.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.COM|x64.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.COM|x86.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.COM|x86.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Debug|x64.ActiveCfg = Debug|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Debug|x64.Build.0 = Debug|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Debug|x86.ActiveCfg = Debug|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Debug|x86.Build.0 = Debug|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.PerformTest|x64.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.PerformTest|x64.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.PerformTest|x86.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.PerformTest|x86.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Release|Any CPU.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Release|x64.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Release|x64.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Release|x86.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.Release|x86.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.ReleaseTest|x64.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.ReleaseTest|x86.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.XP32bit|x64.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.XP32bit|x64.Build.0 = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.XP32bit|x86.ActiveCfg = Release|Any CPU + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC}.XP32bit|x86.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.COM|Any CPU.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.COM|Any CPU.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.COM|x64.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.COM|x64.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.COM|x86.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.COM|x86.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Debug|x64.ActiveCfg = Debug|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Debug|x64.Build.0 = Debug|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Debug|x86.ActiveCfg = Debug|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Debug|x86.Build.0 = Debug|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.PerformTest|x64.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.PerformTest|x64.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.PerformTest|x86.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.PerformTest|x86.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Release|Any CPU.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Release|x64.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Release|x64.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Release|x86.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.Release|x86.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.ReleaseTest|x64.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.ReleaseTest|x86.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.XP32bit|x64.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.XP32bit|x64.Build.0 = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.XP32bit|x86.ActiveCfg = Release|Any CPU + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA}.XP32bit|x86.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.COM|Any CPU.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.COM|Any CPU.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.COM|x64.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.COM|x64.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.COM|x86.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.COM|x86.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Debug|x64.ActiveCfg = Debug|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Debug|x64.Build.0 = Debug|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Debug|x86.ActiveCfg = Debug|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Debug|x86.Build.0 = Debug|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.PerformTest|x64.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.PerformTest|x64.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.PerformTest|x86.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.PerformTest|x86.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Release|Any CPU.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Release|x64.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Release|x64.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Release|x86.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.Release|x86.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.ReleaseTest|x64.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.ReleaseTest|x86.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.XP32bit|x64.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.XP32bit|x64.Build.0 = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.XP32bit|x86.ActiveCfg = Release|Any CPU + {F90B940C-9A83-496D-AAE0-11CD02CE0A22}.XP32bit|x86.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.COM|Any CPU.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.COM|Any CPU.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.COM|x64.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.COM|x64.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.COM|x86.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.COM|x86.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Debug|x64.ActiveCfg = Debug|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Debug|x64.Build.0 = Debug|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Debug|x86.ActiveCfg = Debug|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Debug|x86.Build.0 = Debug|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.PerformTest|x64.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.PerformTest|x64.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.PerformTest|x86.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.PerformTest|x86.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Release|Any CPU.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Release|x64.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Release|x64.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Release|x86.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.Release|x86.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.ReleaseTest|x64.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.ReleaseTest|x86.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.XP32bit|x64.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.XP32bit|x64.Build.0 = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.XP32bit|x86.ActiveCfg = Release|Any CPU + {C9816412-7752-4F7A-8BD2-765DB6D58B3C}.XP32bit|x86.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.COM|Any CPU.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.COM|Any CPU.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.COM|x64.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.COM|x64.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.COM|x86.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.COM|x86.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Debug|x64.ActiveCfg = Debug|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Debug|x64.Build.0 = Debug|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Debug|x86.ActiveCfg = Debug|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Debug|x86.Build.0 = Debug|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.PerformTest|x64.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.PerformTest|x64.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.PerformTest|x86.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.PerformTest|x86.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Release|Any CPU.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Release|x64.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Release|x64.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Release|x86.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.Release|x86.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.ReleaseTest|x64.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.ReleaseTest|x86.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.XP32bit|x64.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.XP32bit|x64.Build.0 = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.XP32bit|x86.ActiveCfg = Release|Any CPU + {F69A79FA-548D-4E21-887E-01FABDAD9E73}.XP32bit|x86.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.COM|Any CPU.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.COM|Any CPU.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.COM|x64.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.COM|x64.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.COM|x86.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.COM|x86.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Debug|x64.ActiveCfg = Debug|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Debug|x64.Build.0 = Debug|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Debug|x86.ActiveCfg = Debug|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Debug|x86.Build.0 = Debug|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.PerformTest|x64.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.PerformTest|x64.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.PerformTest|x86.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.PerformTest|x86.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Release|Any CPU.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Release|x64.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Release|x64.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Release|x86.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.Release|x86.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.ReleaseTest|x64.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.ReleaseTest|x86.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.XP32bit|x64.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.XP32bit|x64.Build.0 = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.XP32bit|x86.ActiveCfg = Release|Any CPU + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB}.XP32bit|x86.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.COM|Any CPU.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.COM|Any CPU.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.COM|x64.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.COM|x64.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.COM|x86.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.COM|x86.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Debug|x64.ActiveCfg = Debug|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Debug|x64.Build.0 = Debug|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Debug|x86.ActiveCfg = Debug|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Debug|x86.Build.0 = Debug|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.PerformTest|x64.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.PerformTest|x64.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.PerformTest|x86.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.PerformTest|x86.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Release|Any CPU.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Release|x64.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Release|x64.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Release|x86.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.Release|x86.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.ReleaseTest|x64.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.ReleaseTest|x86.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.XP32bit|x64.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.XP32bit|x64.Build.0 = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.XP32bit|x86.ActiveCfg = Release|Any CPU + {15A06398-ECB6-49C9-ACB4-52A495A886A6}.XP32bit|x86.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.COM|Any CPU.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.COM|Any CPU.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.COM|x64.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.COM|x64.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.COM|x86.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.COM|x86.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Debug|x64.ActiveCfg = Debug|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Debug|x64.Build.0 = Debug|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Debug|x86.ActiveCfg = Debug|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Debug|x86.Build.0 = Debug|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.PerformTest|x64.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.PerformTest|x64.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.PerformTest|x86.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.PerformTest|x86.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Release|Any CPU.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Release|x64.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Release|x64.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Release|x86.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.Release|x86.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.ReleaseTest|x64.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.ReleaseTest|x86.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.XP32bit|x64.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.XP32bit|x64.Build.0 = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.XP32bit|x86.ActiveCfg = Release|Any CPU + {DA65E376-3D35-4D96-913A-7197FCA6DF48}.XP32bit|x86.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.COM|Any CPU.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.COM|Any CPU.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.COM|x64.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.COM|x64.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.COM|x86.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.COM|x86.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Debug|x64.ActiveCfg = Debug|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Debug|x64.Build.0 = Debug|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Debug|x86.ActiveCfg = Debug|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Debug|x86.Build.0 = Debug|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.PerformTest|x64.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.PerformTest|x64.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.PerformTest|x86.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.PerformTest|x86.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Release|Any CPU.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Release|x64.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Release|x64.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Release|x86.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.Release|x86.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.ReleaseTest|x64.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.ReleaseTest|x86.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.XP32bit|x64.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.XP32bit|x64.Build.0 = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.XP32bit|x86.ActiveCfg = Release|Any CPU + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90}.XP32bit|x86.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.COM|Any CPU.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.COM|Any CPU.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.COM|x64.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.COM|x64.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.COM|x86.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.COM|x86.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Debug|x64.ActiveCfg = Debug|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Debug|x64.Build.0 = Debug|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Debug|x86.ActiveCfg = Debug|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Debug|x86.Build.0 = Debug|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.PerformTest|x64.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.PerformTest|x64.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.PerformTest|x86.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.PerformTest|x86.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Release|Any CPU.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Release|x64.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Release|x64.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Release|x86.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.Release|x86.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.ReleaseTest|x64.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.ReleaseTest|x86.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.XP32bit|x64.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.XP32bit|x64.Build.0 = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.XP32bit|x86.ActiveCfg = Release|Any CPU + {30BF7357-0B6C-498D-8123-5AACC66B3E5F}.XP32bit|x86.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}._MANUAL_CONTROL|x64.ActiveCfg = Release|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}._MANUAL_CONTROL|x64.Build.0 = Release|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.COM|Any CPU.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.COM|Any CPU.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.COM|x64.ActiveCfg = Release|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.COM|x64.Build.0 = Release|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.COM|x86.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.COM|x86.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Debug|x64.ActiveCfg = Debug|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Debug|x64.Build.0 = Debug|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Debug|x86.ActiveCfg = Debug|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Debug|x86.Build.0 = Debug|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.GenesisDisplayTool_V01|x64.Build.0 = Release|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.PerformTest|x64.ActiveCfg = Release|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.PerformTest|x64.Build.0 = Release|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.PerformTest|x86.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.PerformTest|x86.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Release|Any CPU.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Release|x64.ActiveCfg = Release|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Release|x64.Build.0 = Release|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Release|x86.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.Release|x86.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.ReleaseTest|x64.ActiveCfg = Release|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.ReleaseTest|x64.Build.0 = Release|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.ReleaseTest|x86.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.XP32bit|x64.ActiveCfg = Release|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.XP32bit|x64.Build.0 = Release|x64 + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.XP32bit|x86.ActiveCfg = Release|Any CPU + {4928FC37-15EC-4872-8514-EA4ADCC4139D}.XP32bit|x86.Build.0 = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}._MANUAL_CONTROL|Any CPU.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}._MANUAL_CONTROL|Any CPU.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}._MANUAL_CONTROL|x64.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}._MANUAL_CONTROL|x64.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}._MANUAL_CONTROL|x86.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}._MANUAL_CONTROL|x86.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.COM|Any CPU.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.COM|Any CPU.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.COM|Mixed Platforms.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.COM|Mixed Platforms.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.COM|x64.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.COM|x64.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.COM|x86.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.COM|x86.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Debug|Any CPU.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Debug|x64.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Debug|x64.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Debug|x86.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Debug|x86.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.GenesisDisplayTool_V01|Any CPU.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.GenesisDisplayTool_V01|x64.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.GenesisDisplayTool_V01|x64.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.GenesisDisplayTool_V01|x86.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.GenesisDisplayTool_V01|x86.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.PerformTest|Any CPU.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.PerformTest|Any CPU.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.PerformTest|Mixed Platforms.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.PerformTest|Mixed Platforms.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.PerformTest|x64.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.PerformTest|x64.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.PerformTest|x86.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.PerformTest|x86.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Release|Any CPU.ActiveCfg = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Release|Any CPU.Build.0 = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Release|x64.ActiveCfg = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Release|x64.Build.0 = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Release|x86.ActiveCfg = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.Release|x86.Build.0 = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.ReleaseTest|x64.Build.0 = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.ReleaseTest|x86.Build.0 = Release|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.XP32bit|Any CPU.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.XP32bit|Any CPU.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.XP32bit|Mixed Platforms.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.XP32bit|Mixed Platforms.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.XP32bit|x64.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.XP32bit|x64.Build.0 = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.XP32bit|x86.ActiveCfg = Debug|Any CPU + {48DA0272-9B14-4CC8-976F-A91E42DE4680}.XP32bit|x86.Build.0 = Debug|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.COM|Any CPU.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.COM|Any CPU.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.COM|x64.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.COM|x64.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.COM|x86.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.COM|x86.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Debug|x64.ActiveCfg = Debug|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Debug|x64.Build.0 = Debug|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Debug|x86.ActiveCfg = Debug|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Debug|x86.Build.0 = Debug|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.PerformTest|x64.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.PerformTest|x64.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.PerformTest|x86.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.PerformTest|x86.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Release|Any CPU.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Release|x64.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Release|x64.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Release|x86.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.Release|x86.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.ReleaseTest|x64.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.ReleaseTest|x86.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.XP32bit|x64.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.XP32bit|x64.Build.0 = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.XP32bit|x86.ActiveCfg = Release|Any CPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1}.XP32bit|x86.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|Any CPU.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|Any CPU.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|x64.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|x64.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|x86.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.COM|x86.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|x64.ActiveCfg = Debug|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|x64.Build.0 = Debug|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|x86.ActiveCfg = Debug|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Debug|x86.Build.0 = Debug|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|x64.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|x64.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|x86.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.PerformTest|x86.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|Any CPU.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|x64.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|x64.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|x86.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.Release|x86.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|x64.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.ReleaseTest|x86.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|x64.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|x64.Build.0 = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|x86.ActiveCfg = Release|Any CPU + {AFC428F5-0141-4A3F-BEF2-470A89D972F6}.XP32bit|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -5641,7 +5837,6 @@ Global {35726BCF-975C-4B49-BEFA-C00D90394F1D} = {696A94BE-7237-4AE2-9E36-6059DE519971} {C9393A97-C0BB-4D59-A879-B572BE04CE15} = {5563DD3B-2287-4BED-97BF-F0389FF505AF} {94579693-7AC6-4FF0-B540-1F3780E1BCFA} = {C9393A97-C0BB-4D59-A879-B572BE04CE15} - {B4F8545B-F379-42A5-BDE9-763FD7B79598} = {C9393A97-C0BB-4D59-A879-B572BE04CE15} {A5E7CE52-3101-4E9B-B896-C2C0FADE4812} = {03D4F23E-7E4A-4091-BC96-036C996D351A} {70398B99-B134-4BBD-968B-7399B70C3CE2} = {C9393A97-C0BB-4D59-A879-B572BE04CE15} {B5DA260C-71CC-45CA-B79E-D1B376AF718C} = {C9393A97-C0BB-4D59-A879-B572BE04CE15} @@ -5650,8 +5845,6 @@ Global {BA17D20E-0CEB-4B27-9772-2392BD750ED5} = {C9393A97-C0BB-4D59-A879-B572BE04CE15} {8BDD2789-96D4-43EA-AAD7-0F49D0347998} = {EC10DAFE-88CF-42D5-99E7-D247938B6430} {FD30EB7A-7809-4E62-9374-791D31877D6D} = {696A94BE-7237-4AE2-9E36-6059DE519971} - {AFC428F5-0141-4A3F-BEF2-470A89D972F6} = {C17363DF-A043-4F25-8EBA-2B3B078227DC} - {F14940F8-3C86-4BB7-A915-B021E4B3052D} = {B4F8545B-F379-42A5-BDE9-763FD7B79598} {F8D84B9A-0FCF-4083-B067-8C39B7314152} = {68323534-4337-4E3A-89BC-11D8BB55343A} {01A28A70-D5E6-4898-8C22-E64400A3B80F} = {68323534-4337-4E3A-89BC-11D8BB55343A} {4806D89A-FBFB-41BC-AAA7-2242444BF55A} = {FA3B769A-E83E-40F0-923A-DFA124AF0C2C} @@ -5665,24 +5858,74 @@ Global {8E1431E9-9B14-4BC2-8B65-47357C97B1FC} = {68323534-4337-4E3A-89BC-11D8BB55343A} {C6BFAC88-5647-4131-90B1-4D6265E08348} = {68323534-4337-4E3A-89BC-11D8BB55343A} {41E949AD-FBF6-47A3-AC1D-7E17AB7F1252} = {68323534-4337-4E3A-89BC-11D8BB55343A} - {9AE071C0-DB12-4E09-A3C7-43F6DCD518D6} = {B9444AB7-1EB1-484A-8DE6-4EEE03498CD7} - {8D3B1C46-B23E-46CC-9B59-24E34DE60510} = {03D4F23E-7E4A-4091-BC96-036C996D351A} - {9C1C5522-E986-4FD6-8F2F-19821D704A88} = {03D4F23E-7E4A-4091-BC96-036C996D351A} - {68A1B84B-B38F-4BD1-94A8-DB18600457FF} = {5563DD3B-2287-4BED-97BF-F0389FF505AF} - {9D89FA2A-1217-4CE9-B217-E7602B974EA9} = {68A1B84B-B38F-4BD1-94A8-DB18600457FF} - {6480CC2A-AB54-4A26-8413-D5141431C080} = {68A1B84B-B38F-4BD1-94A8-DB18600457FF} - {62490923-CD17-45A6-B79F-A027927C75B5} = {57AA2731-BFD9-40A5-820F-E943FBC75D91} - {57DDAE1E-FD6B-47E0-AD5E-8CCFAD07F1D7} = {57AA2731-BFD9-40A5-820F-E943FBC75D91} - {B23BFAF9-08AE-4311-8C08-FB2BB49EA2AD} = {B9444AB7-1EB1-484A-8DE6-4EEE03498CD7} - {E19C1694-132E-477C-86CB-8E146D5F59B0} = {43B54F41-6F09-4BCB-9F82-77621275831B} {28FD69D1-B2DA-485D-9571-711BF3917350} = {696A94BE-7237-4AE2-9E36-6059DE519971} {4E8BB839-D40A-488C-88CE-F21811F1F476} = {43B54F41-6F09-4BCB-9F82-77621275831B} - {05F0CCAF-9F2B-45F9-A7F8-12F29AD182F3} = {7A0EE7B8-6B7E-41E9-B679-319C8CA48CF1} - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD} = {43B54F41-6F09-4BCB-9F82-77621275831B} + {56768A27-D0E4-430E-8E75-AFC7319F189A} = {C9393A97-C0BB-4D59-A879-B572BE04CE15} + {E6081C0A-8452-44B4-8EB4-E0CAE9119830} = {56768A27-D0E4-430E-8E75-AFC7319F189A} + {8DE8E742-EE0A-4004-AA49-3D08D748E5AC} = {99B23EE9-CE50-4924-A055-C39EFA038721} + {FDE234FD-FF24-479F-B5CA-DFB74B4636DA} = {03D4F23E-7E4A-4091-BC96-036C996D351A} + {3332395B-122F-4DE5-A294-9DDAEA09F10C} = {68323534-4337-4E3A-89BC-11D8BB55343A} + {890AA5E6-C55A-4E35-9841-999FA24B5025} = {3332395B-122F-4DE5-A294-9DDAEA09F10C} + {E98D33EA-B918-442E-91E5-6073B6235BCB} = {68323534-4337-4E3A-89BC-11D8BB55343A} + {E4563F0A-BAF0-4867-86F8-002C58706D91} = {E98D33EA-B918-442E-91E5-6073B6235BCB} + {E67F6B4B-EE83-4645-B93C-A812F3972CAC} = {E4563F0A-BAF0-4867-86F8-002C58706D91} + {7E8683D6-960C-4119-8410-F1AD635C5DB0} = {E67F6B4B-EE83-4645-B93C-A812F3972CAC} + {5E122406-85AF-4A0D-AA32-CBB8E7303638} = {E4563F0A-BAF0-4867-86F8-002C58706D91} + {666A6463-81BF-4743-95C8-5665F0F241AD} = {5E122406-85AF-4A0D-AA32-CBB8E7303638} + {38F01931-D7C0-47DB-A8D5-30659BAC9FD0} = {666A6463-81BF-4743-95C8-5665F0F241AD} + {0BC64A60-EA33-4F63-BFDE-1FF4B3E64702} = {68323534-4337-4E3A-89BC-11D8BB55343A} + {284FF5BD-C6FF-4463-A48C-3897B1EB93D6} = {0BC64A60-EA33-4F63-BFDE-1FF4B3E64702} + {22F102C0-F8BA-4118-832C-F3F313C8158E} = {284FF5BD-C6FF-4463-A48C-3897B1EB93D6} + {251BD903-22A1-4CF7-A732-51146E8A6E03} = {0BC64A60-EA33-4F63-BFDE-1FF4B3E64702} + {5988A87F-1A59-4D2F-B29B-735161B3E166} = {251BD903-22A1-4CF7-A732-51146E8A6E03} + {D426F0CD-4CB0-48C9-B637-BC7E64C2D8CB} = {5988A87F-1A59-4D2F-B29B-735161B3E166} + {5ED7AC71-7DE1-457D-9B06-806BF5D74208} = {68323534-4337-4E3A-89BC-11D8BB55343A} + {1BF76053-7CFE-44A3-9734-7EAC68910FD9} = {5ED7AC71-7DE1-457D-9B06-806BF5D74208} + {3E2D93D8-A2B2-4A31-BF03-31FD4574FFBB} = {1BF76053-7CFE-44A3-9734-7EAC68910FD9} + {F9DAF734-AD0A-45A4-902D-4904824B0EC0} = {5ED7AC71-7DE1-457D-9B06-806BF5D74208} + {4A6B1A1E-8C99-4785-B9F6-D57DA585A4F8} = {F9DAF734-AD0A-45A4-902D-4904824B0EC0} + {DE91E5BF-D218-4C82-A677-D802D646BA31} = {4A6B1A1E-8C99-4785-B9F6-D57DA585A4F8} + {829C9518-1A10-488F-9987-A42D81D70AB6} = {68323534-4337-4E3A-89BC-11D8BB55343A} + {4EE95E2E-8465-46B4-9CB0-3D49A710D288} = {829C9518-1A10-488F-9987-A42D81D70AB6} + {FB21C23C-11A6-4A90-BE86-895B633A2F1F} = {4EE95E2E-8465-46B4-9CB0-3D49A710D288} + {1DBC9ABD-3B10-43B7-81BE-EBA149B204CA} = {829C9518-1A10-488F-9987-A42D81D70AB6} + {8B2361C9-E2E0-4C5B-866D-9E807BFDF250} = {1DBC9ABD-3B10-43B7-81BE-EBA149B204CA} + {A23A0945-FD09-47E4-936D-74A942287F8B} = {8B2361C9-E2E0-4C5B-866D-9E807BFDF250} + {864F51AD-8C3B-4B10-9028-866BEAB746EF} = {68323534-4337-4E3A-89BC-11D8BB55343A} + {7C6ECFCF-8606-461C-BF45-0E9A06105991} = {864F51AD-8C3B-4B10-9028-866BEAB746EF} + {4B22FCBD-25EE-4EF2-9047-B4612CD01627} = {7C6ECFCF-8606-461C-BF45-0E9A06105991} + {64F041ED-0A66-405B-9253-ECCF2EAFD857} = {864F51AD-8C3B-4B10-9028-866BEAB746EF} + {9A0113D8-6AA8-47CD-BFE9-ED2699648C3F} = {64F041ED-0A66-405B-9253-ECCF2EAFD857} + {409F6B28-CC28-423A-BE52-FE373525FF2E} = {9A0113D8-6AA8-47CD-BFE9-ED2699648C3F} + {8CA55CC7-45FA-41D3-8AD5-85E5F388D259} = {68323534-4337-4E3A-89BC-11D8BB55343A} + {9EF9B896-6705-421D-BA6C-CE3BBB4E385F} = {8CA55CC7-45FA-41D3-8AD5-85E5F388D259} + {88654695-4FC4-4443-A585-F933D431CD40} = {9EF9B896-6705-421D-BA6C-CE3BBB4E385F} + {A778164E-C265-4B13-82A1-FF227AC3D668} = {68323534-4337-4E3A-89BC-11D8BB55343A} + {19F9470D-C4C5-4CC8-ABAD-D081BBFE77BE} = {A778164E-C265-4B13-82A1-FF227AC3D668} + {A2C99C6E-3D79-4888-A914-CAB2D11E24A1} = {19F9470D-C4C5-4CC8-ABAD-D081BBFE77BE} + {B2EAC69C-22C9-41D5-987B-5E1F435C0CBC} = {A778164E-C265-4B13-82A1-FF227AC3D668} + {7C77A79B-646C-4CF8-AD1C-930E0B059829} = {B2EAC69C-22C9-41D5-987B-5E1F435C0CBC} + {91CA9896-2288-4967-8991-AC49A77B6058} = {7C77A79B-646C-4CF8-AD1C-930E0B059829} + {F90B940C-9A83-496D-AAE0-11CD02CE0A22} = {2E31C385-4FFC-473E-9C00-D7DC48140704} + {C9816412-7752-4F7A-8BD2-765DB6D58B3C} = {2E31C385-4FFC-473E-9C00-D7DC48140704} + {F69A79FA-548D-4E21-887E-01FABDAD9E73} = {696A94BE-7237-4AE2-9E36-6059DE519971} + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB} = {2E31C385-4FFC-473E-9C00-D7DC48140704} + {15A06398-ECB6-49C9-ACB4-52A495A886A6} = {2E31C385-4FFC-473E-9C00-D7DC48140704} + {DA65E376-3D35-4D96-913A-7197FCA6DF48} = {2E31C385-4FFC-473E-9C00-D7DC48140704} + {2D55BBD1-5373-484C-8781-C6ECEAFC2A90} = {7A0EE7B8-6B7E-41E9-B679-319C8CA48CF1} + {30BF7357-0B6C-498D-8123-5AACC66B3E5F} = {7A0EE7B8-6B7E-41E9-B679-319C8CA48CF1} + {4928FC37-15EC-4872-8514-EA4ADCC4139D} = {AE29BDE3-843C-4B9B-8B02-D3C4814028AC} + {48DA0272-9B14-4CC8-976F-A91E42DE4680} = {AE29BDE3-843C-4B9B-8B02-D3C4814028AC} + {A6B3AB5A-A567-4C77-80FB-1E1E19A00713} = {B5F43F61-4448-4992-85B5-7EDFB82FD643} + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1} = {A6B3AB5A-A567-4C77-80FB-1E1E19A00713} + {AFC428F5-0141-4A3F-BEF2-470A89D972F6} = {C17363DF-A043-4F25-8EBA-2B3B078227DC} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4BCB7B69-696C-436A-86F7-C91EA5588164} EndGlobalSection + GlobalSection(SharedMSBuildProjectFiles) = preSolution + Utils\DateTimeServerShared\DateTimeServerShared.projitems*{4806d89a-fbfb-41bc-aaa7-2242444bf55a}*SharedItemsImports = 4 + EndGlobalSection GlobalSection(Performance) = preSolution HasPerformanceSessions = true EndGlobalSection diff --git a/Common/Common.sln.DotSettings b/Common/Common.sln.DotSettings index a905352a..ae0e0139 100644 --- a/Common/Common.sln.DotSettings +++ b/Common/Common.sln.DotSettings @@ -19,6 +19,7 @@ True True True + True True True True @@ -52,15 +53,18 @@ True True True + True True True True + True True True True True True True + True True True True diff --git a/Common/Common.sln.DotSettings.user b/Common/Common.sln.DotSettings.user index 5a21fbc7..d3d71323 100644 --- a/Common/Common.sln.DotSettings.user +++ b/Common/Common.sln.DotSettings.user @@ -30,21 +30,26 @@ True NewVersion True + C:\Users\Thomas Müller\AppData\Local\Temp\JetBrains\ReSharperPlatformVs17\vAny_ab6433f6\CoverageData\_Common.-1885154465\Snapshot\snapshot.utdcvr True - - - - - - - - - - <SessionState ContinuousTestingIsOn="True" ContinuousTestingMode="1" IsActive="True" Name="All tests from Solution" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> + <SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from Solution" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> <Solution /> </SessionState> + + + + + + + + + + + + + <data><HostParameters type="LocalHostParameters" /><Argument type="StandaloneArgument"><Arguments IsNull="False"></Arguments><FileName>D:\Workspace\WorkBenchV2\Main\ZeroFlowTool\bin\Debug\GenesisDisplayTool.exe</FileName><WorkingDirectory>D:\Workspace\WorkBenchV2\Main\ZeroFlowTool\bin\Debug</WorkingDirectory><Scope><ProcessFilters /></Scope></Argument><Info type="PerformanceInfo"><MeasureType>Sampling</MeasureType><MeterKind>Rdtsc</MeterKind><InjectInfo><SymbolSearch><SearchPaths /></SymbolSearch><Scope><PatternFilters /><DenyAttributeFilters /></Scope></InjectInfo></Info><CoreOptions type="CoreOptions"><CoreTempPath IsNull="False"></CoreTempPath><RemoteEndPoint IsNull="False"></RemoteEndPoint><AdditionalEnvironmentVariables /></CoreOptions><HostOptions type="HostOptions"><HostTempPath IsNull="False"></HostTempPath></HostOptions></data> <data><HostParameters type="LocalHostParameters" /><Argument type="StandaloneArgument"><Arguments IsNull="False"></Arguments><FileName IsNull="False"></FileName><WorkingDirectory IsNull="False"></WorkingDirectory><Scope><ProcessFilters /></Scope></Argument><Info type="PerformanceInfo"><MeasureType>TracingInject</MeasureType><MeterKind>Rdtsc</MeterKind><InjectInfo><SymbolSearch><SearchPaths /></SymbolSearch><Scope><PatternFilters><Item /></PatternFilters><DenyAttributeFilters /></Scope></InjectInfo></Info><CoreOptions type="CoreOptions"><CoreTempPath IsNull="False"></CoreTempPath><RemoteEndPoint IsNull="False"></RemoteEndPoint><AdditionalEnvironmentVariables /></CoreOptions><HostOptions type="HostOptions"><HostTempPath IsNull="False"></HostTempPath></HostOptions></data> <data><HostParameters type="LocalHostParameters" /><Argument type="StandaloneArgument"><Arguments IsNull="False"></Arguments><FileName IsNull="False"></FileName><WorkingDirectory IsNull="False"></WorkingDirectory><Scope><ProcessFilters /></Scope></Argument><Info type="TimelineInfo" /><CoreOptions type="CoreOptions"><CoreTempPath IsNull="False"></CoreTempPath><RemoteEndPoint IsNull="False"></RemoteEndPoint><AdditionalEnvironmentVariables /></CoreOptions><HostOptions type="HostOptions"><HostTempPath IsNull="False"></HostTempPath><ReprofileDisableReason>LaunchedByReSharperUnitTestRunner</ReprofileDisableReason></HostOptions></data> diff --git a/Common/CommonConsole/CommonConsole.csproj b/Common/CommonConsole/CommonConsole.csproj index c3725ba0..35ab3d12 100644 --- a/Common/CommonConsole/CommonConsole.csproj +++ b/Common/CommonConsole/CommonConsole.csproj @@ -24,6 +24,7 @@ prompt 4 false + IDE003;IDE0049; AnyCPU @@ -35,29 +36,61 @@ 4 false - - true - bin\qweerqwer\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - + + ..\packages\Microsoft.SharePointOnline.CSOM.16.1.26017.12000\lib\net45\Microsoft.Office.Client.Policy.dll + + + ..\packages\Microsoft.SharePointOnline.CSOM.16.1.26017.12000\lib\net45\Microsoft.Office.Client.TranslationServices.dll + + + ..\packages\Microsoft.SharePointOnline.CSOM.16.1.26017.12000\lib\net45\Microsoft.Office.SharePoint.Tools.dll + + + ..\packages\Microsoft.SharePointOnline.CSOM.16.1.26017.12000\lib\net45\Microsoft.Online.SharePoint.Client.Tenant.dll + + + ..\packages\Microsoft.SharePointOnline.CSOM.16.1.26017.12000\lib\net45\Microsoft.ProjectServer.Client.dll + + + ..\packages\Microsoft.SharePointOnline.CSOM.16.1.26017.12000\lib\net45\Microsoft.SharePoint.Client.dll + + + ..\packages\Microsoft.SharePointOnline.CSOM.16.1.26017.12000\lib\net45\Microsoft.SharePoint.Client.DocumentManagement.dll + + + ..\packages\Microsoft.SharePointOnline.CSOM.16.1.26017.12000\lib\net45\Microsoft.SharePoint.Client.Publishing.dll + + + ..\packages\Microsoft.SharePointOnline.CSOM.16.1.26017.12000\lib\net45\Microsoft.SharePoint.Client.Runtime.dll + + + ..\packages\Microsoft.SharePointOnline.CSOM.16.1.26017.12000\lib\net45\Microsoft.SharePoint.Client.Search.dll + + + ..\packages\Microsoft.SharePointOnline.CSOM.16.1.26017.12000\lib\net45\Microsoft.SharePoint.Client.Search.Applications.dll + + + ..\packages\Microsoft.SharePointOnline.CSOM.16.1.26017.12000\lib\net45\Microsoft.SharePoint.Client.Taxonomy.dll + + + ..\packages\Microsoft.SharePointOnline.CSOM.16.1.26017.12000\lib\net45\Microsoft.SharePoint.Client.UserProfiles.dll + + + ..\packages\Microsoft.SharePointOnline.CSOM.16.1.26017.12000\lib\net45\Microsoft.SharePoint.Client.WorkflowServices.dll + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll - - + ..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Net.Http.dll - + @@ -67,49 +100,43 @@ - - {9ae071c0-db12-4e09-a3c7-43f6dcd518d6} - Common.Hardware.Interfaces.Ports + + {8de8e742-ee0a-4004-aa49-3d08d748e5ac} + Common.Hardware.SIRT - - {E19C1694-132E-477C-86CB-8E146D5F59B0} - Common.Hardware.WaterMeter.eRegister.Features + + {4e8bb839-d40a-488c-88ce-f21811f1f476} + Common.Hardware.WaterMeter.eRegister - - {DCEC5C69-F4C2-4D57-ADF0-A5173DF4C6AD} - EregisterConnector + + {f4aaf7e6-7333-4284-b735-e32deb076c64} + Registers - - {9D89FA2A-1217-4CE9-B217-E7602B974EA9} - Common.Hardware.WaterMeter.OmniPlus.Features + + {F90B940C-9A83-496D-AAE0-11CD02CE0A22} + LaaPackages.SqlClient - - {6480cc2a-ab54-4a26-8413-d5141431c080} - Common.Hardware.WaterMeter.OmniPlus - - - {57ddae1e-fd6b-47e0-ad5e-8ccfad07f1d7} - Common.Logic.Extensions.Http - - - {62490923-cd17-45a6-b79f-a027927c75b5} - Common.Logic.Extensions.SQL - - - {F8D84B9A-0FCF-4083-B067-8C39B7314152} - OmniPlus - - - {8D3B1C46-B23E-46CC-9B59-24E34DE60510} - Common.UI.SIRTBroadcaster - - - {05f0ccaf-9f2b-45f9-a7f8-12f29ad182f3} - Common.Utils.Extensions + + {F69A79FA-548D-4E21-887E-01FABDAD9E73} + Stichproben - + + 8.3.0 + + + 16.1.26017.12000 + + + 4.3.2 + + + 5.0.0 + + + 3.9.74 + \ No newline at end of file diff --git a/Common/CommonConsole/Program.cs b/Common/CommonConsole/Program.cs index d2bafc5a..a42fd093 100644 --- a/Common/CommonConsole/Program.cs +++ b/Common/CommonConsole/Program.cs @@ -1,98 +1,203 @@ namespace CommonConsole { - using Common.Hardware.WaterMeter.OmniPlus; - using Common.Hardware.WaterMeter.OmniPlus.Features; - using Common.Utils.Extensions; + using Common.Hardware.WaterMeter.eRegister.Telegrams; + using Microsoft.SharePoint.Client; using System; - using System.Collections.Generic; + using System.Security; - public class Program + public static class Program { public static void Main() { - var connection = new OmniConnection(); - connection.UseUniPro("COM9"); + var semiBytes25747925 = new byte[] { 0x08, 0x03, 0x12, 0x6B, 0x78, 0x41, 0x00, 0x00, 0x01, 0xF4, 0x00, 0x00, 0x83, 0x0C, 0x00, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x13, 0x01, 0x88, 0xE1, 0xD5, 0x07, 0x0E, 0x10, 0xEC, 0x56, 0x13, 0xDA, 0x4C, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x00, 0x1E, 0x00, 0x03, 0x01, 0x2F, 0xBE, 0xCA, 0x47, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xEF, 0xA6 }; + var semi25747925 = new SEMI(semiBytes25747925, 868, 0); - var _params = connection.Set(new ConfigurationParametersSet - { - AlarmPercistancePeriodDays = 8, - BuildInfo = "816234014680", - DataLogIntervalMinutes = 60, - DeviceID = "OMNI-02", - FactoryID = "98944637", - ManifacturingTime = (UInt32)new DateTime(2023, 01, 01, 12, 0, 0).TimeOfDay.TotalSeconds, - NumberOfReadingDigits = 8, - OptionalUniDirFields = 12, - ProgrammableID = "95061881", - ReadingPreset = "00000010", - RebootCount = 0, - SystemTime = Epoch20000101.UTCNow - }); - + var debugBytes25747925 = new byte[] { 0x0B, 0x10, 0x12, 0x6B, 0x78, 0x41, 0x00, 0x0C, 0x11, 0x0B, 0x11, 0x08, 0x04, 0x02, 0x7C, 0x4C, 0x12, 0x84, 0x15, 0x00, 0x66, 0x00, 0x35, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4A, 0x8F, 0xD2, 0x02, 0x01, 0x01, 0x16, 0x00, 0x1B, 0x02, 0x71, 0x00, 0x00, 0x82, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xA0, 0xA5 }; + var debug25747925 = new DEBUG(debugBytes25747925, 0); - connection.Disconnect(); - //var econnector = new EregisterConnector.EregisterConnector(); + //var siteUrl = "https://1xylemeur.sharepoint.com/sites/geckoSrc/customer/Pub_CSD/Forms/AllItems.aspx"; + //var userName = "stoyan.zlatev@xylem.com"; + //var password = "****************"; - //econnector.InitInspection(); + //var securePassword = new SecureString(); + + //foreach (var c in password) + //{ + // securePassword.AppendChar(c); + //} + + //using (var context = new ClientContext(siteUrl)) + //{ + // context.Credentials = new SharePointOnlineCredentials(userName, securePassword); + + // var web = context.Web; + // context.Load(web); + // context.ExecuteQuery(); + + // Console.WriteLine("Site Title: " + web.Title); + //} } - //var payloadLength = 32; - //var payload = new Byte[payloadLength]; - //for (var i = 0; i < 32; i++) + //public static void Main() //{ - // payload[i] = (Byte)(i + 1); + // SIRTLogger.State += Console.WriteLine; + + // var sirtHub = new SIRTHub(); + + // if (sirtHub.TryOpen("COM6", out var sirtId, out var frequency)) + // { + // SIRTLogger.State -= Console.WriteLine; + // SIRTLogger.Message += Console.WriteLine; + // Console.WriteLine($"Listening on: COM6 - {frequency} - {sirtId}"); + + // var task = new LEDTask(frequency, 319017453) + // { + // //WakeUpCmd = true, + // //WakeUpModul = true, + // //DelPamSemi = true, + // Data = new byte[] { 0x1F, 0x01, 0x08, 0x43, 0x03, 0x63, 0x93, 0x73, 0x22 }, + // EncryptionKey = "E6C88800DEB868C0D6A84880CE982840".GetBytes(), + // IsEncrypted = true, + // }; + + // sirtHub.Start(task); + // task.Wait(); + + // Console.ReadKey(); + // sirtHub.Close("COM6"); + // } //} - //var withAddress = new Byte[payloadLength + 4]; - - //Array.Copy(payload, 0, withAddress, 4, payloadLength); - - //var keyLength = 16; - //var key = new Byte[keyLength]; - - //for (var i = 0; i < keyLength; i++) + //public class LEDTask : EregisterTask //{ - // payload[i] = (Byte)(keyLength - i); + // public LEDTask(int frequency, uint address) : base(frequency) + // { + // this.RequestAddress = address; + // } + + // public byte P811 + // { + // get => this.p811; + // set => this.p811 = value; + // } //} - //Console.WriteLine(BitConverter.ToString(key)); - //Console.WriteLine(BitConverter.ToString(withAddress)); - //Console.WriteLine(BitConverter.ToString(Encrypt(payload, key, 0))); + //internal enum AlarmMask + //{ + // ALARM_REBOOT = 1 << 0, // immer An + // ALARM_LOW_BATTERY = 1 << 1, + // ALARM_VERY_LOW_BATTERY = 1 << 2, /* For consistency with st_alarm_bit_t only */ + // ALARM_CONFIG_ERROR = 1 << 3, + // ALARM_EMPTY_PIPE = 1 << 4, + // ALARM_MAGNETIC_TAMPER = 1 << 5, /* For consistency with st_alarm_bit_t only */ + // ALARM_REVERSE_FLOW = 1 << 6, + // ALARM_SUSPECT_LEAK = 1 << 7, + // ALARM_BROKEN_PIPE = 1 << 8, + // ALARM_LOW_PRESSURE = 1 << 9, + // ALARM_HIGH_PRESSURE = 1 << 10, + // ALARM_LOW_TEMPERATURE = 1 << 11, + // ALARM_HIGH_TEMPERATURE = 1 << 12, + // ALARM_RADIO_ERROR = 1 << 13, + // ALARM_METROLOGY_PARAMS = 1 << 14, + // ALARM_METROLOGY_MEASURE = 1 << 15, + // ALARM_MAX = 1 << 16 + //}; - static Byte[] Encrypt(Byte[] bytes, Byte[] key, Int32 address) - { - var requestBytesList = new List(bytes); - var addressBytes = address.ToBigEndianBytes(); - requestBytesList.InsertRange(9, addressBytes); + //internal enum FDRMask + //{ + // LOG_BILLING_COUNTER = 0x00000002, //!< BillingCounter + // LOG_FORWARD_COUNTER = 0x00001000, //!< ForwardCounter + // LOG_REVERSE_COUNTER = 0x00000004, //!< Backward or ReverseCounter + // LOG_MIN_FLOW_TIME = 0x00000800, //!< Date/Time of FlowMin + // LOG_MIN_FLOW_VAL = 0x00000400, //!< Value of FlowMin + // LOG_BROKEN_PIPE_FLOW_TIME = 0x00000200, //!< Date/Time of BrokenPipe + // LOG_BROKEN_PIPE_FLOW_VAL = 0x00000100, //!< Value of BrokenPipe + // LOG_CUR_FLOW_VAL = 0x00000080, //!< Current Flow Value (Average of Period) + // LOG_PEAK_FLOW_TIME = 0x00000040, //!< Date/Time of PeakFlow + // LOG_PEAK_FLOW_VAL = 0x00000020, //!< Value of PeakFlow + // LOG_MAX_FLOW_TIME = 0x00000010, //!< Date/Time of MaxFlow + // LOG_MAX_FLOW_VAL = 0x00000008, //!< Value of MaxFlow + // LOG_CUR_TEMP_VAL = 0x02000000, //!< Temperature Current Value + // LOG_MAX_TEMP_TIME = 0x00800000, //!< Temperature Maximum + // LOG_MAX_TEMP_VAL = 0x00400000, //!< Temperature Maximum + // LOG_MIN_TEMP_TIME = 0x00200000, //!< Temperature Minimum + // LOG_MIN_TEMP_VAL = 0x00100000, //!< Temperature Minimum + // LOG_CUR_PRESS_VAL = 0x01000000, //!< Pressure Current Value + // LOG_MAX_PRESS_TIME = 0x00080000, //!< Pressure Maximum Time + // LOG_MAX_PRESS_VAL = 0x00040000, //!< Pressure Maximum + // LOG_MIN_PRESS_TIME = 0x00020000, //!< Pressure Minimum Time + // LOG_MIN_PRESS_VAL = 0x00010000, //!< Pressure Minimum + // LOG_ALARM_STATE = 0x00000001, //!< AlarmState (16 bits) + // LOG_EXT_ALARM_STATE = 0x04000000,    //> ((keyByte & 0x3) << 3)) & 0xFF) >> ((keyByte >> 6) & 1)); + //public static void Main() + //{ + // var alarm = AlarmMask.ALARM_REBOOT + // | AlarmMask.ALARM_EMPTY_PIPE + // | AlarmMask.ALARM_SUSPECT_LEAK + // | AlarmMask.ALARM_BROKEN_PIPE + // | AlarmMask.ALARM_LOW_BATTERY + // | AlarmMask.ALARM_REVERSE_FLOW + // | AlarmMask.ALARM_HIGH_TEMPERATURE; - // Update the unencrypted reference before the byte gets encrypted - reference = reference << 8; - reference += requestBytesList[encryptIndex]; + // Console.WriteLine($"Alarm: {alarm}"); + // Console.WriteLine(BitConverter.ToString(BitConverter.GetBytes((int)alarm))); + // Console.WriteLine(); - // Encrypt the data by applying the resepective key - requestBytesList[encryptIndex] ^= key[(keyByte >> 2) & 0x0F]; + // var fdr = FDRMask.LOG_BILLING_COUNTER + // | FDRMask.LOG_REVERSE_COUNTER + // | FDRMask.LOG_BROKEN_PIPE_FLOW_TIME + // | FDRMask.LOG_BROKEN_PIPE_FLOW_VAL + // | FDRMask.LOG_PEAK_FLOW_TIME + // | FDRMask.LOG_PEAK_FLOW_VAL + // | FDRMask.LOG_MAX_FLOW_TIME + // | FDRMask.LOG_MAX_FLOW_VAL + // | FDRMask.LOG_MAX_TEMP_TIME + // | FDRMask.LOG_MAX_TEMP_VAL + // | FDRMask.LOG_ALARM_STATE + // | FDRMask.LOG_EXT_ALARM_STATE; - // Check if data has to be inverted - if (keyByte > 127) - { - requestBytesList[encryptIndex] = (Byte)~requestBytesList[encryptIndex]; - } - } + // Console.WriteLine($"FDR: {fdr}"); + // Console.WriteLine(BitConverter.ToString(BitConverter.GetBytes((int)fdr))); + // Console.WriteLine(); - return requestBytesList.ToArray(); - } + // Console.WriteLine($"HErrL: {BitConverter.ToString(BitConverter.GetBytes((short)90))}"); + // Console.WriteLine(); + + // Console.WriteLine("LeakageThreshold"); + // Console.WriteLine($"DN 40 100 l/h = 100 * 256 = {BitConverter.ToString(BitConverter.GetBytes(100 * 256))}"); + // Console.WriteLine($"DN 50 100 l/h = 100 * 256 = {BitConverter.ToString(BitConverter.GetBytes(100 * 256))}"); + // Console.WriteLine($"DN 65 125 l/h = 125 * 256 = {BitConverter.ToString(BitConverter.GetBytes(125 * 256))}"); + // Console.WriteLine($"DN 80 125 l/h = 125 * 256 = {BitConverter.ToString(BitConverter.GetBytes(125 * 256))}"); + // Console.WriteLine($"DN 100 125 l/h = 125 * 256 = {BitConverter.ToString(BitConverter.GetBytes(125 * 256))}"); + // Console.WriteLine($"DN 125 500 l/h = 500 * 256 = {BitConverter.ToString(BitConverter.GetBytes(500 * 256))}"); + // Console.WriteLine($"DN 150 375 l/h = 375 * 256 = {BitConverter.ToString(BitConverter.GetBytes(375 * 256))}"); + // Console.WriteLine(); + + + // Console.WriteLine("BrokenPipeThreshold"); + // Console.WriteLine($"DN 40 50 m³/h = 50 * 256 * 1000 = {BitConverter.ToString(BitConverter.GetBytes( 50 * 256 * 1000))}"); + // Console.WriteLine($"DN 80 125 m³/h = 125 * 256 * 1000 = {BitConverter.ToString(BitConverter.GetBytes(125 * 256 * 1000))}"); + // Console.WriteLine($"DN 150 250 m³/h = 250 * 256 * 1000 = {BitConverter.ToString(BitConverter.GetBytes(250 * 256 * 1000))}"); + // Console.WriteLine(); + //} } -} - +} \ No newline at end of file diff --git a/Common/CommonCore.Configuration/ServiceUrls.cs b/Common/CommonCore.Configuration/ServiceUrls.cs index 20d3a905..952a32e7 100644 --- a/Common/CommonCore.Configuration/ServiceUrls.cs +++ b/Common/CommonCore.Configuration/ServiceUrls.cs @@ -9,6 +9,14 @@ namespace Xylem.Common.CommonCore.Configuration /// public static class ServiceUrls { + + private const String DefaultInspectCordonelRequirementInfoUrl = + "http://sla12iis01.emea.sensus.net/LaaProductionWeb/"; + + // return code: 404 not found, 400 Error with text, 200 okay + private const String DefaultEolDataForSentinelServiceUrl = + "http://sla12iis01.emea.sensus.net/LaaProductionWeb/api/cordonel/eolprogress/"; + private const String DefaultGetPcbIdsFromSafeServiceUrl = "http://sla12iis01.emea.sensus.net/MeterProcessState/GetPcbIdsFromSafe?ContainerDbId="; @@ -33,8 +41,8 @@ namespace Xylem.Common.CommonCore.Configuration private const String DefaultSetCordonelAppVersionServiceUrl = "http://sla12iis01.emea.sensus.net/MeterProcessState/api/ProccesState/SetCordonelProgress?PcbId="; - private const String DefaultGetProductionSkipAndLifeTimeInfoUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/ProccesState/GetProductionSkipAndLifeTimeInfo?PcbId="; + private const String DefaultGetCordonelRequirementInfoUrl = + "http://sla12iis01.emea.sensus.net/LaaProductionWeb/api/cordonel/requirements/pcbid/"; private const String DefaultGetCordonelAppVersionServiceUrl = "http://sla12iis01.emea.sensus.net/MeterProcessState/api/ProccesState/GetCordonelAppVersion?PcbId="; @@ -138,6 +146,9 @@ namespace Xylem.Common.CommonCore.Configuration private const String DefaultGenesisCalibrationResult = "http://sla12iis01.emea.sensus.net/MeterProcessState/api/GenesisMeter/PostCalibrationResult"; + private const String DefaultGetGenesisCalibrationResults = + "http://sla12iis01.emea.sensus.net/MeterProcessState/api/FinalCheck/CalibrationResults/"; + private const String DefaultGenesisMeter = "http://sla12iis01.emea.sensus.net/MeterProcessState/api/GenesisMeter/"; @@ -204,13 +215,14 @@ namespace Xylem.Common.CommonCore.Configuration private const String PressureSensorTestURL_GetTestResults = "http://sla12iis01.emea.sensus.net/MeterProcessState/api/CordonelPressureSensorTest/GetTestResults/{0}"; - public const string LaaProductionAPI + public const String LaaProductionAPI #if DEBUG == false // when false uses always the production url. = "http://localhost:52822"; #else = "http://sla12iis01.emea.sensus.net"; #endif + /// /// GET: test specification for water meter with pressure sensor. /// @@ -324,6 +336,16 @@ namespace Xylem.Common.CommonCore.Configuration return ConfigurationManager.AppSettings["DownloadDbDataAtEolServiceUrl"] ?? DefaultDbDataAtEolServiceUrl; } + /// + /// Get EOL data for sentinel + /// + /// + public static String EolDataForSentinelServiceUrl() + { + return ConfigurationManager.AppSettings["EolDataForSentinelServiceUrl"] ?? + DefaultEolDataForSentinelServiceUrl; + } + /// /// Get all Cordonel safes description files. /// @@ -374,6 +396,16 @@ namespace Xylem.Common.CommonCore.Configuration DefaultSetCordonelAppVersionServiceUrl; } + /// + /// Inspect a specific requirement (read only). + /// + /// + public static String InspectCordonelRequirementInfoServiceUrl() + { + return ConfigurationManager.AppSettings["InspectCordonelRequirementInfoServiceUrl"] ?? + DefaultInspectCordonelRequirementInfoUrl; + } + /// /// Get all production infos for skip process checks or limits for production like: /// - Battery drained percentage upper limit, @@ -382,10 +414,36 @@ namespace Xylem.Common.CommonCore.Configuration /// - Required life time for shipping line. /// /// - public static String GetProductionSkipAndLifeTimeInfoServiceUrl() + public static String GetCordonelRequirementInfoServiceUrl() { - return ConfigurationManager.AppSettings["GetProductionSkipAndLifeTimeInfoUrl"] ?? - DefaultGetProductionSkipAndLifeTimeInfoUrl; + return ConfigurationManager.AppSettings["GetCordonelRequirementInfoServiceUrl"] ?? + DefaultGetCordonelRequirementInfoUrl; + } + + /// + /// Get all production infos for skip process checks or limits for production like: + /// - Battery drained percentage upper limit, + /// - Production due date for a special register, + /// - Required life time for assembly line, + /// - Required life time for shipping line. + /// + /// + public static String GetCordonelRequirementByFANrInfoServiceUrl(string ponr) + { + return $"http://sla12iis01.emea.sensus.net/LaaProductionWeb/api/cordonel/requirements/pono/{ponr}"; + } + + /// + /// Get all production infos for skip process checks or limits for production like: + /// - Battery drained percentage upper limit, + /// - Production due date for a special register, + /// - Required life time for assembly line, + /// - Required life time for shipping line. + /// + /// + public static string GetCordonelRequirementByMeterSizeInfoServiceUrl(int size) + { + return $"http://sla12iis01.emea.sensus.net/LaaProductionWeb/api/cordonel/requirements/isize/{size}"; } /// @@ -461,7 +519,7 @@ namespace Xylem.Common.CommonCore.Configuration /// - /// FW-Update report doanload as string + /// FW-Update report download as string /// /// public static String DownloadFwUpdateReportServiceUrl() @@ -700,6 +758,16 @@ namespace Xylem.Common.CommonCore.Configuration DefaultGetSoftwareStartUpAccessUrl; } + /// + /// Get Genesis calibration results for final check if those have been correctly set + /// + /// + public static String GetGenesisCalibrationResultsUrl() + { + return ConfigurationManager.AppSettings["GetGenesisCalibrationResults"] ?? + DefaultGetGenesisCalibrationResults; + } + /// /// Post Genesis calibration results /// diff --git a/Common/CommonCore/Consts/StatusReturn.cs b/Common/CommonCore/Consts/StatusReturn.cs index fedb4c2d..04722a29 100644 --- a/Common/CommonCore/Consts/StatusReturn.cs +++ b/Common/CommonCore/Consts/StatusReturn.cs @@ -6,17 +6,25 @@ public enum StatusReturn { /// - /// undefined status + /// undefined status does not fit in any other status defined below /// Unknown, + + /// + /// skipped test and therefore the return identifies this + /// + Skipped, + /// /// successfully executed without any restrictions /// Okay, + /// /// execution failed /// Failed, + /// /// inspection needed as warning returns /// diff --git a/Common/CordoPlot/CordoPlot.csproj b/Common/CordoPlot/CordoPlot.csproj index e9998329..90c1678d 100644 --- a/Common/CordoPlot/CordoPlot.csproj +++ b/Common/CordoPlot/CordoPlot.csproj @@ -40,7 +40,9 @@ ..\packages\OpenTK.GLWpfControl.3.3.0\lib\net452\GLWpfControl.dll - + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll + ..\packages\OpenTK.3.3.1\lib\net20\OpenTK.dll diff --git a/Common/CordoPlot/MainWindow.xaml.cs b/Common/CordoPlot/MainWindow.xaml.cs index c2ba33a9..c1203240 100644 --- a/Common/CordoPlot/MainWindow.xaml.cs +++ b/Common/CordoPlot/MainWindow.xaml.cs @@ -1,5 +1,4 @@ -using Newtonsoft.Json; -using ScottPlot.WPF; +using ScottPlot.WPF; using System; using System.Collections.Generic; using System.ComponentModel; @@ -7,6 +6,7 @@ using System.IO; using System.Linq; using System.Windows; using System.Windows.Controls; +using Newtonsoft.Json; using Xylem.Common.CommonCore.Consts; using Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol; using Xylem.Common.Logic.ProductionOrderCore.TestResults; diff --git a/Common/CordoPlot/packages.config b/Common/CordoPlot/packages.config index 056e0ad5..e3de836a 100644 --- a/Common/CordoPlot/packages.config +++ b/Common/CordoPlot/packages.config @@ -1,5 +1,6 @@  + diff --git a/Common/CordonelAssemblyLine/App.config b/Common/CordonelAssemblyLine/App.config index 0e0d29cc..6716b1fb 100644 --- a/Common/CordonelAssemblyLine/App.config +++ b/Common/CordonelAssemblyLine/App.config @@ -1,20 +1,27 @@ - + - - - - + + + - - - - + - - \ No newline at end of file + + + + + + + + + + + + + diff --git a/Common/CordonelAssemblyLine/App.xaml b/Common/CordonelAssemblyLine/App.xaml index 39176e06..2d2c5f78 100644 --- a/Common/CordonelAssemblyLine/App.xaml +++ b/Common/CordonelAssemblyLine/App.xaml @@ -1,9 +1,9 @@  - + diff --git a/Common/CordonelAssemblyLine/CordonelAssemblyLine.csproj b/Common/CordonelAssemblyLine/CordonelAssemblyLine.csproj index fad8a794..4fade0db 100644 --- a/Common/CordonelAssemblyLine/CordonelAssemblyLine.csproj +++ b/Common/CordonelAssemblyLine/CordonelAssemblyLine.csproj @@ -8,27 +8,36 @@ WinExe CordonelAssemblyLine CordonelAssemblyLine - v4.6 + v4.8.1 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 true true - publish\ + true + \\SLA12IIS01\LaaProductionWeb\Apps\CordonelAssembly\ true - Disk - false + Web + true Foreground 7 Days false false true - 0 + http://sla12iis01.emea.sensus.net/LaaProductionWeb/Apps/CordonelAssembly/ + Cordonel Assembly Line + Xylem Sensus Laatzen + Cordonel Assembly Line + true + publish.htm + 8 1.0.0.%2a - false false + true + true true + AnyCPU @@ -40,6 +49,7 @@ prompt 4 bin\Debug\CordonelAssemblyLine.xml + IDE0003;IDE0021;IDE0049;CS1591; AnyCPU @@ -70,6 +80,21 @@ MinimumRecommendedRules.ruleset true + + 5586F8F849F79C1CEB990ED4E3ACB22CDF595CB5 + + + CordonelAssemblyLine_TemporaryKey.pfx + + + true + + + true + + + true + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll @@ -81,6 +106,7 @@ + @@ -134,6 +160,7 @@ Marriage.xaml + @@ -171,6 +198,10 @@ {9EB1F659-6F73-4F65-BCAB-4114FD94F5FC} CommonCore.Configuration + + {1B02C79E-0B19-43E2-8F6B-71EF0C786C97} + CommonCore + {315E94B8-B82F-4B25-B5BD-297DF3BC1D54} Applications @@ -199,6 +230,10 @@ {26AFCF1E-1287-48B8-A506-32B1E8A0DD0E} WaterMeterRegisters + + {8BEFD3AC-BB21-4B62-8D9A-CF8CBFD439EB} + LaaPackages.Features.Cordonel + {D0C859D9-D55E-4E85-AC50-0FF31B1CE50D} Logic.ProductionToProductMapper @@ -211,6 +246,10 @@ {A33E3C6D-EAAE-4A20-A0EE-F9E6922FD029} SoftwareAccessHelper + + {f69a79fa-548d-4e21-887e-01fabdad9e73} + Stichproben + {70bf5094-0f03-41fc-b0bd-befcf51686c9} Ui.ProductionControls @@ -233,4 +272,7 @@ + + del /Q /S *.xml *.pdb + \ No newline at end of file diff --git a/Common/CordonelAssemblyLine/Data/PressureResultDataNotifyable.cs b/Common/CordonelAssemblyLine/Data/PressureResultDataNotifyable.cs index de66b565..6a7c1af2 100644 --- a/Common/CordonelAssemblyLine/Data/PressureResultDataNotifyable.cs +++ b/Common/CordonelAssemblyLine/Data/PressureResultDataNotifyable.cs @@ -141,6 +141,7 @@ namespace CordonelAssemblyLine.Data } InternalPropertyChanged(nameof(TestPoints)); } + public PressureResultData ToBase() { var baseData = new PressureResultData(); diff --git a/Common/CordonelAssemblyLine/Leak.xaml b/Common/CordonelAssemblyLine/Leak.xaml index c3fd48ef..0bfb9888 100644 --- a/Common/CordonelAssemblyLine/Leak.xaml +++ b/Common/CordonelAssemblyLine/Leak.xaml @@ -1,12 +1,12 @@  + Title="Leak" + Height="450" + Width="800" + Background="Aqua" + Closing="Window_Closing"> @@ -14,7 +14,6 @@ - @@ -30,36 +29,133 @@ + - public Boolean BtPwrSave + public bool BtPwrSave { get => this.bits[6] == 1; - set => this.bits[6] = (Byte)(value ? 1 : 0); + set => this.bits[6] = (byte)(value ? 1 : 0); } /// @@ -48,16 +46,16 @@ /// /// /// - public Boolean BtOff + public bool BtOff { get => this.bits[7] == 1; - set => this.bits[7] = (Byte)(value ? 1 : 0); + set => this.bits[7] = (byte)(value ? 1 : 0); } - public static implicit operator Byte(BluetoothOperating param) - => param.bits.GetByte(); + public static implicit operator byte(BluetoothOperating param) + => param.bits.GetByteLE(); - public static implicit operator BluetoothOperating(Byte _byte) - => new BluetoothOperating(_byte.GetBits()); + public static implicit operator BluetoothOperating(byte _byte) + => new BluetoothOperating(_byte.GetBitsLE()); } } diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/OperatingModes.cs b/Common/Hardware/Common.Hardware.SIRT/Parameters/OperatingModes.cs similarity index 82% rename from Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/OperatingModes.cs rename to Common/Hardware/Common.Hardware.SIRT/Parameters/OperatingModes.cs index 40e3c564..d39b1c05 100644 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/OperatingModes.cs +++ b/Common/Hardware/Common.Hardware.SIRT/Parameters/OperatingModes.cs @@ -1,4 +1,4 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Parameters +namespace Common.Hardware.SIRT.Parameters { public enum OperatingModes { diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/P11.cs b/Common/Hardware/Common.Hardware.SIRT/Parameters/P11.cs similarity index 65% rename from Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/P11.cs rename to Common/Hardware/Common.Hardware.SIRT/Parameters/P11.cs index 8db46bc4..66d95785 100644 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/P11.cs +++ b/Common/Hardware/Common.Hardware.SIRT/Parameters/P11.cs @@ -1,6 +1,6 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Parameters +namespace Common.Hardware.SIRT.Parameters { - using System; + using System.Text; /// /// Parameter P11 is given at third position of "Telegram from Air" telegram and give more detailed information about the @@ -9,11 +9,13 @@ /// public class P11 { - private readonly Byte[] bits; + private readonly byte[] bits; - public P11() => this.bits = new Byte[8]; + public P11() => this.bits = new byte[8]; - private P11(Byte[] bits) => this.bits = bits; + public P11(byte p11) => this.bits = p11.GetBitsLE(); + + public P11(byte[] bits) => this.bits = bits; /// /// @@ -28,10 +30,10 @@ /// /// only valid if both RF-Module programmed for Sensus RF /// - public Boolean SrcChannel + public bool SrcChannel { get => this.bits[0] == 1; - set => this.bits[0] = (Byte)(value ? 1 : 0); + set => this.bits[0] = (byte)(value ? 1 : 0); } /// @@ -47,10 +49,10 @@ /// /// only valid if both RF-Module programmed for Sensus RF /// - public Boolean BothValid + public bool BothValid { get => this.bits[1] == 1; - set => this.bits[1] = (Byte)(value ? 1 : 0); + set => this.bits[1] = (byte)(value ? 1 : 0); } /// @@ -66,10 +68,10 @@ /// /// i.e. radio checksum is wrong ... /// - public Boolean InvalidMod1 + public bool InvalidMod1 { get => this.bits[2] == 1; - set => this.bits[2] = (Byte)(value ? 1 : 0); + set => this.bits[2] = (byte)(value ? 1 : 0); } /// @@ -85,10 +87,10 @@ /// /// i.e. radio checksum is wrong ... /// - public Boolean InvalidMod2 + public bool InvalidMod2 { get => this.bits[3] == 1; - set => this.bits[3] = (Byte)(value ? 1 : 0); + set => this.bits[3] = (byte)(value ? 1 : 0); } /// @@ -103,10 +105,10 @@ /// /// /// - public Boolean LenOverflow + public bool LenOverflow { get => this.bits[4] == 1; - set => this.bits[4] = (Byte)(value ? 1 : 0); + set => this.bits[4] = (byte)(value ? 1 : 0); } /// @@ -121,10 +123,10 @@ /// /// /// - public Boolean Attention + public bool Attention { get => this.bits[5] == 1; - set => this.bits[5] = (Byte)(value ? 1 : 0); + set => this.bits[5] = (byte)(value ? 1 : 0); } /// @@ -145,10 +147,10 @@ /// /// /// - public Boolean ModeRF + public bool ModeRF { get => this.bits[6] == 1; - set => this.bits[6] = (Byte)(value ? 1 : 0); + set => this.bits[6] = (byte)(value ? 1 : 0); } /// @@ -163,16 +165,36 @@ /// /// /// - public Boolean ModeSensus + public bool ModeSensus { get => this.bits[7] == 1; - set => this.bits[7] = (Byte)(value ? 1 : 0); + set => this.bits[7] = (byte)(value ? 1 : 0); } - public static implicit operator Byte(P11 param) - => param.bits.GetByte(); + public override string ToString() + { + var infoBuilder = new StringBuilder(); + infoBuilder.AppendLine(string.Join(string.Empty, this.bits)); + infoBuilder.AppendLine(this.SrcChannel ? "Source RF modul 2" : "Source RF modul 1"); + infoBuilder.AppendLine(this.BothValid ? "Both RF modules data are valid" : "One RF module data is valid"); + infoBuilder.AppendLine(this.InvalidMod1 ? "RF modul 1 data is invalid" : "RF modul 1 data is valid"); + infoBuilder.AppendLine(this.InvalidMod2 ? "RF modul 2 data is invalid" : "RF modul 2 data is valid"); + infoBuilder.AppendLine(this.LenOverflow ? "Length overflow (> 128)" : "Data length is valid"); + infoBuilder.AppendLine(this.Attention ? "Will look in PAM/RAC pool" : "No attention of PAM/RAC pool"); + infoBuilder.AppendLine(this.ModeSensus ? "Mode Sensus RF" : "Mode MBus"); + infoBuilder.AppendLine(this.ModeRF ? (!this.ModeSensus ? "T1 mode" : "Receive at F2") + : (!this.ModeSensus ? "S1 mode" : "Receive at F1")); - public static implicit operator P11(Byte _byte) - => new P11(_byte.GetBits()); + return infoBuilder.ToString().Trim(); + } + + public static implicit operator byte(P11 p11) + => p11.bits.GetByteLE(); + + public static implicit operator string(P11 p11) + => p11.ToString(); + + public static implicit operator P11(byte _byte) + => new P11(_byte.GetBitsLE()); } } diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/P12.cs b/Common/Hardware/Common.Hardware.SIRT/Parameters/P12.cs similarity index 63% rename from Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/P12.cs rename to Common/Hardware/Common.Hardware.SIRT/Parameters/P12.cs index a08d608b..b92a0094 100644 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/P12.cs +++ b/Common/Hardware/Common.Hardware.SIRT/Parameters/P12.cs @@ -1,6 +1,7 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Parameters +namespace Common.Hardware.SIRT.Parameters { using System; + using System.Text; /// /// P12 is the parameter of "Acknowledge or Answer" message and is placed at third position, @@ -11,11 +12,13 @@ /// public class P12 { - private readonly Byte[] bits; + private readonly byte[] bits; - public P12() => this.bits = new Byte[8]; + public P12() => this.bits = new byte[8]; - private P12(Byte[] bits) => this.bits = bits; + public P12(byte p12) => this.bits = p12.GetBitsLE(); + + public P12(byte[] bits) => this.bits = bits; /// /// @@ -29,10 +32,10 @@ /// /// /// - public Boolean BufFull + public bool BufFull { get => this.bits[0] == 1; - set => this.bits[0] = (Byte)(value ? 1 : 0); + set => this.bits[0] = (byte)(value ? 1 : 0); } /// @@ -47,10 +50,10 @@ /// /// /// - public Boolean OsBusy + public bool OsBusy { get => this.bits[1] == 1; - set => this.bits[1] = (Byte)(value ? 1 : 0); + set => this.bits[1] = (byte)(value ? 1 : 0); } /// @@ -65,10 +68,10 @@ /// /// /// - public Boolean WrongCRC + public bool WrongCRC { get => this.bits[2] == 1; - set => this.bits[2] = (Byte)(value ? 1 : 0); + set => this.bits[2] = (byte)(value ? 1 : 0); } /// @@ -83,17 +86,17 @@ /// /// /// - public Boolean CmdNotExecuted + public bool CmdNotExecuted { get => this.bits[3] == 1; - set => this.bits[3] = (Byte)(value ? 1 : 0); + set => this.bits[3] = (byte)(value ? 1 : 0); } /// /// /// /// true - /// telegram or command Byte unknown + /// telegram or command byte unknown /// /// /// false @@ -101,10 +104,10 @@ /// /// /// - public Boolean CmdUnknown + public bool CmdUnknown { get => this.bits[4] == 1; - set => this.bits[4] = (Byte)(value ? 1 : 0); + set => this.bits[4] = (byte)(value ? 1 : 0); } /// @@ -119,10 +122,10 @@ /// /// /// - public Boolean NoEntry + public bool NoEntry { get => this.bits[5] == 1; - set => this.bits[5] = (Byte)(value ? 1 : 0); + set => this.bits[5] = (byte)(value ? 1 : 0); } /// @@ -137,10 +140,10 @@ /// /// /// - public Boolean ByteUnknown + public bool ByteUnknown { get => this.bits[6] == 1; - set => this.bits[6] = (Byte)(value ? 1 : 0); + set => this.bits[6] = (byte)(value ? 1 : 0); } /// @@ -155,16 +158,57 @@ /// /// /// - public Boolean WildCardAddr + public bool WildCardAddr { get => this.bits[7] == 1; - set => this.bits[7] = (Byte)(value ? 1 : 0); + set => this.bits[7] = (byte)(value ? 1 : 0); } - public static implicit operator Byte(P12 param) - => param.bits.GetByte(); + public override string ToString() + { + if (this.BufFull) + { + return nameof(this.BufFull); + } + else if (this.OsBusy) + { + return nameof(this.OsBusy); + } + else if (this.WrongCRC) + { + return nameof(this.WrongCRC); + } + else if (this.CmdNotExecuted) + { + return nameof(this.CmdNotExecuted); + } + else if (this.CmdUnknown) + { + return nameof(this.CmdUnknown); + } + else if (this.NoEntry) + { + return nameof(this.NoEntry); + } + else if (this.ByteUnknown) + { + return nameof(this.ByteUnknown); + } + else if (this.WildCardAddr) + { + return nameof(this.WildCardAddr); + } - public static implicit operator P12(Byte _byte) - => new P12(_byte.GetBits()); + return "AKN"; + } + + public static implicit operator byte(P12 p11) + => p11.bits.GetByteLE(); + + public static implicit operator string(P12 p11) + => p11.ToString(); + + public static implicit operator P12(byte _byte) + => new P12(_byte.GetBitsLE()); } } \ No newline at end of file diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/P811.cs b/Common/Hardware/Common.Hardware.SIRT/Parameters/P811.cs similarity index 86% rename from Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/P811.cs rename to Common/Hardware/Common.Hardware.SIRT/Parameters/P811.cs index b75e6f3e..0fa603c4 100644 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/P811.cs +++ b/Common/Hardware/Common.Hardware.SIRT/Parameters/P811.cs @@ -1,11 +1,9 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Parameters +namespace Common.Hardware.SIRT.Parameters { - using System; - /// /// Parameter P81-1 is the first modifier of "Write to PAM Pool" command and is placed at third position, /// if telegram from PC -> SIRT begins with {0x55, 0x81}. - /// This Byte describe in detailed what PAM message should do in detail. + /// This byte describe in detailed what PAM message should do in detail. /// There is an public priority within the bits which are described at next table: /// /// @@ -100,11 +98,11 @@ /// public class P811 { - private readonly Byte[] bits; + private readonly byte[] bits; - public P811() => this.bits = new Byte[8]; + public P811() => this.bits = new byte[8]; - private P811(Byte[] bits) => this.bits = bits; + private P811(byte[] bits) => this.bits = bits; /// /// @@ -118,10 +116,10 @@ /// /// /// - public Boolean WakeUpModul + public bool WakeUpModul { get => this.bits[0] == 1; - set => this.bits[0] = (Byte)(value ? 1 : 0); + set => this.bits[0] = (byte)(value ? 1 : 0); } /// @@ -136,10 +134,10 @@ /// /// /// - public Boolean WakeUpCmd + public bool WakeUpCmd { get => this.bits[2] == 1; - set => this.bits[2] = (Byte)(value ? 1 : 0); + set => this.bits[2] = (byte)(value ? 1 : 0); } /// @@ -154,10 +152,10 @@ /// /// /// - public Boolean IgnoreTimeout + public bool IgnoreTimeout { get => this.bits[3] == 1; - set => this.bits[3] = (Byte)(value ? 1 : 0); + set => this.bits[3] = (byte)(value ? 1 : 0); } /// @@ -172,10 +170,10 @@ /// /// /// - public Boolean DelPamSemi + public bool DelPamSemi { get => this.bits[4] == 1; - set => this.bits[4] = (Byte)(value ? 1 : 0); + set => this.bits[4] = (byte)(value ? 1 : 0); } /// @@ -190,10 +188,10 @@ /// /// /// - public Boolean DelPamTx + public bool DelPamTx { get => this.bits[5] == 1; - set => this.bits[5] = (Byte)(value ? 1 : 0); + set => this.bits[5] = (byte)(value ? 1 : 0); } /// @@ -208,10 +206,10 @@ /// /// /// - public Boolean DelPamAdr + public bool DelPamAdr { get => this.bits[6] == 1; - set => this.bits[6] = (Byte)(value ? 1 : 0); + set => this.bits[6] = (byte)(value ? 1 : 0); } /// @@ -226,16 +224,16 @@ /// /// /// - public Boolean DelPamAll + public bool DelPamAll { get => this.bits[7] == 1; - set => this.bits[7] = (Byte)(value ? 1 : 0); + set => this.bits[7] = (byte)(value ? 1 : 0); } - public static implicit operator Byte(P811 param) - => param.bits.GetByte(); + public static implicit operator byte(P811 param) + => param.bits.GetByteLE(); - public static implicit operator P811(Byte _byte) - => new P811(_byte.GetBits()); + public static implicit operator P811(byte _byte) + => new P811(_byte.GetBitsLE()); } } diff --git a/Common/Hardware/Common.Hardware.SIRT/Parameters/P821.cs b/Common/Hardware/Common.Hardware.SIRT/Parameters/P821.cs new file mode 100644 index 00000000..669ce466 --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/Parameters/P821.cs @@ -0,0 +1,28 @@ +namespace Common.Hardware.SIRT.Parameters +{ + public class P821 + { + private readonly byte[] bits; + + public P821() => this.bits = new byte[8]; + + public P821(byte p12) => this.bits = p12.GetBitsLE(); + + public P821(byte[] bits) => this.bits = bits; + + public bool PamStruct + { + get => this.bits[0] == 1; + set => this.bits[0] = (byte)(value ? 1 : 0); + } + + public static implicit operator byte(P821 p11) + => p11.bits.GetByteLE(); + + public static implicit operator string(P821 p11) + => p11.ToString(); + + public static implicit operator P821(byte _byte) + => new P821(_byte.GetBitsLE()); + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/Parameters/PAMStatus.cs b/Common/Hardware/Common.Hardware.SIRT/Parameters/PAMStatus.cs new file mode 100644 index 00000000..dd54d0d3 --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/Parameters/PAMStatus.cs @@ -0,0 +1,62 @@ +namespace Common.Hardware.SIRT.Parameters +{ + public class PAMStatus + { + private readonly byte[] bits; + + public PAMStatus(byte _byte) + => this.bits = _byte.GetBitsLE(); + + public bool CMD_UNKNOWN => this.bits[0] == 1; + + public bool WRONG_AUTH => this.bits[1] == 1; + + public bool EXPIRED_AUTH => this.bits[2] == 1; + + public bool MIXED_TYPES => this.bits[3] == 1; + + public bool OUT_OF_RANGE => this.bits[4] == 1; + + public override string ToString() + { + if (this.bits.GetByteLE() == 0) + { + return nameof(OK); + } + if (this.OUT_OF_RANGE) + { + return nameof(this.OUT_OF_RANGE); + } + else if (this.MIXED_TYPES) + { + return nameof(this.MIXED_TYPES); + } + else if (this.CMD_UNKNOWN) + { + return nameof(this.CMD_UNKNOWN); + } + else if (this.EXPIRED_AUTH) + { + return nameof(this.EXPIRED_AUTH); + } + else if (this.WRONG_AUTH) + { + return nameof(this.WRONG_AUTH); + } + else + { + return string.Join(string.Empty, this.bits); + } + } + + public static byte OK = 0; + + public static byte EXPIREDAUTH = 4; + + public static implicit operator byte(PAMStatus status) + => status?.bits?.GetByteLE() ?? 0xFF; + + public static implicit operator string(PAMStatus status) + => status?.ToString(); + } +} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/PamTimeout.cs b/Common/Hardware/Common.Hardware.SIRT/Parameters/PamTimeout.cs similarity index 71% rename from Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/PamTimeout.cs rename to Common/Hardware/Common.Hardware.SIRT/Parameters/PamTimeout.cs index 82439494..fb26531f 100644 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/PamTimeout.cs +++ b/Common/Hardware/Common.Hardware.SIRT/Parameters/PamTimeout.cs @@ -1,12 +1,10 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Parameters +namespace Common.Hardware.SIRT.Parameters { - using System; - public class PamTimeout { public PamTimeout() => this.Minutes = 0; - private PamTimeout(Byte minutes) => this.Minutes = minutes; + private PamTimeout(byte minutes) => this.Minutes = minutes; /// /// @@ -21,12 +19,12 @@ /// /// Several bits at parameter P81-1 or P81-2 may delete entry at PAM-Pool before 5 minutes elapsed. /// - public Byte Minutes { get; set; } + public byte Minutes { get; set; } - public static implicit operator Byte(PamTimeout param) + public static implicit operator byte(PamTimeout param) => param.Minutes; - public static implicit operator PamTimeout(Byte _byte) + public static implicit operator PamTimeout(byte _byte) => new PamTimeout(_byte); } } diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/RFModuleOperating.cs b/Common/Hardware/Common.Hardware.SIRT/Parameters/RFModuleOperating.cs similarity index 62% rename from Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/RFModuleOperating.cs rename to Common/Hardware/Common.Hardware.SIRT/Parameters/RFModuleOperating.cs index 1bd570b9..b996434d 100644 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/RFModuleOperating.cs +++ b/Common/Hardware/Common.Hardware.SIRT/Parameters/RFModuleOperating.cs @@ -1,14 +1,14 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Parameters +namespace Common.Hardware.SIRT.Parameters { using System; public class RFModuleOperating { - private readonly Byte[] bits; + private readonly byte[] bits; - public RFModuleOperating() => this.bits = new Byte[8]; + public RFModuleOperating() => this.bits = new byte[8]; - private RFModuleOperating(Byte[] bits) => this.bits = bits; + private RFModuleOperating(byte[] bits) => this.bits = bits; /// /// 0 -> Transparent Mode at 115k2 Baud 8,n,1 @@ -17,15 +17,15 @@ { get { - var bits = new Byte[8]; + var bits = new byte[8]; Array.Copy(this.bits, 0, bits, 0, 4); - return (OperatingModes)bits.GetByte(); + return (OperatingModes)bits.GetByteLE(); } set { - var bits = ((Byte)value).GetBits(); + var bits = ((byte)value).GetBitsLE(); Array.Copy(bits, 0, this.bits, 0, 4); } @@ -43,10 +43,10 @@ /// /// /// - public Boolean Antenna + public bool Antenna { get => this.bits[4] == 1; - set => this.bits[4] = (Byte)(value ? 1 : 0); + set => this.bits[4] = (byte)(value ? 1 : 0); } /// @@ -61,16 +61,16 @@ /// /// /// - public Boolean RfOff + public bool RfOff { get => this.bits[7] == 1; - set => this.bits[7] = (Byte)(value ? 1 : 0); + set => this.bits[7] = (byte)(value ? 1 : 0); } - public static implicit operator Byte(RFModuleOperating param) - => param.bits.GetByte(); + public static implicit operator byte(RFModuleOperating param) + => param.bits.GetByteLE(); - public static implicit operator RFModuleOperating(Byte _byte) - => new RFModuleOperating(_byte.GetBits()); + public static implicit operator RFModuleOperating(byte _byte) + => new RFModuleOperating(_byte.GetBitsLE()); } } diff --git a/Common/Hardware/Common.Hardware.SIRT/Parameters/RSSI.cs b/Common/Hardware/Common.Hardware.SIRT/Parameters/RSSI.cs new file mode 100644 index 00000000..21ab3875 --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/Parameters/RSSI.cs @@ -0,0 +1,36 @@ +namespace Common.Hardware.SIRT.Parameters +{ + public class RSSI + { + public RSSI(byte value, int mhz) + { + if (mhz == 433) + { + this.Dbm = value * 0.5 - 140; + this.Percent = value * 0.7333 - 57.6667; + } + else if (mhz == 868) + { + this.Dbm = value * 0.5 - 131.3; + this.Percent = value * 0.66 - 40.316; + } + + if (this.Percent > 100) + { + this.Percent = 100; + } + else if (this.Percent < 0) + { + this.Percent = 0; + } + } + + public double Dbm { get; } + + public double Percent { get; } + + public override string ToString() => $"{this.Dbm}dBm ({this.Percent:0.0}%)"; + + public static implicit operator string(RSSI rssi) => rssi?.ToString(); + } +} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/SirtOperating.cs b/Common/Hardware/Common.Hardware.SIRT/Parameters/SirtOperating.cs similarity index 78% rename from Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/SirtOperating.cs rename to Common/Hardware/Common.Hardware.SIRT/Parameters/SirtOperating.cs index 0ca06941..2d723368 100644 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/SirtOperating.cs +++ b/Common/Hardware/Common.Hardware.SIRT/Parameters/SirtOperating.cs @@ -1,14 +1,12 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Parameters +namespace Common.Hardware.SIRT.Parameters { - using System; - public class SirtOperating { - private readonly Byte[] bits; + private readonly byte[] bits; - public SirtOperating() => this.bits = new Byte[8]; + public SirtOperating() => this.bits = new byte[8]; - private SirtOperating(Byte[] bits) => this.bits = bits; + private SirtOperating(byte[] bits) => this.bits = bits; /// /// @@ -23,10 +21,10 @@ /// /// non requested messages are received radio payloads if a radio module is switched on /// - public Boolean DataBtOut + public bool DataBtOut { get => this.bits[0] == 1; - set => this.bits[0] = (Byte)(value ? 1 : 0); + set => this.bits[0] = (byte)(value ? 1 : 0); } /// @@ -40,12 +38,12 @@ /// if both RF-Modules are set to SensusRF Mode, the channel with higher RSSI Level will be send out /// /// - /// for test purposes both receiver outputs can be shown - but remember Double traffic rate on Bluetoothor USB-output + /// for test purposes both receiver outputs can be shown - but remember double traffic rate on Bluetoothor USB-output /// - public Boolean BothChsOut + public bool BothChsOut { get => this.bits[1] == 1; - set => this.bits[1] = (Byte)(value ? 1 : 0); + set => this.bits[1] = (byte)(value ? 1 : 0); } /// @@ -61,10 +59,10 @@ /// /// may be only interesting for test purposes /// - public Boolean IgnoreCRC + public bool IgnoreCRC { get => this.bits[2] == 1; - set => this.bits[2] = (Byte)(value ? 1 : 0); + set => this.bits[2] = (byte)(value ? 1 : 0); } /// @@ -80,10 +78,10 @@ /// /// New at Version 1.0.0.6 /// - public Boolean IgnoreUSBrules + public bool IgnoreUSBrules { get => this.bits[3] == 1; - set => this.bits[3] = (Byte)(value ? 1 : 0); + set => this.bits[3] = (byte)(value ? 1 : 0); } /// @@ -99,10 +97,10 @@ /// /// timeout starts at beginning, if any command or communication to and from SIRT is initiated /// - public Boolean SirtPwrSave + public bool SirtPwrSave { get => this.bits[6] == 1; - set => this.bits[6] = (Byte)(value ? 1 : 0); + set => this.bits[6] = (byte)(value ? 1 : 0); } /// @@ -121,16 +119,16 @@ /// on per command only by pushing green button for a second /// /// - public Boolean SirtOff + public bool SirtOff { get => this.bits[7] == 1; - set => this.bits[7] = (Byte)(value ? 1 : 0); + set => this.bits[7] = (byte)(value ? 1 : 0); } - public static implicit operator Byte(SirtOperating param) - => param.bits.GetByte(); + public static implicit operator byte(SirtOperating param) + => param.bits.GetByteLE(); - public static implicit operator SirtOperating(Byte _byte) - => new SirtOperating(_byte.GetBits()); + public static implicit operator SirtOperating(byte _byte) + => new SirtOperating(_byte.GetBitsLE()); } } diff --git a/LaaProductionWeb/LaaProduction.SQL/Properties/AssemblyInfo.cs b/Common/Hardware/Common.Hardware.SIRT/Properties/AssemblyInfo.cs similarity index 88% rename from LaaProductionWeb/LaaProduction.SQL/Properties/AssemblyInfo.cs rename to Common/Hardware/Common.Hardware.SIRT/Properties/AssemblyInfo.cs index 82af48cd..037fae8a 100644 --- a/LaaProductionWeb/LaaProduction.SQL/Properties/AssemblyInfo.cs +++ b/Common/Hardware/Common.Hardware.SIRT/Properties/AssemblyInfo.cs @@ -5,11 +5,11 @@ using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("LaaProduction.SQL")] +[assembly: AssemblyTitle("Common.Hardware.SIRT")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("LaaProduction.SQL")] +[assembly: AssemblyProduct("Common.Hardware.SIRT")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -20,7 +20,7 @@ using System.Runtime.InteropServices; [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("5a3f8aa8-d8cb-4ab4-b6b7-c378a582ce75")] +[assembly: Guid("8de8e742-ee0a-4004-aa49-3d08d748e5ac")] // Version information for an assembly consists of the following four values: // diff --git a/Common/Hardware/Common.Hardware.SIRT/SIRTBroadcaster.cs b/Common/Hardware/Common.Hardware.SIRT/SIRTBroadcaster.cs new file mode 100644 index 00000000..84b40502 --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/SIRTBroadcaster.cs @@ -0,0 +1,219 @@ +namespace Common.Hardware.SIRT +{ + using Common.Hardware.SIRT.Tasks; + + using System; + using System.Collections.Concurrent; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; + + public class SIRTBroadcaster + { + private readonly ConcurrentDictionary tasks; + private readonly ConcurrentDictionary pampool; + private readonly SIRTStream sirtStream; + + public string AdddressesInPamPool() + { + return string.Join("\t", this.pampool.Values); + } + + private CancellationTokenSource cancellationTokenSource; + private CancellationToken cancellationToken; + private Task receiveStream; + private Task pampoolStream; + + public SIRTBroadcaster(string portName) + { + this.sirtStream = new SIRTStream(portName); + this.pampool = new ConcurrentDictionary(); + _ = this.pampool.GetOrAdd(0, 0); + _ = this.pampool.GetOrAdd(0, 0); + _ = this.pampool.GetOrAdd(0, 0); + _ = this.pampool.GetOrAdd(0, 0); + _ = this.pampool.GetOrAdd(0, 0); + this.tasks = new ConcurrentDictionary(); + } + + public event Action Connected; + public event Action Disconnected; + public event Action MessageReceived; + + public string Id { get; private set; } + + public int Frequency { get; private set; } + + public bool IsOpen => this.sirtStream.IsOpen; + + public string PortName => this.sirtStream.PortName; + + public void Close() + { + this.sirtStream.Close(); + + void Try(Action action) + { + try + { + action(); + } + catch (Exception e) + { + SIRTLogger.LogMessage(e); + } + } + + Try(this.tasks.Clear); + Try(this.pampool.Clear); + Try(this.cancellationTokenSource.Cancel); + + var disconnectedEvent = this.Disconnected; + + if (disconnectedEvent != null) + { + disconnectedEvent?.Invoke(this); + } + } + + public void Open() + { + this.sirtStream.Open(); + + if (this.sirtStream.IsOpen) + { + this.cancellationTokenSource = new CancellationTokenSource(); + this.cancellationToken = this.cancellationTokenSource.Token; + this.receiveStream = Task.Factory + .StartNew(this.ReceiveAsync, this.cancellationToken) + .ContinueWith(this.LogContinuationError); + + SIRTLogger.LogState("Activating SIRT"); + + if (this.TryActivate(out var id, out var frequency)) + { + this.Id = id; + this.Frequency = frequency; + this.pampoolStream = Task.Factory + .StartNew(this.PampoolAsync, this.cancellationToken) + .ContinueWith(this.LogContinuationError); + + var connectedEvent = this.Connected; + + if (connectedEvent != null) + { + connectedEvent?.Invoke(this); + } + + SIRTLogger.LogState($"Activated: {frequency} - {id}"); + } + else + { + this.Close(); + SIRTLogger.LogState("Activation failed"); + } + } + } + + /// + /// Checks if the given task can be sent then replaces existing SIRTTask (if any) and starts the new one. + /// + public bool Start(SIRTTask task) + { + if (task.Frequency == this.Frequency) + { + var address = task.RequestAddress; + var addresses = this.pampool.Values.ToList(); + + if (addresses.Any(x => x == 0 || x == address)) + { + var bytes = this.tasks + .AddOrUpdate(address, addr => task, (addr, oldTask) => task) + .Start(); + this.sirtStream.Write(bytes); + SIRTLogger.LogMessage($"{this.PortName}|TX: {BitConverter.ToString(bytes)}"); + + return true; + } + else + { + SIRTLogger.LogMessage($"{this.PortName}|PP: {string.Join(", ", addresses)}"); + } + } + else + { + SIRTLogger.LogMessage($"{this.PortName}|RF: {task.RequestAddress} -> {task.Frequency} != {this.Frequency}"); + } + + return false; + } + + private void LogContinuationError(Task task) + { + if (task?.Exception != null) + { + SIRTLogger.LogState(task.Exception); + } + } + + private async Task PampoolAsync() + { + var task = new ReadPampoolTask(this.Frequency); + var addresses = task.Addresses; + var addressesCount = addresses.Length; + + this.pampool.Clear(); + + for (byte i = 0; i < addressesCount; i++) + { + this.pampool.AddOrUpdate(i, addresses[i], (ix, addr) => addresses[i]); + } + + while (this.IsOpen) + { + this.Start(task); + task.Wait(); + + addresses = task.Addresses; + + for (byte i = 0; i < addressesCount; i++) + { + this.pampool.AddOrUpdate(i, addresses[i], (ix, addr) => addresses[i]); + } + + await Task.Delay(3000); + } + } + + private void ReceiveAsync() + { + SIRTLogger.LogState("Message receiving started"); + + var cancellationToken = this.cancellationToken; + var messageReceivedEvent = this.MessageReceived; + + foreach (SIRTMessage message in this.sirtStream.Read()) + { + message.Timestamp = DateTimeOffset.UtcNow; + message.Frequency = this.Frequency; + message.SirtId = this.Id; + + if (this.tasks.TryGetValue(message.Address, out var task)) + { + task?.Push(message); + } + + if (messageReceivedEvent != null) + { + messageReceivedEvent(message); + } + + SIRTLogger.LogMessage($"{this.PortName}|RX: {BitConverter.ToString(message)}"); + + cancellationToken.ThrowIfCancellationRequested(); + } + + SIRTLogger.LogState("Message receiving stopped"); + } + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/SIRTChannel.cs b/Common/Hardware/Common.Hardware.SIRT/SIRTChannel.cs new file mode 100644 index 00000000..4426839f --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/SIRTChannel.cs @@ -0,0 +1,20 @@ +namespace Common.Hardware.SIRT +{ + using Common.Hardware.SIRT.Tasks; + + using System; + + public class SIRTChannel + { + public event Action MessageReceived; + + public uint RequestAddress { get; set; } + + public uint ResponseAddress { get; set; } + + public Action WriteHandler { get; set; } + + internal void Enqueue(SIRTMessage message) + => this.MessageReceived?.Invoke(message); + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/SIRTConstants.cs b/Common/Hardware/Common.Hardware.SIRT/SIRTConstants.cs new file mode 100644 index 00000000..ac050e10 --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/SIRTConstants.cs @@ -0,0 +1,31 @@ +namespace Common.Hardware.SIRT +{ + public class SIRTConstants + { + public const byte W_PAM = 0x81; + public const byte R_PAM = 0x82; + public const byte W_REG = 0x84; + public const byte R_REG = 0x87; + + public const byte MIN_LEN = 12; + public const byte PC_SIRT = 0x55; + public const byte SIRT_PC = 0xFF; + public const byte MSG_END = 0x16; + + public const byte DIR_IX = 0; + public const byte CMD_IX = 1; + public const byte P1_IX = 2; + public const byte P2_IX = 3; + public const byte ADDR_IX = 4; + public const byte LEN_IX = 8; + public const byte DATA_IX = 9; + + public static byte AKN_ANS = 0x12; + public static byte FROM_AIR = 0x11; + + public static byte LAT = 0x01; + public static byte BUP = 0x00; + public static byte DEBUG = 0x0B; + public static byte SEMI = 0x08; + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/SIRTExtensions.cs b/Common/Hardware/Common.Hardware.SIRT/SIRTExtensions.cs new file mode 100644 index 00000000..9525a3c1 --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/SIRTExtensions.cs @@ -0,0 +1,671 @@ +namespace Common.Hardware.SIRT +{ + using Common.Hardware.SIRT.Parameters; + using Common.Hardware.SIRT.Tasks; + + using System; + using System.Collections.Generic; + using System.Text.RegularExpressions; + using System.Threading; + + public static class SIRTExtensions + { + private const int ByteSize = 8; + private const int SByteSize = 16; + private const int Int16Size = 16; + private const int UInt16Size = 16; + private const int Int32Size = 32; + private const int UInt32Size = 32; + private const int Int64Size = 64; + private const int UInt64Size = 64; + + public static byte[] GetBitsBE(this byte value) + { + var bits = new byte[ByteSize]; + + for (int i = 7, x = 0; i >= 0; i--, x++) + { + bits[x] = (byte)((value >> i) & 1); + } + + return bits; + } + + public static byte[] GetBitsLE(this byte value) + { + var bits = new byte[ByteSize]; + + for (var i = 0; i < ByteSize; i++) + { + bits[i] = (byte)((value >> i) & 1); + } + + return bits; + } + + public static byte[] GetBitsLE(this ushort value) + { + var bits = new byte[UInt16Size]; + + for (var i = 0; i < UInt16Size; i++) + { + bits[i] = (byte)((value >> i) & 1); + } + + return bits; + } + + public static byte GetByteLE(this byte[] bits) + { + if (bits is null) + { + return default(byte); + } + + var value = default(byte); + + for (var i = 0; i < ByteSize; i++) + { + value ^= (byte)(bits[i] << i); + } + + return value; + } + + public static byte GetByteLE(this byte[] bits, int start = 0, int count = 0) + { + if (bits is null) + { + return default(byte); + } + + if (count == 0) + { + count = bits.Length; + } + + var length = start + count; + var _byte = default(byte); + + for (int i = start, x = 0; i < length; i++, x++) + { + _byte ^= (byte)(bits[i] << x); + } + + return _byte; + } + + public static void SetBitsLE(this byte value, byte[] bits, int start = 0, int count = 0) + { + if (bits is null) + { + return; + } + + if (count == 0 || count > bits.Length) + { + count = bits.Length; + } + + for (int i = start, x = 0; i < count; i++, x++) + { + bits[i] = (byte)((value >> x) % 2); + } + } + + public static byte[] GetBytesBE(this sbyte value) + { + var bytes = new byte[2]; + var index = 0; + + bytes[index++] = (byte)(value >> 8); + bytes[index] = (byte)value; + + return bytes; + } + + public static byte[] GetBytesBE(this short value) + { + var bytes = new byte[2]; + var index = 0; + + bytes[index++] = (byte)(value >> 8); + bytes[index] = (byte)value; + + return bytes; + } + + public static byte[] GetBytesBE(this int value) + { + var bytes = new byte[4]; + var index = 0; + + bytes[index++] = (byte)(value >> 24); + bytes[index++] = (byte)(value >> 16); + bytes[index++] = (byte)(value >> 8); + bytes[index] = (byte)value; + + return bytes; + } + + public static byte[] GetBytesBE(this long value) + { + var bytes = new byte[8]; + var index = 0; + + bytes[index++] = (byte)(value >> 56); + bytes[index++] = (byte)(value >> 48); + bytes[index++] = (byte)(value >> 40); + bytes[index++] = (byte)(value >> 32); + bytes[index++] = (byte)(value >> 24); + bytes[index++] = (byte)(value >> 16); + bytes[index++] = (byte)(value >> 8); + bytes[index] = (byte)value; + + return bytes; + } + + public static byte[] GetBytesBE(this ushort value) + { + var bytes = new byte[2]; + var index = 0; + + bytes[index++] = (byte)(value >> 8); + bytes[index] = (byte)value; + + return bytes; + } + + public static byte[] GetBytesBE(this uint value) + { + var bytes = new byte[4]; + var index = 0; + + bytes[index++] = (byte)(value >> 24); + bytes[index++] = (byte)(value >> 16); + bytes[index++] = (byte)(value >> 8); + bytes[index] = (byte)value; + + return bytes; + } + + public static byte[] GetBytesBE(this ulong value) + { + var bytes = new byte[8]; + var index = 0; + + bytes[index++] = (byte)(value >> 56); + bytes[index++] = (byte)(value >> 48); + bytes[index++] = (byte)(value >> 40); + bytes[index++] = (byte)(value >> 32); + bytes[index++] = (byte)(value >> 24); + bytes[index++] = (byte)(value >> 16); + bytes[index++] = (byte)(value >> 8); + bytes[index] = (byte)value; + + return bytes; + } + + public static byte[] GetBytesLE(this sbyte value) + { + var bytes = new byte[2]; + var index = 0; + + bytes[index++] = (byte)value; + bytes[index] = (byte)(value >> 8); + + return bytes; + } + + public static byte[] GetBytesLE(this short value) + { + var bytes = new byte[2]; + var index = 0; + + bytes[index++] = (byte)value; + bytes[index] = (byte)(value >> 8); + + return bytes; + } + + public static byte[] GetBytesLE(this int value) + { + var bytes = new byte[4]; + var index = 0; + + bytes[index++] = (byte)value; + bytes[index++] = (byte)(value >> 8); + bytes[index++] = (byte)(value >> 16); + bytes[index] = (byte)(value >> 24); + + return bytes; + } + + public static byte[] GetBytesLE(this long value) + { + var bytes = new byte[8]; + var index = 0; + + bytes[index++] = (byte)value; + bytes[index++] = (byte)(value >> 8); + bytes[index++] = (byte)(value >> 16); + bytes[index++] = (byte)(value >> 24); + bytes[index++] = (byte)(value >> 32); + bytes[index++] = (byte)(value >> 40); + bytes[index++] = (byte)(value >> 48); + bytes[index] = (byte)(value >> 56); + + return bytes; + } + + public static byte[] GetBytesLE(this ushort value) + { + var bytes = new byte[2]; + var index = 0; + + bytes[index++] = (byte)value; + bytes[index] = (byte)(value >> 8); + + return bytes; + } + + public static byte[] GetBytesLE(this uint value) + { + var bytes = new byte[4]; + var index = 0; + + bytes[index++] = (byte)value; + bytes[index++] = (byte)(value >> 8); + bytes[index++] = (byte)(value >> 16); + bytes[index] = (byte)(value >> 24); + + return bytes; + } + + public static byte[] GetBytesLE(this ulong value) + { + var bytes = new byte[8]; + var index = 0; + + bytes[index++] = (byte)value; + bytes[index++] = (byte)(value >> 8); + bytes[index++] = (byte)(value >> 16); + bytes[index++] = (byte)(value >> 24); + bytes[index++] = (byte)(value >> 32); + bytes[index++] = (byte)(value >> 40); + bytes[index++] = (byte)(value >> 48); + bytes[index] = (byte)(value >> 56); + + return bytes; + } + + public static sbyte ToSByteBE(this byte[] bytes, int start = 0) + { + var value = default(sbyte); + + value ^= (sbyte)(bytes[start++] << 8); + value ^= (sbyte)bytes[start]; + + return value; + } + + public static short ToInt16BE(this byte[] bytes, int start = 0) + { + var value = default(short); + + value ^= (short)(bytes[start++] << 8); + value ^= bytes[start]; + + return value; + } + + public static int ToInt32BE(this byte[] bytes, int start = 0) + { + var value = default(int); + + value ^= bytes[start++] << 24; + value ^= bytes[start++] << 16; + value ^= bytes[start++] << 8; + value ^= bytes[start]; + + return value; + } + + public static long ToInt64BE(this byte[] bytes, int start = 0) + { + var value = default(long); + + value ^= bytes[start++] << 56; + value ^= bytes[start++] << 48; + value ^= bytes[start++] << 40; + value ^= bytes[start++] << 32; + value ^= bytes[start++] << 24; + value ^= bytes[start++] << 16; + value ^= bytes[start++] << 8; + value ^= bytes[start]; + + return value; + } + + public static ushort ToUInt16BE(this byte[] bytes, int start = 0) + { + var value = default(ushort); + + value ^= (ushort)(bytes[start++] << 8); + value ^= bytes[start]; + + return value; + } + + public static uint ToUInt32BE(this byte[] bytes, int start = 0) + { + var value = default(uint); + + value ^= (uint)(bytes[start++] << 24); + value ^= (uint)(bytes[start++] << 16); + value ^= (uint)(bytes[start++] << 8); + value ^= bytes[start]; + + return value; + } + + public static ulong ToUInt64BE(this byte[] bytes, int start = 0) + { + var value = default(ulong); + + value ^= (ulong)(bytes[start++] << 56); + value ^= (ulong)(bytes[start++] << 48); + value ^= (ulong)(bytes[start++] << 40); + value ^= (ulong)(bytes[start++] << 32); + value ^= (ulong)(bytes[start++] << 24); + value ^= (ulong)(bytes[start++] << 16); + value ^= (ulong)(bytes[start++] << 8); + value ^= bytes[start]; + + return value; + } + + public static sbyte ToSByteLE(this byte[] bytes, int start = 0) + { + var value = default(sbyte); + + value ^= (sbyte)bytes[start++]; + value ^= (sbyte)(bytes[start] << 8); + + return value; + } + + public static short ToInt16LE(this byte[] bytes, int start = 0) + { + var value = default(short); + + value ^= bytes[start++]; + value ^= (short)(bytes[start] << 8); + + return value; + } + + public static int ToInt32LE(this byte[] bytes, int start = 0) + { + var value = default(int); + + value ^= bytes[start++]; + value ^= bytes[start++] << 8; + value ^= bytes[start++] << 16; + value ^= bytes[start] << 24; + + return value; + } + + public static long ToInt64LE(this byte[] bytes, int start = 0) + { + var value = default(long); + + value ^= bytes[start++]; + value ^= bytes[start++] << 8; + value ^= bytes[start++] << 16; + value ^= bytes[start++] << 24; + value ^= bytes[start++] << 32; + value ^= bytes[start++] << 40; + value ^= bytes[start++] << 48; + value ^= bytes[start] << 56; + + return value; + } + + public static ushort ToUInt16LE(this byte[] bytes, int start = 0) + { + var value = default(ushort); + + value ^= bytes[start++]; + value ^= (ushort)(bytes[start] << 8); + + return value; + } + + public static ushort ToUIint16LEFromBits(this byte[] bits) + { + if (bits is null) + { + bits = new byte[UInt16Size]; + } + + Array.Resize(ref bits, UInt16Size); + + ushort value = 0; + + for (var i = 0; i < UInt16Size; i++) + { + value ^= (ushort)(bits[i] << i); + } + + return value; + } + + public static uint ToUInt32LE(this byte[] bytes, int start = 0) + { + var value = default(uint); + + value ^= bytes[start++]; + value ^= (uint)(bytes[start++] << 8); + value ^= (uint)(bytes[start++] << 16); + value ^= (uint)(bytes[start] << 24); + + return value; + } + + public static ulong ToUInt64LE(this byte[] bytes, int start = 0) + { + var value = default(ulong); + + value ^= bytes[start++]; + value ^= (ulong)(bytes[start++] << 8); + value ^= (ulong)(bytes[start++] << 16); + value ^= (ulong)(bytes[start++] << 24); + value ^= (ulong)(bytes[start++] << 32); + value ^= (ulong)(bytes[start++] << 40); + value ^= (ulong)(bytes[start++] << 48); + value ^= (ulong)(bytes[start] << 56); + + return value; + } + + public static ushort CRCCCITT(this byte[] bytes, int start = 0, int length = 0) + { + if (length == 0) + { + length = bytes.Length; + } + + var crc = (ushort)0xFFFF; + + for (var b = start; b < length; b++) + { + var _byte = bytes[b]; + var token = (ushort)((_byte << 8) & 0xFF00); + + for (var i = 0; i < 8; i++) + { + if (0x8000 == ((crc ^ token) & 0x8000)) + { + crc <<= 1; + crc ^= 0x1021; + } + else + { + crc <<= 1; + } + + token <<= 1; + } + } + + return crc; + } + + public static byte[] GetBytes(this string hexString) + { + var bytes = new List(); + + if (!string.IsNullOrWhiteSpace(hexString)) + { + hexString = Regex.Replace(hexString, "[^a-fA-F0-9]*", string.Empty); + + var first = true; + var x = 0; + + foreach (var hex in hexString) + { + if ('0' <= hex && hex <= '9') + { + x += hex - '0'; + } + else if ('A' <= hex && hex <= 'F') + { + x += hex - 'A' + 10; + } + else if ('a' <= hex && hex <= 'f') + { + x = hex - 'a' + 10; + } + else + { + continue; + } + + if (first) + { + x *= 16; + } + else + { + bytes.Add((byte)x); + + x = 0; + } + + first = !first; + } + } + + return bytes.ToArray(); + } + + public static byte[] GetEncryptionKey(this string hexString, int requiredLength = 16) + { + var bytes = hexString.GetBytes(); + + if (bytes?.Length != requiredLength) + { + return default(byte[]); + } + + return bytes; + } + + public static uint GetAddress(this byte[] bytes, int index) + { + var value = default(uint); + var _index = index; + + value ^= (uint)(bytes[_index++] << 24); + value ^= (uint)(bytes[_index++] << 16); + value ^= (uint)(bytes[_index++] << 8); + value ^= bytes[_index]; + + return value; + } + + public static ushort GetCrc(this byte[] bytes, int index) + { + var value = default(ushort); + var _index = index; + + value ^= (ushort)(bytes[_index++] << 8); + value ^= bytes[_index]; + + return value; + } + + public static void SetAddress(this byte[] bytes, int index, uint address) + { + var _index = index; + + bytes[_index++] = (byte)(address >> 24); + bytes[_index++] = (byte)(address >> 16); + bytes[_index++] = (byte)(address >> 8); + bytes[_index] = (byte)address; + } + + public static void SetCrc(this byte[] bytes, int index, ushort crc) + { + var _index = index; + + bytes[_index++] = (byte)(crc >> 8); + bytes[_index] = (byte)crc; + } + + public static bool TryActivate(this SIRTBroadcaster broadcaster, out string id, out int frequency) + { + id = default(string); + frequency = default(int); + var awaiter = new ManualResetEventSlim(); + var task = default(SIRTTask); + var done = false; + + task = new ActivateSIRTTask(); + + for (var i = 0; i < 3 && task.State != SIRTTaskState.Completed; i++) + { + broadcaster.Start(task); + task.Wait(); + + done = task.State == SIRTTaskState.Completed; + } + + if (!done) + { + return false; + } + + done = false; + task = new IdentifySIRTTask(); + + for (var i = 0; i < 3 && task.State != SIRTTaskState.Completed; i++) + { + broadcaster.Start(task); + task.Wait(); + + done = task.State == SIRTTaskState.Completed; + } + + if (done) + { + id = task.SirtId; + frequency = task.Frequency; + } + + return done; + } + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/SIRTHub.cs b/Common/Hardware/Common.Hardware.SIRT/SIRTHub.cs new file mode 100644 index 00000000..96199f3d --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/SIRTHub.cs @@ -0,0 +1,126 @@ +namespace Common.Hardware.SIRT +{ + using Common.Hardware.SIRT.Tasks; + + using System; + using System.Collections.Concurrent; + using System.Linq; + using System.Runtime.CompilerServices; + using System.Threading; + + public class SIRTHub + { + private static readonly ConcurrentDictionary broadcasters + = new ConcurrentDictionary(); + + public event Action Connected; + public event Action Disconnected; + public event Action StateLogging; + + public event Action MessageProcessed; + + public void Close(string portName) + { + if (broadcasters.TryRemove(portName, out var sirtBroadcaster)) + { + var disconnectedEvent = new ManualResetEventSlim(); + + void SIRTBroadcaster_Disconnected(SIRTBroadcaster _sirtBroadcaster) + { + disconnectedEvent.Set(); + + this.Disconnected?.Invoke(_sirtBroadcaster); + } + + sirtBroadcaster.Disconnected += SIRTBroadcaster_Disconnected; + + sirtBroadcaster.Close(); + disconnectedEvent.Wait(3000); + + sirtBroadcaster.Disconnected -= SIRTBroadcaster_Disconnected; + sirtBroadcaster.MessageReceived -= this.Invoke_MessageProcessed; + } + } + + public bool Start(SIRTTask task) + { + var started = false; + + foreach (var broadcaster in broadcasters.Values) + { + if (broadcaster.Start(task)) + { + started = true; + + break; + } + } + + return started; + } + + public bool TryOpen(string portName, out string hexId, out int frequency) + { + hexId = default(string); + frequency = default(int); + + var connectedEvent = new ManualResetEventSlim(); + var sirtBroadcaster = new SIRTBroadcaster(portName); + + void SIRTBroadcasterConnected(SIRTBroadcaster _) + { + broadcasters.GetOrAdd(portName, sirtBroadcaster); + connectedEvent.Set(); + + this.Connected?.Invoke(sirtBroadcaster); + } + + void SIRTBroadcasterDisconnected(SIRTBroadcaster _) + { + connectedEvent.Set(); + + this.Disconnected?.Invoke(sirtBroadcaster); + } + + sirtBroadcaster.Connected += SIRTBroadcasterConnected; + sirtBroadcaster.Disconnected += SIRTBroadcasterDisconnected; + + sirtBroadcaster.Open(); + connectedEvent.Wait(3000); + + hexId = sirtBroadcaster.Id; + frequency = sirtBroadcaster.Frequency; + sirtBroadcaster.Connected -= SIRTBroadcasterConnected; + sirtBroadcaster.Disconnected -= SIRTBroadcasterDisconnected; + sirtBroadcaster.MessageReceived += this.Invoke_MessageProcessed; + + return sirtBroadcaster.IsOpen; + } + + public void Stop() + { + try + { + foreach (var broadcaster in broadcasters.Values.ToList()) + { + broadcaster.Close(); + } + + broadcasters.Clear(); + } + catch (Exception e) + { + this.Invoke_StateLogging(e); + } + } + + private void Invoke_StateLogging(object state) + => this.StateLogging?.Invoke($"{nameof(SIRTHub)}|{state}"); + + private void Invoke_StateLogging(object state, [CallerMemberName] string member = "") + => this.StateLogging?.Invoke($"{nameof(SIRTHub)}|{member}|{state}"); + + private void Invoke_MessageProcessed(SIRTMessage message) + => this.MessageProcessed?.Invoke(message); + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/SIRTLogger.cs b/Common/Hardware/Common.Hardware.SIRT/SIRTLogger.cs new file mode 100644 index 00000000..44f5fb7a --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/SIRTLogger.cs @@ -0,0 +1,41 @@ +namespace Common.Hardware.SIRT +{ + using System; + + public static class SIRTLogger + { + public static event Action Message; + public static event Action RawData; + public static event Action State; + + internal static void LogMessage(object message) + { + var messageEvent = Message; + + if (messageEvent != null) + { + messageEvent($"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fffffff}|{message}"); + } + } + + internal static void LogRawData(object data) + { + var rawDataEvent = RawData; + + if (rawDataEvent != null) + { + rawDataEvent($"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fffffff}|{data}"); + } + } + + internal static void LogState(object state) + { + var stateEvent = State; + + if (stateEvent != null) + { + stateEvent($"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fffffff}|{state}"); + } + } + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/SIRTMessage.cs b/Common/Hardware/Common.Hardware.SIRT/SIRTMessage.cs new file mode 100644 index 00000000..f7681a30 --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/SIRTMessage.cs @@ -0,0 +1,117 @@ +namespace Common.Hardware.SIRT +{ + using System; + + using static SIRTConstants; + + public class SIRTMessage + { + private byte[] bytes; + + public SIRTMessage() + { + this.bytes = new byte[MIN_LEN]; + this.bytes[0] = PC_SIRT; + } + + public SIRTMessage(byte[] bytes) + => this.bytes = bytes; + + public byte Direction + { + get => this.bytes[DIR_IX]; + set => this.bytes[DIR_IX] = value; + } + + public byte Command + { + get => this.bytes[CMD_IX]; + set => this.bytes[CMD_IX] = value; + } + + public byte P1 + { + get => this.bytes[P1_IX]; + set => this.bytes[P1_IX] = value; + } + + public byte P2 + { + get => this.bytes[P2_IX]; + set => this.bytes[P2_IX] = value; + } + + public uint Address + { + get => this.bytes.GetAddress(ADDR_IX); + set => this.bytes.SetAddress(ADDR_IX, value); + } + + public byte Length + { + get => this.bytes[LEN_IX]; + set => this.bytes[LEN_IX] = value; + } + + public byte[] Payload + { + get + { + var payload = new byte[this.Length]; + + Array.Copy(bytes, DATA_IX, payload, 0, this.Length); + + return payload; + } + set + { + var payload = value ?? Array.Empty(); + this.Length = (byte)payload.Length; + + Array.Resize(ref this.bytes, MIN_LEN + this.Length); + Array.Clear(this.bytes, DATA_IX, this.bytes.Length - DATA_IX); + Array.Copy(payload, 0, this.bytes, DATA_IX, this.Length); + } + } + + public ushort Crc + { + get => this.bytes.GetCrc(this.bytes.Length - 3); + set => this.bytes.SetCrc(this.bytes.Length - 3, value); + } + + public byte End + { + get => this.bytes[this.bytes.Length - 1]; + set => this.bytes[this.bytes.Length - 1] = value; + } + + public string SirtId { get; set; } + + public int Frequency { get; set; } + + public DateTimeOffset Timestamp { get; set; } = DateTimeOffset.UtcNow; + + public override string ToString() + => $"{this.Timestamp}|{this.SirtId}|{this.Frequency}|{BitConverter.ToString(this.GetBytes())}"; + + public byte[] GetBytes() + { + var crc = this.bytes.CRCCCITT(1, this.bytes.Length - 3); + + if (this.Direction == PC_SIRT) + { + this.Crc = crc; + this.End = MSG_END; + } + + return this.bytes; + } + + public static implicit operator SIRTMessage(byte[] bytes) + => new SIRTMessage(bytes); + + public static implicit operator byte[] (SIRTMessage message) + => message?.GetBytes() ?? Array.Empty(); + } +} \ No newline at end of file diff --git a/Common/Hardware/Common.Hardware.SIRT/SIRTPort.cs b/Common/Hardware/Common.Hardware.SIRT/SIRTPort.cs new file mode 100644 index 00000000..78b80d80 --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/SIRTPort.cs @@ -0,0 +1,116 @@ +namespace Common.Hardware.SIRT +{ + using System; + using System.Collections.Generic; + using System.IO.Ports; + using System.Threading; + + public class SIRTPort + { + private readonly SerialPort serialPort; + + public SIRTPort(string portName) + => this.serialPort = new SerialPort(portName, 112500, Parity.None, 8, StopBits.One); + + public bool IsOpen => this.serialPort.IsOpen; + + public string PortName => this.serialPort.PortName; + + public void Close() + { + SIRTLogger.LogState($"Closing: {this}"); + + var waitEvent = new ManualResetEventSlim(); + + void SerialPortDisposed(object sender, EventArgs args) + { + waitEvent.Set(); + } + + this.serialPort.Disposed += SerialPortDisposed; + + try + { + this.serialPort.Close(); + waitEvent.Wait(5000); + } + catch (Exception e) + { + SIRTLogger.LogMessage(e); + } + + this.serialPort.Disposed -= SerialPortDisposed; + + if (!this.IsOpen) + { + SIRTLogger.LogState($"Closed: {this}"); + } + } + + public void Open() + { + SIRTLogger.LogState($"Opening: {this}"); + + try + { + this.serialPort.Open(); + } + catch (Exception e) + { + SIRTLogger.LogMessage(e); + } + + if (this.IsOpen) + { + SIRTLogger.LogState($"Opened: {this}"); + } + } + + public IEnumerable Read() + { + var buffer = Array.Empty(); + var length = default(int); + + while (this.serialPort.IsOpen) + { + try + { + buffer = new byte[this.serialPort.ReadBufferSize]; + length = this.serialPort.Read(buffer, 0, buffer.Length); + } + catch (Exception e) + { + SIRTLogger.LogMessage(e); + + continue; + } + + Array.Resize(ref buffer, length); + + yield return buffer; + + SIRTLogger.LogRawData($"{this.PortName}|RX: {BitConverter.ToString(buffer)}"); + } + } + + public override string ToString() + => $"{this.serialPort.PortName}, " + + $"{this.serialPort.BaudRate}, " + + $"{this.serialPort.Parity}, " + + $"{this.serialPort.DataBits}, " + + $"{this.serialPort.StopBits}"; + + public void Write(byte[] bytes) + { + try + { + this.serialPort.Write(bytes, 0, bytes.Length); + SIRTLogger.LogRawData($"{this.PortName}|TX: {BitConverter.ToString(bytes)}"); + } + catch (Exception e) + { + SIRTLogger.LogMessage(e); + } + } + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/SIRTStream.cs b/Common/Hardware/Common.Hardware.SIRT/SIRTStream.cs new file mode 100644 index 00000000..55274d9f --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/SIRTStream.cs @@ -0,0 +1,104 @@ +namespace Common.Hardware.SIRT +{ + using System.Collections.Generic; + + public sealed class SIRTStream + { + private readonly SIRTPort sirtPort; + + public SIRTStream(string portName) => this.sirtPort = new SIRTPort(portName); + + public bool IsOpen => this.sirtPort.IsOpen; + + public string PortName => this.sirtPort.PortName; + + public void Close() => this.sirtPort.Close(); + + public void Open() => this.sirtPort.Open(); + + public IEnumerable Read() + { + var buffer = new List(); + var bufferLength = default(int); + var startIndex = default(int); + var lengthIndex = default(int); + var length = default(int); + var endIndex = default(int); + var messageLength = default(int); + var message = default(byte[]); + + foreach (var bytes in this.sirtPort.Read()) + { + buffer.AddRange(bytes); + bufferLength = buffer.Count; + + // until can parse messages from the buffer + while (bufferLength >= 12) + { + // reset the start index if needed + if (startIndex < 0) + { + startIndex = 0; + } + + startIndex = buffer.IndexOf(SIRTConstants.SIRT_PC, startIndex); + + // when no start byte found clear and break + if (startIndex < 0) + { + SIRTLogger.LogState($"Message start not found startIndex: {startIndex} < 0"); + + buffer.Clear(); + + break; + } + + lengthIndex = startIndex + SIRTConstants.LEN_IX; + + // when not enough bytes to the length index just break + if (lengthIndex >= bufferLength) + { + SIRTLogger.LogState($"Message not complete lengthIndex: {lengthIndex} >= {bufferLength} :bufferLength"); + + break; + } + + length = buffer[lengthIndex]; + endIndex = lengthIndex + length + 3; + + // when not enough bytes to the end of the message just break + if (endIndex >= bufferLength) + { + SIRTLogger.LogState($"Message not complete endIndex: {endIndex} >= {bufferLength} :bufferLength"); + + break; + } + + // when message dose not ends with 0x16 try again with next start index + if (buffer[endIndex] != SIRTConstants.MSG_END) + { + SIRTLogger.LogState($"Message end {buffer[endIndex]} is not valid"); + + startIndex++; + + continue; + } + + messageLength = endIndex - startIndex + 1; + message = new byte[messageLength]; + + buffer.CopyTo(startIndex, message, 0, messageLength); + buffer.RemoveRange(0, endIndex); + + yield return message; + + // in case there are more messages in the buffer + bufferLength = buffer.Count; + startIndex = 0; + } + } + } + + public void Write(params byte[] bytes) => this.sirtPort.Write(bytes); + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/Tasks/ActivateSIRTTask.cs b/Common/Hardware/Common.Hardware.SIRT/Tasks/ActivateSIRTTask.cs new file mode 100644 index 00000000..0a27c59a --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/Tasks/ActivateSIRTTask.cs @@ -0,0 +1,21 @@ +namespace Common.Hardware.SIRT.Tasks +{ + using Common.Hardware.SIRT.Parameters; + + public class ActivateSIRTTask : WriteRegisterTask + { + public ActivateSIRTTask() + { + this.RequestAddress = 0x20000000; + this.ResponseAddress = 0x20000000; + this.Payload = new byte[] + { + new SirtOperating { /* default */ }, + new BluetoothOperating { BtOff = true }, + new RFModuleOperating { RfOff = true }, + new RFModuleOperating { OpMode = OperatingModes.ReceiveF1TransmitSensusRFF3 }, + new PamTimeout { Minutes = 1 } + }; + } + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/Tasks/DeleteFromPamPoolTask.cs b/Common/Hardware/Common.Hardware.SIRT/Tasks/DeleteFromPamPoolTask.cs new file mode 100644 index 00000000..544461d6 --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/Tasks/DeleteFromPamPoolTask.cs @@ -0,0 +1,16 @@ +namespace Common.Hardware.SIRT.Tasks +{ + using Common.Hardware.SIRT.Parameters; + + public class DeleteFromPamPoolTask : SIRTTask + { + public DeleteFromPamPoolTask() + { + this.request.Command = SIRTConstants.W_PAM; + this.request.P1 = new P811 { DelPamAdr = true }; + } + + public override void Push(SIRTMessage _) + => this.SetCompleted(); + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/Tasks/IdentifySIRTTask.cs b/Common/Hardware/Common.Hardware.SIRT/Tasks/IdentifySIRTTask.cs new file mode 100644 index 00000000..58cbe945 --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/Tasks/IdentifySIRTTask.cs @@ -0,0 +1,30 @@ +namespace Common.Hardware.SIRT.Tasks +{ + using System; + + public class IdentifySIRTTask : ReadRegisterTask + { + public IdentifySIRTTask() + { + this.RequestAddress = 0x11001820; + this.ResponseAddress = 0x11001820; + this.Length = 0x08; + } + + public override void Push(SIRTMessage response) + { + if (response.Command == SIRTConstants.AKN_ANS) + { + this.Payload = response.Payload; + + if (this.Payload?.Length == 8) + { + this.SirtId = BitConverter.ToString(this.Payload); + this.Frequency = this.SirtId[10] == '0' ? 868 : 433; + + this.SetCompleted(); + } + } + } + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/Tasks/ReadPamTask.cs b/Common/Hardware/Common.Hardware.SIRT/Tasks/ReadPamTask.cs new file mode 100644 index 00000000..eff9e401 --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/Tasks/ReadPamTask.cs @@ -0,0 +1,23 @@ +namespace Common.Hardware.SIRT.Tasks +{ + public class ReadPamTask : SIRTTask + { + public ReadPamTask() + { + this.request.Command = SIRTConstants.R_PAM; + this.request.Address = 0xFFFFFFFF; + } + + public byte[] Payload { get; private set; } + + public override void Push(SIRTMessage response) + { + if (response.Command == SIRTConstants.AKN_ANS && response.P1 == 0) + { + this.Payload = response.Payload; + + this.SetCompleted(); + } + } + } +} \ No newline at end of file diff --git a/Common/Hardware/Common.Hardware.SIRT/Tasks/ReadPampoolTask.cs b/Common/Hardware/Common.Hardware.SIRT/Tasks/ReadPampoolTask.cs new file mode 100644 index 00000000..8960908c --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/Tasks/ReadPampoolTask.cs @@ -0,0 +1,37 @@ +namespace Common.Hardware.SIRT.Tasks +{ + using System; + + public class ReadPampoolTask : ReadPamTask + { + public ReadPampoolTask(int frequency) + { + this.Frequency = frequency; + this.RequestAddress = 0xFFFFFFFF; + this.Addresses = new uint[5]; + this.Timeout = 3_000; + } + + public uint[] Addresses { get; } + + public override void Push(SIRTMessage response) + { + base.Push(response); + + if (this.Payload?.Length == 20) + { + Array.Clear(this.Addresses, 0, 5); + + for (var i = 0; i < 20; i++) + { + this.Addresses[i] = BitConverter.ToUInt32(this.Payload, i * 4); + + if (this.Addresses[i] == 0xFFFFFFFF) + { + this.Addresses[i]++; + } + } + } + } + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/Tasks/ReadRegisterTask.cs b/Common/Hardware/Common.Hardware.SIRT/Tasks/ReadRegisterTask.cs new file mode 100644 index 00000000..afd6ef89 --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/Tasks/ReadRegisterTask.cs @@ -0,0 +1,26 @@ +namespace Common.Hardware.SIRT.Tasks +{ + public class ReadRegisterTask : SIRTTask + { + public ReadRegisterTask() + => this.request.Command = SIRTConstants.R_REG; + + public byte Length + { + get => this.request.P2; + set => this.request.P2 = value; + } + + public byte[] Payload { get; protected set; } + + public override void Push(SIRTMessage response) + { + if (response.Command == SIRTConstants.AKN_ANS) + { + this.Payload = response.Payload; + + this.SetCompleted(); + } + } + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/Tasks/SIRTTask.cs b/Common/Hardware/Common.Hardware.SIRT/Tasks/SIRTTask.cs new file mode 100644 index 00000000..4807a14d --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/Tasks/SIRTTask.cs @@ -0,0 +1,115 @@ +namespace Common.Hardware.SIRT.Tasks +{ + using System; + using System.Threading; + + public abstract class SIRTTask + { + protected readonly ManualResetEventSlim awaiter = new ManualResetEventSlim(); + protected readonly SIRTMessage request = new SIRTMessage(); + protected readonly Guid taskId = Guid.NewGuid(); + + public event Action StateChanged; + + public byte Command => this.request.Command; + + private SIRTTaskState state; + public SIRTTaskState State + { + get => this.state; + private set + { + this.state = value; + + this.StateChanged?.Invoke(this); + } + } + + public uint RequestAddress + { + get => this.request.Address; + set + { + this.request.Address = value; + + if (this.ResponseAddress == 0) + { + this.ResponseAddress = value; + } + } + } + + public uint ResponseAddress { get; set; } + + public string SirtId + { + get => this.request.SirtId; + set => this.request.SirtId = value; + } + + public int Frequency + { + get => this.request.Frequency; + set => this.request.Frequency = value; + } + + public DateTimeOffset Timestamp + { + get => this.request.Timestamp; + set => this.request.Timestamp = value; + } + + public int Timeout { get; set; } = 10_000; + + public abstract void Push(SIRTMessage response); + + public void SetCancelled() + { + this.State = SIRTTaskState.Cancelled; + + this.awaiter.Set(); + } + + public void SetCompleted() + { + this.State = SIRTTaskState.Completed; + + this.awaiter.Set(); + } + + public void SetPending() + { + this.State = SIRTTaskState.Pending; + + this.awaiter.Set(); + } + + public void SetRunning() + { + this.State = SIRTTaskState.Running; + + this.awaiter.Reset(); + } + + public virtual byte[] Start() + { + this.awaiter.Reset(); + + this.State = SIRTTaskState.Running; + this.Timestamp = DateTimeOffset.UtcNow; + + return this.request.GetBytes(); + } + + public void Wait() + { + this.awaiter.Wait(this.Timeout); + this.awaiter.Reset(); + } + + public override bool Equals(object other) + => other is SIRTTask _task && _task.taskId == this.taskId; + + public static implicit operator SIRTMessage(SIRTTask task) => task.request; + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/Tasks/SIRTTaskState.cs b/Common/Hardware/Common.Hardware.SIRT/Tasks/SIRTTaskState.cs new file mode 100644 index 00000000..37098118 --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/Tasks/SIRTTaskState.cs @@ -0,0 +1,10 @@ +namespace Common.Hardware.SIRT.Tasks +{ + public enum SIRTTaskState + { + Pending = 0, + Running = 1, + Completed = 2, + Cancelled = 4 + } +} \ No newline at end of file diff --git a/Common/Hardware/Common.Hardware.SIRT/Tasks/WritePamTask.cs b/Common/Hardware/Common.Hardware.SIRT/Tasks/WritePamTask.cs new file mode 100644 index 00000000..63b6104a --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/Tasks/WritePamTask.cs @@ -0,0 +1,80 @@ +namespace Common.Hardware.SIRT.Tasks +{ + using Common.Hardware.SIRT.Parameters; + + using System; + + public class WritePamTask : SIRTTask + { + protected P811 p811; + + public WritePamTask() + { + this.request.Command = SIRTConstants.W_PAM; + this.p811 = this.request.P1; + } + + public bool WakeUpModul + { + get => this.p811.WakeUpModul; + set => this.SetP811(x => x.WakeUpModul = value); + } + + public bool WakeUpCmd + { + get => this.p811.WakeUpCmd; + set => this.SetP811(x => x.WakeUpCmd = value); + } + + public bool IgnoreTimeout + { + get => this.p811.IgnoreTimeout; + set => this.SetP811(x => x.IgnoreTimeout = value); + } + + public bool DelPamSemi + { + get => this.p811.DelPamSemi; + set => this.SetP811(x => x.DelPamSemi = value); + } + + public bool DelPamTx + { + get => this.p811.DelPamTx; + set => this.SetP811(x => x.DelPamTx = value); + } + + public bool DelPamAdr + { + get => this.p811.DelPamAdr; + set => this.SetP811(x => x.DelPamAdr = value); + } + + public bool DelPamAll + { + get => this.p811.DelPamAll; + set => this.SetP811(x => x.DelPamAll = value); + } + + public byte[] Data + { + get => this.request.Payload; + set => this.request.Payload = value; + } + + private void SetP811(Action p811Setter) + { + p811Setter.Invoke(this.p811); + + this.request.P1 = this.p811; + } + + public override void Push(SIRTMessage response) + { + if (response.Length > 0 && response.Payload[0] == SIRTConstants.SEMI) + { + this.SetCompleted(); + } + } + } +} diff --git a/Common/Hardware/Common.Hardware.SIRT/Tasks/WriteRegisterTask.cs b/Common/Hardware/Common.Hardware.SIRT/Tasks/WriteRegisterTask.cs new file mode 100644 index 00000000..de00f46e --- /dev/null +++ b/Common/Hardware/Common.Hardware.SIRT/Tasks/WriteRegisterTask.cs @@ -0,0 +1,26 @@ +namespace Common.Hardware.SIRT.Tasks +{ + public class WriteRegisterTask : SIRTTask + { + public WriteRegisterTask() + => this.request.Command = SIRTConstants.W_REG; + + public byte[] Payload + { + get => this.request.Payload; + set + { + this.request.Payload = value; + this.request.P2 = (byte)value.Length; + } + } + + public override void Push(SIRTMessage response) + { + if (response.Command == SIRTConstants.AKN_ANS) + { + this.SetCompleted(); + } + } + } +} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/AuthLevel.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/AuthLevel.cs deleted file mode 100644 index 773aba4d..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/AuthLevel.cs +++ /dev/null @@ -1,45 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Parameters -{ - using System; - - public class AuthLevel - { - public enum Level : UInt64 - { - I = 0x004301143068D0, - II = 0x004302140E8040, - III = 0x00430363937322, - } - - private readonly Level pin; - private readonly Byte[] bytes; - - private AuthLevel(Level pin) - { - this.pin = pin; - this.bytes = new Byte[6]; - - var bytes = BitConverter.GetBytes((UInt64)this.pin); - Array.Copy(bytes, 0, this.bytes, 0, this.bytes.Length); - } - - public static readonly AuthLevel I = Level.I; - public static readonly AuthLevel II = Level.II; - public static readonly AuthLevel III = Level.III; - - public override String ToString() - => BitConverter.ToString(this.bytes); - - public static implicit operator AuthLevel(Level level) - => new AuthLevel(level); - - public static implicit operator UInt64(AuthLevel level) - => (UInt64)level.pin; - - public static implicit operator Byte[](AuthLevel level) - => level.bytes; - - public static implicit operator String (AuthLevel level) - => level.ToString(); - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/ByteExtensions.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/ByteExtensions.cs deleted file mode 100644 index 7998ddce..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Parameters/ByteExtensions.cs +++ /dev/null @@ -1,31 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Parameters -{ - using System; - - public static class ByteExtensions - { - public static Byte[] GetBits(this Byte @byte) - { - var bits = new Byte[8]; - - for (int i = 0; i < 8; i++) - { - bits[i] = (Byte)((@byte >> i) & 1); - } - - return bits; - } - - public static Byte GetByte(this Byte[] bits) - { - var @byte = default(int); - - for (int i = 0; i < 8; i++) - { - @byte |= bits[i] << i; - } - - return (Byte)@byte; - } - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Properties/AssemblyInfo.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Properties/AssemblyInfo.cs deleted file mode 100644 index 263fb909..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Common.Hardware.Interfaces.Ports.SIRT")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Common.Hardware.Interfaces.Ports.SIRT")] -[assembly: AssemblyCopyright("Copyright © 2024")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("b23bfaf9-08ae-4311-8c08-fb2bb49ea2ad")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Requests/ReadPamRequest.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Requests/ReadPamRequest.cs deleted file mode 100644 index 1286ac80..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Requests/ReadPamRequest.cs +++ /dev/null @@ -1,35 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Requests -{ - using Common.Hardware.Interfaces.Ports.SIRT; - - using System; - - public class ReadPamRequest : SIRTRequest - { - /// - /// - /// - /// true - /// shows content of PAM structure of this address - /// - /// - /// false - /// show stored PAM for this address - /// - /// - /// - public Boolean PamStruct - { - get => this.message.P1 == 1; - set => this.message.P1 = (Byte)(value ? 1 : 0); - } - - protected override Byte[] ToByteArray() - { - this.message.Start = SIRTConstants.Pc2Sirt; - this.message.Cmd = SIRTConstants.ReadPam; - - return this.message.ToByteArray(); - } - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Requests/ReadRegRequest.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Requests/ReadRegRequest.cs deleted file mode 100644 index 63204a19..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Requests/ReadRegRequest.cs +++ /dev/null @@ -1,23 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Requests -{ - using Common.Hardware.Interfaces.Ports.SIRT; - - using System; - - public class ReadRegRequest : SIRTRequest - { - public Byte ReadLength - { - get => this.message.P2; - set => this.message.P2 = value; - } - - protected override Byte[] ToByteArray() - { - this.message.Start = SIRTConstants.Pc2Sirt; - this.message.Cmd = SIRTConstants.ReadReg; - - return this.message.ToByteArray(); - } - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Requests/WritePamRequest.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Requests/WritePamRequest.cs deleted file mode 100644 index 6ee93778..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Requests/WritePamRequest.cs +++ /dev/null @@ -1,87 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Requests -{ - using Common.Hardware.Interfaces.Ports.SIRT; - using Common.Hardware.Interfaces.Ports.SIRT.Parameters; - - using System; - - public class WritePamRequest : SIRTRequest - { - private readonly P811 parameter811 = default(Byte); - - public WritePamRequest() - => this.parameter811 = this.message.P1; - - /// - /// - /// - public Boolean WakeUpModul - { - get => this.parameter811.WakeUpModul; - set => this.parameter811.WakeUpModul = value; - } - - /// - /// - /// - public Boolean WakeUpCmd - { - get => this.parameter811.WakeUpCmd; - set => this.parameter811.WakeUpCmd = value; - } - - /// - /// - /// - public Boolean IgnoreTimeout - { - get => this.parameter811.IgnoreTimeout; - set => this.parameter811.IgnoreTimeout = value; - } - - /// - /// - /// - public Boolean DelPamSemi - { - get => this.parameter811.DelPamSemi; - set => this.parameter811.DelPamSemi = value; - } - - /// - /// - /// - public Boolean DelPamTx - { - get => this.parameter811.DelPamTx; - set => this.parameter811.DelPamTx = value; - } - - /// - /// - /// - public Boolean DelPamAdr - { - get => this.parameter811.DelPamAdr; - set => this.parameter811.DelPamAdr = value; - } - - /// - /// - /// - public Boolean DelPamAll - { - get => this.parameter811.DelPamAll; - set => this.parameter811.DelPamAll = value; - } - - protected override Byte[] ToByteArray() - { - this.message.Start = SIRTConstants.Pc2Sirt; - this.message.Cmd = SIRTConstants.WritePam; - this.message.P1 = this.parameter811; - - return this.message.ToByteArray(); - } - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Requests/WriteRegRequest.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Requests/WriteRegRequest.cs deleted file mode 100644 index ed0d0118..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Requests/WriteRegRequest.cs +++ /dev/null @@ -1,23 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Requests -{ - using Common.Hardware.Interfaces.Ports.SIRT; - - using System; - - public class WriteRegRequest : SIRTRequest - { - public Byte WriteLength - { - get => this.message.P2; - set => this.message.P2 = value; - } - - protected override Byte[] ToByteArray() - { - this.message.Start = SIRTConstants.Pc2Sirt; - this.message.Cmd = SIRTConstants.WriteReg; - - return this.message.ToByteArray(); - } - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Responses/AcknOrAnswerResponse.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Responses/AcknOrAnswerResponse.cs deleted file mode 100644 index 1b5ca16a..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Responses/AcknOrAnswerResponse.cs +++ /dev/null @@ -1,58 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Responses -{ - using Common.Hardware.Interfaces.Ports.SIRT.Parameters; - - using System; - - public class AcknOrAnswerResponse : SIRTResponse - { - private readonly P12 parameterP12; - - public AcknOrAnswerResponse(Byte[] bytes) : base(bytes) - => this.parameterP12 = this.message.P1; - - /// - /// - /// - public Boolean BufFull => this.parameterP12.BufFull; - - /// - /// - /// - public Boolean OsBusy => this.parameterP12.OsBusy; - - /// - /// - /// - public Boolean WrongCRC => this.parameterP12.WrongCRC; - - /// - /// - /// - public Boolean CmdNotExecuted => this.parameterP12.CmdNotExecuted; - - /// - /// - /// - public Boolean CmdUnknown => this.parameterP12.CmdUnknown; - - /// - /// - /// - public Boolean NoEntry => this.parameterP12.NoEntry; - - /// - /// - /// - public Boolean ByteUnknown => this.parameterP12.ByteUnknown; - - /// - /// - /// - public Boolean WildCardAddr => this.parameterP12.WildCardAddr; - - public String LastCmd => this.message.P2.ToString("X2"); - - public override Boolean IsValid => base.IsValid && (this.parameterP12 == 0 || this.parameterP12 == 128); - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Responses/FromAirResponse.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Responses/FromAirResponse.cs deleted file mode 100644 index 0e2fe379..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Responses/FromAirResponse.cs +++ /dev/null @@ -1,112 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Responses -{ - using Common.Hardware.Interfaces.Ports.SIRT.Parameters; - - using System; - - public class FromAirResponse : SIRTResponse - { - private readonly P11 parameterP11; - - private UInt16 mhz; - - public FromAirResponse(Byte[] bytes) : base(bytes) - => this.parameterP11 = this.message.P1; - - /// - /// - /// - public Boolean SrcChannel => this.parameterP11.SrcChannel; - - /// - /// - /// - public Boolean BothValid => this.parameterP11.BothValid; - - /// - /// - /// - public Boolean InvalidMod1 => this.parameterP11.InvalidMod1; - - /// - /// - /// - public Boolean InvalidMod2 => this.parameterP11.InvalidMod2; - - /// - /// - /// - public Boolean LenOverflow => this.parameterP11.LenOverflow; - - /// - /// - /// - public Boolean Attention => this.parameterP11.Attention; - - /// - /// - /// - public Boolean ModeRF => this.parameterP11.ModeRF; - - /// - /// - /// - public Boolean ModeSensus => this.parameterP11.ModeSensus; - - public UInt16 MHz - { - get => this.mhz; - set - { - this.mhz = value; - this.ReceivePowerDbm = this.CalculateReceivePowerDbm(this.mhz, this.message.P2); - this.ReceivePowerPer = this.CalculateReceivePowerPer(this.mhz, this.message.P2); - } - } - - public Double ReceivePowerDbm { get; private set; } - - public Double ReceivePowerPer { get; private set; } - - private Double CalculateReceivePowerDbm(Int32 MHz, Byte rssi) - { - var value = default(Double); - - if (MHz == 433) - { - value = rssi * 0.5 - 140; - } - else if (MHz == 868) - { - value = rssi * 0.5 - 131.3; - } - - return value; - } - - private Double CalculateReceivePowerPer(Int32 MHz, Byte rssi) - { - var value = default(Double); - - if (MHz == 433) - { - value = -57.6667 + 0.7333 * rssi; - } - else if (MHz == 868) - { - value = -40.316 + 0.66 * rssi; - } - - if (value > 100) - { - value = 100; - } - else if (value < 0) - { - value = 0; - } - - return value; - } - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SIRTRequest.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SIRTRequest.cs deleted file mode 100644 index 3d5dad0d..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SIRTRequest.cs +++ /dev/null @@ -1,29 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT -{ - using System; - - public abstract class SIRTRequest - { - internal readonly SIRTMessage message = new SIRTMessage(); - - public UInt32 Address - { - get => this.message.Address; - set => this.message.Address = value; - } - - public Byte[] Payload - { - get => this.message.Payload; - set => this.message.Payload = value; - } - - public override String ToString() - => BitConverter.ToString(this); - - protected abstract Byte[] ToByteArray(); - - public static implicit operator Byte[] (SIRTRequest request) - => request.ToByteArray(); - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SIRTResponse.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SIRTResponse.cs deleted file mode 100644 index 05cce56e..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SIRTResponse.cs +++ /dev/null @@ -1,33 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT -{ - using System; - - using Xylem.Common.Utils.Crc16Ccitt; - - public class SIRTResponse - { - internal readonly SIRTMessage message; - - public SIRTResponse(Byte[] bytes) - { - this.message = new SIRTMessage(bytes); - - var existingCRC = this.message.CRC; - var calculatedCRC = Crc16Ccitt.CalculateCRC1021LSBFirst(bytes, 1, bytes.Length - 3); - - this.IsValid = existingCRC[0] == calculatedCRC[1] - && existingCRC[1] == calculatedCRC[0]; - } - - public Byte ResponseType => this.message.Cmd; - - public UInt32 Address => this.message.Address; - - public Byte[] Payload => this.message.Payload; - - public virtual Boolean IsValid { get; } - - public static implicit operator Byte[] (SIRTResponse response) - => response?.message.Bytes ?? new Byte[0]; - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SIRTTask[TRequest].cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SIRTTask[TRequest].cs deleted file mode 100644 index 64eb24d0..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SIRTTask[TRequest].cs +++ /dev/null @@ -1,57 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT -{ - using Common.Hardware.Interfaces.Ports.SIRT.Responses; - - using System; - - public abstract class SIRTTask : SIRTTask where TRequest : SIRTRequest, new() - { - protected readonly TRequest request; - - protected SIRTTask(UInt32 timeoutSeconds = TIMEOUT_SECONDS) - { - this.request = new TRequest(); - this.Cmd = this.request.message.Cmd; - } - - protected SIRTTask(TRequest request, UInt32 timeoutSeconds = TIMEOUT_SECONDS) - : this(timeoutSeconds) - => this.request = request; - - public override UInt32 Address - { - get => this.request.Address; - set => this.request.Address = value; - } - - public override Byte[] Payload - { - get => this.request.Payload; - set => this.request.Payload = value; - } - - internal override void BeginAddResponse(AcknOrAnswerResponse response) - { - this.BeginAddResponse(); - - var done = this.AcknOrAnswerReceived(response); - - this.EndAddResponse(done); - } - - internal override void BeginAddResponse(FromAirResponse response) - { - this.BeginAddResponse(); - - var done = this.FromAirReceived(response); - - this.EndAddResponse(done); - } - - protected virtual Boolean AcknOrAnswerReceived(AcknOrAnswerResponse response) => false; - - protected virtual Boolean FromAirReceived(FromAirResponse response) => false; - - protected override Byte[] GetRequestBytes() => this.request; - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SirtBroadcaster.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SirtBroadcaster.cs deleted file mode 100644 index d4af4c67..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SirtBroadcaster.cs +++ /dev/null @@ -1,283 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT -{ - using Common.Hardware.Interfaces.Ports.SIRT.Requests; - using Common.Hardware.Interfaces.Ports.SIRT.Responses; - using Common.Hardware.Interfaces.Ports.SIRT.Tasks; - - using System; - using System.Collections.Concurrent; - using System.Collections.Generic; - using System.Linq; - using System.Threading; - using System.Threading.Tasks; - - public class SIRTBroadcaster : SIRTSerialPort - { - private readonly ConcurrentDictionary> tasks; - private readonly ConcurrentDictionary pamPool; - - private CancellationTokenSource cancellationTokenSource; - private CancellationToken cancellationToken; - - public SIRTBroadcaster(SerialPortSettings settings) : base(settings) - { - this.tasks = new ConcurrentDictionary>(); - this.pamPool = new ConcurrentDictionary(); - - this.DataReceived += this.SirtBroadcaster_DataReceived; - } - - public event Action Activated; - public event Action EndpointAvailable; - - public String SIRTID { get; private set; } - - public UInt16 Frequency { get; private set; } - - public void Run(SIRTTask task) - { - task.AddressChanged += (oldAddress, newAddress) => - { - task.Done += _ => - { - /// Remove old address from the tasks pool - this.tasks.TryRemove(oldAddress, out var _); - }; - - /// Add the new address to the tasks pool - this.tasks - .GetOrAdd(newAddress, new Queue()) - .Enqueue(task); - - /// Remove old address from the pam pool - this.Write(new WritePamRequest - { - DelPamAdr = true, - Address = oldAddress - }); - }; - - this.tasks - .GetOrAdd(task.Address, new Queue()) - .Enqueue(task); - } - - public override void Close() - { - try - { - this.cancellationTokenSource.Cancel(); - } - catch (Exception e) - { - this.Notify(e.ToString()); - } - - base.Close(); - } - - public override void Open() - { - base.Open(); - - this.cancellationTokenSource = new CancellationTokenSource(); - this.cancellationToken = this.cancellationTokenSource.Token; - - this.StartExecutingPendingTasksAsync(); - this.ActivateSIRT(); - - if (this.IsOpen && this.Frequency > 0) - { - this.StartPamPoolTrackingAsync(); - } - else - { - this.Close(); - } - } - - private void ActivateSIRT() - { - var manuelResetEventSlim = new ManualResetEventSlim(); - var activationTask = new ActivateSIRTTask(); - activationTask.Cancelled += _ => manuelResetEventSlim.Set(); - activationTask.Done += _ => manuelResetEventSlim.Set(); - - this.Run(activationTask); - manuelResetEventSlim.Wait(); - manuelResetEventSlim.Reset(); - - var identificationTask = new IdentifySIRTTask(); - identificationTask.Cancelled += task => manuelResetEventSlim.Set(); - identificationTask.Done += task => manuelResetEventSlim.Set(); - identificationTask.Identified += sirtID => - { - this.SIRTID = sirtID; - - if (!String.IsNullOrWhiteSpace(this.SIRTID)) - { - this.Frequency = (UInt16)(this.SIRTID[10] == '1' ? 433 : 868); - } - }; - - this.Run(identificationTask); - manuelResetEventSlim.Wait(); - manuelResetEventSlim.Reset(); - - this.Activated?.Invoke(this.SIRTID, this.Frequency); - } - - private void SirtBroadcaster_DataReceived(Byte[] data) - { - var address = default(UInt32); - var dataType = data[1]; - - if (dataType == SIRTConstants.FromAir) - { - var response = new FromAirResponse(data); - response.MHz = this.Frequency; - address = response.Address; - - if (this.tasks.TryGetValue(address, out var queue) && queue.Count > 0) - { - queue.Peek().BeginAddResponse(response); - } - } - else if (dataType == SIRTConstants.AcknOrAnswer) - { - var response = new AcknOrAnswerResponse(data); - address = response.Address; - - if (this.tasks.TryGetValue(address, out var queue) && queue.Count > 0) - { - queue.Peek().BeginAddResponse(response); - } - } - else - { - var response = new SIRTResponse(data); - address = response.Address; - } - - this.EndpointAvailable?.Invoke(address); - } - - private void StartExecutingPendingTasksAsync() - { - Task.Factory - .StartNew(state => - { - if (state is SIRTBroadcaster broadcaster) - { - /// Loop while cancellation requested ... - while (!broadcaster.cancellationToken.IsCancellationRequested) - { - /// For each address whit its tasks ... - foreach (var ep in broadcaster.tasks) - { - var address = ep.Key; - var tasks = ep.Value; - - /// Iterates only over the tasks asigned to the current address. - /// Always check if there are tasks into the queue because the queues throwing exceptions when they are empty. - while (tasks.Count > 0) - { - /// Take a look at the first item. - var current = tasks.Peek(); - - /// Remove when done or cancelled ... - if (current.IsDone || current.IsCancelled) - { - tasks.Dequeue(); - - /// ... than go to the next one. - continue; - } - - /// When current task is not running and is not cancelled or done ... - if (!current.IsRunning) - { - var notWritePamTask = current.Cmd != SIRTConstants.WritePam; - var pamPoolNotFull = !broadcaster.pamPool.Values.Any(x => x == 0); - var notInPamPool = !broadcaster.pamPool.Values.Any(x => x == current.Address); - - /// ... and also is write to pam task and is not into the pam pool ... - if (notWritePamTask || (pamPoolNotFull && notInPamPool)) - { - /// ... mark as running ... - current.IsRunning = true; - - /// ... than write to the pam pool. - broadcaster.Write(current); - } - } - - /// Break and go to the next address with tasks. - break; - } - } - } - } - }, this, this.cancellationToken) - .ContinueWith(task => - { - if (task.Exception != null && task.AsyncState is SIRTBroadcaster broadcaster) - { - var exception = task.Exception.ToString(); - - broadcaster.Notify(exception); - broadcaster.Close(); - } - - }, this.cancellationToken); - } - - private void StartPamPoolTrackingAsync() - { - Task.Factory - .StartNew(state => - { - if (state is SIRTBroadcaster broadcaster) - { - var awaiter = new ManualResetEventSlim(); - - while (!broadcaster.cancellationToken.IsCancellationRequested) - { - var task = new ReadPamPoolTask(); - task.Cancelled += _ => awaiter.Set(); - task.Done += _ => awaiter.Set(); - task.AddressesParsed += addresses => - { - var length = addresses.Length; - - for (Byte i = 0; i < length; i++) - { - var address = addresses[i]; - - broadcaster.pamPool.AddOrUpdate(i, address, (k, v) => address); - } - - awaiter.Set(); - }; - - broadcaster.Run(task); - - awaiter.Wait(); - awaiter.Reset(); - } - } - }, this, this.cancellationToken) - .ContinueWith(task => - { - if (task.Exception != null && task.AsyncState is SIRTBroadcaster broadcaster) - { - var exception = task.Exception.ToString(); - - broadcaster.Notify(exception); - broadcaster.Close(); - } - - }, this.cancellationToken); - } - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SirtConstants.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SirtConstants.cs deleted file mode 100644 index a65dd005..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SirtConstants.cs +++ /dev/null @@ -1,30 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT -{ - using System; - - public static class SIRTConstants - { - public const Int32 CmdIndex = 1; - public const Int32 LengthIndex = 8; - public const Int32 MinLength = 12; - - public const Byte AcknOrAnswer = 0x12; - public const Byte FromAir = 0x11; - public const Byte Pc2Sirt = 0x55; - public const Byte ReadPam = 0x82; - public const Byte ReadReg = 0x87; - public const Byte Sirt2Pc = 0xFF; - public const Byte StopByte = 0x16; - public const Byte WritePam = 0x81; - public const Byte WriteReg = 0x84; - - public const Byte Bup = 0x00; - public const Byte Lat = 0x01; - public const Byte Semi = 0x08; - public const Byte Logger = 0x09; - public const Byte Test = 0x0A; - public const Byte Debug = 0x0B; - public const Byte EncFlexNet = 0x10; - public const Byte Pam = 0x20; - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SirtMessage.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SirtMessage.cs deleted file mode 100644 index fb65ac63..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SirtMessage.cs +++ /dev/null @@ -1,139 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT -{ - using System; - - using Xylem.Common.Utils.Crc16Ccitt; - - internal class SIRTMessage - { - private Byte[] bytes; - private Int32 bytesLength; - - public SIRTMessage() - { - this.bytes = new Byte[SIRTConstants.MinLength]; - this.bytesLength = this.bytes.Length; - } - - public SIRTMessage(Byte[] bytes) - { - this.bytes = bytes; - this.bytesLength = this.bytes.Length; - } - - public Byte Start - { - get => this.bytes[0]; - set => this.bytes[0] = value; - } - - public Byte Cmd - { - get => this.bytes[1]; - set => this.bytes[1] = value; - } - - public Byte P1 - { - get => this.bytes[2]; - set => this.bytes[2] = value; - } - - public Byte P2 - { - get => this.bytes[3]; - set => this.bytes[3] = value; - } - - public UInt32 Address - { - get - { - var address = new Byte[4]; - - Array.Copy(this.bytes, 4, address, 0, 4); - Array.Reverse(address); - - return BitConverter.ToUInt32(address, 0); - } - set - { - var address = BitConverter.GetBytes(value); - - Array.Reverse(address); - Array.Copy(address, 0, this.bytes, 4, 4); - } - } - - public Byte Length - { - get => this.bytes[8]; - set - { - this.bytes[8] = value; - var newLength = SIRTConstants.MinLength + value; - - Array.Resize(ref this.bytes, newLength); - this.bytesLength = this.bytes.Length; - } - } - - public Byte[] Payload - { - get - { - var payload = new Byte[this.Length]; - - Array.Copy(this.bytes, 9, payload, 0, this.Length); - - return payload; - } - set - { - if (value is null) - { - value = new Byte[0]; - } - - this.Length = (Byte)value.Length; - var newLength = SIRTConstants.MinLength + this.Length; - - Array.Resize(ref this.bytes, newLength); - Array.Copy(value, 0, this.bytes, 9, this.Length); - - this.bytesLength = this.bytes.Length; - } - } - - internal Byte[] CRC => new Byte[] - { - this.bytes[this.bytesLength - 3], - this.bytes[this.bytesLength - 2] - }; - - internal Byte[] Bytes => this.bytes; - - public override String ToString() - => BitConverter.ToString(this.ToByteArray()); - - internal Byte[] ToByteArray() - { - var crc = Crc16Ccitt.CalculateCRC1021LSBFirst(this.bytes, 1, this.bytes.Length - 3); - - this.bytes[this.bytesLength - 3] = crc[1]; - this.bytes[this.bytesLength - 2] = crc[0]; - this.bytes[this.bytesLength - 1] = SIRTConstants.StopByte; - - return this.bytes; - } - - public static implicit operator SIRTMessage(Byte[] bytes) - => new SIRTMessage(bytes); - - public static implicit operator Byte[](SIRTMessage message) - => message.ToByteArray(); - - public static implicit operator String (SIRTMessage message) - => message.ToString(); - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SirtTask.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SirtTask.cs deleted file mode 100644 index e52f55ac..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/SirtTask.cs +++ /dev/null @@ -1,100 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT -{ - using Common.Hardware.Interfaces.Ports.SIRT.Requests; - using Common.Hardware.Interfaces.Ports.SIRT.Responses; - - using System; - - public abstract class SIRTTask - { - protected const UInt32 TIMEOUT_SECONDS = 60; - protected readonly UInt32 timeout; - private WriteRegRequest writeRegRequest; - private ReadRegRequest readRegRequest; - private ReadPamRequest readPamRequest; - - public SIRTTask(UInt32 timeoutSeconds = TIMEOUT_SECONDS) - { - this.timeout = timeoutSeconds; - this.Timestamp = DateTime.MinValue; - } - - protected SIRTTask(WriteRegRequest writeRegRequest) - { - this.writeRegRequest = writeRegRequest; - } - - protected SIRTTask(ReadRegRequest readRegRequest) - { - this.readRegRequest = readRegRequest; - } - - protected SIRTTask(ReadPamRequest readPamRequest) - { - this.readPamRequest = readPamRequest; - } - - public event Action Done; - public event Action Cancelled; - public event Action AddressChanged; - - public virtual UInt32 Address { get; set; } - - public virtual Byte[] Payload { get; set; } - - public Boolean IsRunning { get; set; } - - public Byte Cmd { get; protected set; } - - public DateTime Timestamp { get; protected set; } - - public Boolean IsDone { get; protected set; } - - public Boolean IsCancelled { get; protected set; } - - internal abstract void BeginAddResponse(AcknOrAnswerResponse response); - - internal abstract void BeginAddResponse(FromAirResponse response); - - protected void NotifyCancelled() - { - this.IsCancelled = true; - - this.Cancelled?.Invoke(this); - } - - protected void NotifyDone() - { - this.IsDone = true; - - this.Done?.Invoke(this); - } - - protected void NotifyAddressChanged(UInt32 oldAddress, UInt32 newAddress) - => this.AddressChanged?.Invoke(oldAddress, newAddress); - - protected void BeginAddResponse() - { - if (this.Timestamp == DateTime.MinValue) - { - this.Timestamp = DateTime.Now; - } - } - - protected void EndAddResponse(Boolean isDone) - { - if (isDone) - { - this.NotifyDone(); - } - else if ((DateTime.Now - this.Timestamp).TotalSeconds > this.timeout) - { - this.NotifyCancelled(); - } - } - - protected abstract Byte[] GetRequestBytes(); - - public static implicit operator Byte[] (SIRTTask task) => task.GetRequestBytes(); - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/ActivateSIRTTask.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/ActivateSIRTTask.cs deleted file mode 100644 index 8cb37413..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/ActivateSIRTTask.cs +++ /dev/null @@ -1,56 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Tasks -{ - using Common.Hardware.Interfaces.Ports.SIRT.Parameters; - using Common.Hardware.Interfaces.Ports.SIRT.Requests; - using Common.Hardware.Interfaces.Ports.SIRT.Responses; - - using System; - - internal class ActivateSIRTTask : SIRTTask - { - public ActivateSIRTTask() : base(new WriteRegRequest - { - Address = 0x20000000, - Payload = new Byte[] - { - new SirtOperating - { - // standard - }, - new BluetoothOperating - { - BtOff = true, - }, - new RFModuleOperating - { - RfOff = true - }, - new RFModuleOperating - { - OpMode = OperatingModes.ReceiveF1TransmitSensusRFF3 - }, - new PamTimeout - { - Minutes = 1 - } - } - }) { } - - protected Boolean AcknOrAnswerReceived(AcknOrAnswerResponse response) => response.IsValid; - - protected override Byte[] GetRequestBytes() - { - throw new NotImplementedException(); - } - - internal override void BeginAddResponse(AcknOrAnswerResponse response) - { - throw new NotImplementedException(); - } - - internal override void BeginAddResponse(FromAirResponse response) - { - throw new NotImplementedException(); - } - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/IdentifySIRTTask.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/IdentifySIRTTask.cs deleted file mode 100644 index edac22cf..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/IdentifySIRTTask.cs +++ /dev/null @@ -1,55 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Tasks -{ - using Common.Hardware.Interfaces.Ports.SIRT.Requests; - using Common.Hardware.Interfaces.Ports.SIRT.Responses; - - using System; - - internal class IdentifySIRTTask : SIRTTask - { - public IdentifySIRTTask() : base(new ReadRegRequest - { - ReadLength = 8, - Address = 0x11001820 - }) { } - - public event Action Identified; - - protected Boolean AcknOrAnswerReceived(AcknOrAnswerResponse response) - { - if (!response.IsValid) - { - this.NotifyCancelled(); - - return false; - } - - var payload = response.Payload; - var identified = payload.Length > 0; - - if (identified && this.Identified != null) - { - var sirtID = BitConverter.ToString(payload); - - this.Identified.Invoke(sirtID); - } - - return identified; - } - - protected override Byte[] GetRequestBytes() - { - throw new NotImplementedException(); - } - - internal override void BeginAddResponse(AcknOrAnswerResponse response) - { - throw new NotImplementedException(); - } - - internal override void BeginAddResponse(FromAirResponse response) - { - throw new NotImplementedException(); - } - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/RPAMTask.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/RPAMTask.cs deleted file mode 100644 index 902446f9..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/RPAMTask.cs +++ /dev/null @@ -1,19 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Tasks -{ - using Common.Hardware.Interfaces.Ports.SIRT.Requests; - - using System; - - public class RPAMTask : SIRTTask - { - public RPAMTask(UInt32 timeoutSeconds = TIMEOUT_SECONDS) : base(timeoutSeconds) - { - } - - public Boolean PamStruct - { - get => this.request.PamStruct; - set => this.request.PamStruct = value; - } - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/ReadPamPoolTask.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/ReadPamPoolTask.cs deleted file mode 100644 index 4f7af9ad..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/ReadPamPoolTask.cs +++ /dev/null @@ -1,74 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Tasks -{ - using Common.Hardware.Interfaces.Ports.SIRT.Requests; - using Common.Hardware.Interfaces.Ports.SIRT.Responses; - - using System; - - internal class ReadPamPoolTask : SIRTTask - { - public ReadPamPoolTask() : base(new ReadPamRequest - { - Address = 0xFFFFFFFF - }) { } - - public event Action AddressesParsed; - - protected Boolean AcknOrAnswerReceived(AcknOrAnswerResponse response) - { - if (!response.IsValid) - { - this.NotifyCancelled(); - - return false; - } - - var payload = response.Payload; - var length = payload.Length; - var parsed = false; - - if (length == 20) - { - var bytes = new Byte[4]; - var addresses = new UInt32[5]; - - for (var i = 0; i < length; i += 4) - { - Array.Clear(bytes, 0, 4); - Array.Copy(payload, i, bytes, 0, 4); - Array.Reverse(bytes); - - var address = BitConverter.ToUInt32(bytes, 0); - - if (address == UInt32.MaxValue) - { - address = 0; - } - - addresses[i / 4] = address; - } - - this.AddressesParsed?.Invoke(addresses); - - parsed = true; - } - - return parsed; - } - - protected override Byte[] GetRequestBytes() - { - throw new NotImplementedException(); - } - - internal override void BeginAddResponse(AcknOrAnswerResponse response) - { - throw new NotImplementedException(); - } - - internal override void BeginAddResponse(FromAirResponse response) - { - throw new NotImplementedException(); - } - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/WPAMTask.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/WPAMTask.cs deleted file mode 100644 index c435a02a..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports.SIRT/Tasks/WPAMTask.cs +++ /dev/null @@ -1,56 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports.SIRT.Tasks -{ - using Common.Hardware.Interfaces.Ports.SIRT.Requests; - - using System; - - public class WPAMTask : SIRTTask - { - public WPAMTask(UInt32 timeoutSeconds = TIMEOUT_SECONDS) : base(timeoutSeconds) - { - - } - - public Boolean WakeUpModul - { - get => this.request.WakeUpModul; - set => this.request.WakeUpModul = value; - } - - public Boolean WakeUpCmd - { - get => this.request.WakeUpCmd; - set => this.request.WakeUpCmd = value; - } - - public Boolean IgnoreTimeout - { - get => this.request.IgnoreTimeout; - set => this.request.IgnoreTimeout = value; - } - - public Boolean DelPamSemi - { - get => this.request.DelPamSemi; - set => this.request.DelPamSemi = value; - } - - public Boolean DelPamTx - { - get => this.request.DelPamTx; - set => this.request.DelPamTx = value; - } - - public Boolean DelPamAdr - { - get => this.request.DelPamAdr; - set => this.request.DelPamAdr = value; - } - - public Boolean DelPamAll - { - get => this.request.DelPamAll; - set => this.request.DelPamAll = value; - } - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports/IrdaSerialPort.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports/IrdaSerialPort.cs deleted file mode 100644 index f4dd3b72..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports/IrdaSerialPort.cs +++ /dev/null @@ -1,54 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports -{ - using System; - - public class IRDASerialPort : SerialPortBase - { - public IRDASerialPort(SerialPortSettings settings) : base(settings) - { - } - - public override Byte[] Write(params Byte[] data) - { - var _data = new Byte[0]; - - if (data.TryParseToIrda(out var bytes)) - { - var timeout = 3; - - for (var i = 0; i < timeout; i++) - { - this.Write(new Byte[] { 0x01, 0x01, 0x01, 0x01 }, 0, 4); - this.Write(bytes, 0, bytes.Length); - - var answerd = false; - var buffer = new Byte[0]; - - while (timeout-- >= 0) - { - var _bytes = this.Read(); - var bytesLength = _bytes.Length; - var bufferLength = buffer.Length; - - Array.Resize(ref buffer, bufferLength + bytesLength); - Array.Copy(_bytes, 0, buffer, bufferLength, bytesLength); - - if (buffer.TryParseFromIrda(out _data)) - { - answerd = true; - - break; - } - } - - if (answerd) - { - break; - } - } - } - - return _data; - } - } -} diff --git a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports/SerialPortBase.cs b/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports/SerialPortBase.cs deleted file mode 100644 index ef335ab3..00000000 --- a/Common/Hardware/Interfaces/Ports/Common.Hardware.Interfaces.Ports/SerialPortBase.cs +++ /dev/null @@ -1,187 +0,0 @@ -namespace Common.Hardware.Interfaces.Ports -{ - using System; - using System.Collections.Concurrent; - using System.Threading; - using SystemSerialPort = System.IO.Ports.SerialPort; - - public abstract class SerialPortBase - { - private static readonly ConcurrentDictionary serialPorts - = new ConcurrentDictionary(); - - private readonly SerialPortSettings settings; - - public SerialPortBase(SerialPortSettings settings) - => this.settings = settings; - - public event Action Logging; - - public String PortName - => this.settings?.PortName; - - public Boolean IsOpen - => serialPorts.TryGetValue(this.PortName, out var serialPort) - ? serialPort?.IsOpen ?? default(Boolean) - : default(Boolean); - - protected Int32 ReadBufferSize - => serialPorts.TryGetValue(this.PortName, out var serialPort) - ? serialPort?.ReadBufferSize ?? default(Int32) - : default(Int32); - - public virtual void Close() - { - try - { - if (serialPorts.TryRemove(this.PortName, out var serialPort)) - { - if (serialPort != null) - { - serialPort.Close(); - serialPort.Dispose(); - serialPort = null; - - this.Notify($"Disconnected: {this}"); - } - else - { - this.Notify($"{this.PortName} is null!"); - } - } - else - { - this.Notify($"{this.PortName} dose not exists!"); - } - } - catch (Exception e) - { - this.Notify(e.ToString()); - } - } - - public virtual void EnsureConnected() - { - if (!this.IsOpen) - { - this.Close(); - this.Open(); - } - } - - public virtual void Open() - { - try - { - if (serialPorts.TryGetValue(this.PortName, out var serialPort)) - { - serialPort.Close(); - } - - serialPort = new SystemSerialPort - { - BaudRate = this.settings.BaudRate, - DataBits = this.settings.DataBits, - Parity = this.settings.Parity, - PortName = this.PortName, - StopBits = this.settings.StopBits, - ReadTimeout = this.settings.RWTimeout, - }; - - if (serialPorts.TryAdd(this.PortName, serialPort)) - { - serialPort.Open(); - - this.Notify($"Connected: {this}"); - } - else - { - this.Notify($"{this.PortName} cann't be addedd!"); - } - } - catch (Exception e) - { - this.Notify(e.ToString()); - } - } - - public override String ToString() - => serialPorts.TryGetValue(this.PortName, out var serialPort) - ? $"{serialPort.PortName}, " + - $"{serialPort.BaudRate}, " + - $"{serialPort.DataBits}, " + - $"{serialPort.Parity}, " + - $"{serialPort.StopBits}" - : $"{this.settings.PortName}, " + - $"{this.settings.BaudRate}, " + - $"{this.settings.DataBits}, " + - $"{this.settings.Parity}, " + - $"{this.settings.StopBits}"; - - public virtual Byte[] Write(params Byte[] data) - { - this.Write(data, 0, data.Length); - - return data; - } - - protected void Notify(String message) => this.Logging?.Invoke(message); - - protected Byte[] Read(Int32 sleep = 100) - { - Thread.Sleep(sleep); - - var bytes = new Byte[0]; - - if (serialPorts.TryGetValue(this.PortName, out var serialPort) && serialPort.IsOpen) - { - var size = this.ReadBufferSize; - var buffer = new Byte[size]; - - try - { - if (serialPort.IsOpen) - { - var copyLength = serialPort.Read(buffer, 0, size); - - Array.Resize(ref bytes, copyLength); - Array.Copy(buffer, 0, bytes, 0, copyLength); - - if (this.settings.RXLoggingEnabled) - { - this.Notify($"RX|{BitConverter.ToString(bytes)}"); - } - } - } - catch (Exception e) - { - this.Notify(e.ToString()); - } - } - - return bytes; - } - - protected void Write(Byte[] bytes, Int32 start, Int32 length, Int32 sleep = 1) - { - if (serialPorts.TryGetValue(this.PortName, out var serialPort) && serialPort.IsOpen) - { - try - { - serialPort.Write(bytes, start, length); - - if (this.settings.TXLoggingEnabled) - { - this.Notify($"TX|{BitConverter.ToString(bytes)}"); - } - } - catch (Exception e) - { - this.Notify(e.ToString()); - } - } - - Thread.Sleep(sleep); - } - } -} diff --git a/Common/Hardware/Interfaces/Ports/SerialPorts/BaseSerialPort.cs b/Common/Hardware/Interfaces/Ports/SerialPorts/BaseSerialPort.cs index 13ae7987..db7501b0 100644 --- a/Common/Hardware/Interfaces/Ports/SerialPorts/BaseSerialPort.cs +++ b/Common/Hardware/Interfaces/Ports/SerialPorts/BaseSerialPort.cs @@ -27,7 +27,7 @@ namespace Xylem.Common.Hardware.Interfaces.Ports.SerialPorts /// /// The port is not assigned. /// - public const String PortNotAssigned = "NA"; + public const String PortNotAssigned = "NA"; /// public virtual event EventHandler OnRawRecordSendOut; @@ -193,6 +193,9 @@ namespace Xylem.Common.Hardware.Interfaces.Ports.SerialPorts /// /// Dispose serial port /// + /// + /// - Dispose procedure changed. + /// public void Dispose() { try @@ -206,14 +209,15 @@ namespace Xylem.Common.Hardware.Interfaces.Ports.SerialPorts //Run thread again to notice CancellationToken has changed _onSyncReceiveThread.Set(); + + // dispose directly called from here to overcome glitches caused by USB to serial interface + _serialPort.Dispose(); } catch (Exception ex) { _byteDataLogger.Error(ex); - } - } @@ -222,7 +226,6 @@ namespace Xylem.Common.Hardware.Interfaces.Ports.SerialPorts { try { - //set receive interrupt threshold for immediate execution _serialPort.ReceivedBytesThreshold = 1; _serialPort.DataReceived += PhysicalDataReceived; @@ -253,6 +256,7 @@ namespace Xylem.Common.Hardware.Interfaces.Ports.SerialPorts throw new ApplicationException($"{Ident} {ex.Message}"); } } + /// /// Getting the base port /// @@ -419,6 +423,9 @@ namespace Xylem.Common.Hardware.Interfaces.Ports.SerialPorts /// The IrDA sniffer showed these on the communication line, but they are incompletely received. /// Assuming the DiscardInBuffer may be delayed, so the incoming data will be scrapped. /// + /// + /// - Dispose procedure changed. + /// private void ReadingThreadLoop() { //put the receive thread to JoinWaitSleep to avoid reading and logger output for timeout on @@ -448,8 +455,9 @@ namespace Xylem.Common.Hardware.Interfaces.Ports.SerialPorts if (SyncMarkRecord.SkipDecoding != dataSyncMarkThisRun) { OnRawRecordReceived?.Invoke(this, new StringPortDataEventArgs(rxStringRecord, - _receiveTimeStampPc, dataSyncMarkThisRun)); + _receiveTimeStampPc, dataSyncMarkThisRun)); } + if (RecordStreamingRawData) { AsciiDataLogger.Trace($"{rxStringRecord}"); @@ -503,12 +511,14 @@ namespace Xylem.Common.Hardware.Interfaces.Ports.SerialPorts if (PortSettingsForTransmitProtocol.DoubleSyncByte) { if (rxByte.Equals(PortSettingsForTransmitProtocol.ProtSyncByte) && - rxByteRecord[rxByteRecord.Count - 1].Equals(PortSettingsForTransmitProtocol.ProtSyncByte)) + rxByteRecord[rxByteRecord.Count - 1] + .Equals(PortSettingsForTransmitProtocol.ProtSyncByte)) { //skips this byte and read the next one rxByte = (Byte)_serialPort.ReadByte(); } } + //add byte to receive result buffer rxByteRecord.Add(rxByte); @@ -552,7 +562,9 @@ namespace Xylem.Common.Hardware.Interfaces.Ports.SerialPorts } } catch (ThreadAbortException) - { throw; } + { + _byteDataLogger.Info($"{Ident} Thread abort exception fired!"); + } catch (TimeoutException) { //ATTENTION: This "_serialPort.DiscardInBuffer()" caused a lot of trouble as it flushes a few incoming @@ -575,12 +587,12 @@ namespace Xylem.Common.Hardware.Interfaces.Ports.SerialPorts if (_receiveThread.ThreadState == ThreadState.Aborted || _receiveThread.ThreadState == ThreadState.AbortRequested) { - _byteDataLogger.Warn(ex, $"{ Ident} ThreadState is Aborted or AbortRequested but an " + - "error occurred while reading records from serial port"); + _byteDataLogger.Warn(ex, $"{Ident} ThreadState is Aborted or AbortRequested but an " + + "error occurred while reading records from serial port"); } else { - _byteDataLogger.Error(ex, $"{ Ident} Error while reading records from serial port"); + _byteDataLogger.Error(ex, $"{Ident} Error while reading records from serial port"); } } finally @@ -598,31 +610,33 @@ namespace Xylem.Common.Hardware.Interfaces.Ports.SerialPorts } } } - }//while (!_tokenReadData.IsCancellationRequested) - }// over hole reading thread loop + } //while (!_tokenReadData.IsCancellationRequested) + } // over hole reading thread loop catch (ThreadAbortException) - { } + { + _byteDataLogger.Info($"{Ident} Thread abort exception fired!"); + } catch (Exception ex) { _byteDataLogger.Error($"{Ident} {ex.Message}"); } - finally - { - if (_serialPort.IsOpen) - { - _serialPort.Close(); - if (_serialPort.IsOpen) - { - _byteDataLogger.Info($"{Ident} Port close delay!"); - Thread.Sleep(50); - _serialPort.Close(); - } - _serialPort.Dispose(); - _byteDataLogger.Info($"{Ident} Port is closed"); - - - } - } + //finally + //{ + // //var retries = 5; + // //while (_serialPort != null && _serialPort.IsOpen && retries-- > 0) + // //{ + // // _serialPort.Close(); + // // if (_serialPort.IsOpen) + // // { + // // _byteDataLogger.Info($"{Ident} Port closing delay!"); + // // Thread.Sleep(500); + // // } + // //} + // //if (_serialPort != null && _serialPort.IsOpen) + // // _byteDataLogger.Info($"{Ident} Port unable to close"); + // //else + // // _byteDataLogger.Info($"{Ident} Port is closed"); + //} } /// diff --git a/Common/Hardware/PLC/Siemens/Client/TestbenchAdapter/UAClientHelperAPI.cs b/Common/Hardware/PLC/Siemens/Client/TestbenchAdapter/UAClientHelperAPI.cs index 6f6eb548..89a4277f 100644 --- a/Common/Hardware/PLC/Siemens/Client/TestbenchAdapter/UAClientHelperAPI.cs +++ b/Common/Hardware/PLC/Siemens/Client/TestbenchAdapter/UAClientHelperAPI.cs @@ -84,6 +84,11 @@ namespace Xylem.Common.Hardware.Plc.Siemens.Client.TestbenchAdapter } } + public IEnumerable BrowseNode(ReferenceDescriptionCollection search) + { + throw new NotImplementedException(); + } + /// Finds Endpoints based on a server's url /// The server's url /// EndpointDescriptionCollection containing found Endpoints diff --git a/Common/Hardware/WaterMeter/Genesis/Applications/Applications.v3.ncrunchproject b/Common/Hardware/WaterMeter/Genesis/Applications/Applications.v3.ncrunchproject new file mode 100644 index 00000000..c87a742f --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/Applications/Applications.v3.ncrunchproject @@ -0,0 +1,11 @@ + + + False + + + + + False + True + + \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/DataPackages/EventArguments/BaseDataEventArgs.cs b/Common/Hardware/WaterMeter/Genesis/DataPackages/EventArguments/BaseDataEventArgs.cs new file mode 100644 index 00000000..b95fe97a --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/DataPackages/EventArguments/BaseDataEventArgs.cs @@ -0,0 +1,33 @@ +using System; + +namespace Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments +{ + + /// + /// + /// abstract for set structure for BaseDataEventArgs + /// + public abstract class BaseDataEventArgs : EventArgs + { + /// + /// 'Base' get event record form real child. + /// + /// + public Object GetData() + { + return GetEventData(); + } + + /// + /// get real Event record + /// + /// + public abstract Object GetEventData(); + + /// + /// Holds the record before decoding, for logging + /// + public String RawData; + } +} + diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/1415_configuration.json b/Common/Hardware/WaterMeter/Genesis/GenesisCore/1415_configuration.json new file mode 100644 index 00000000..ccc7ea73 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/1415_configuration.json @@ -0,0 +1,22280 @@ +{ +// "SUMMARY": { +// "schema": "1", +// "version": "348", +// "description": "...", +// "build": { +// "emea": "R1415 2025-02-08", +// "na": "B2011 2024-10-10" +// }, +// "CordonelRegisterResponsibilities.xlsx": { +// "version": "66.0", +// "timestamp": "2025-02-18 13:16" +// }, +// "date_modified": "2025-02-21 10:21" +// }, + "CONFIGEXCHANGE": { + "id": 4, + "version": { + "first": 3, + "last": 242 + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F.", + "R.D." + ], + "remarks": "Used in login.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "Used for identification and login.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 242 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "I don't expect this to be changed.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + } + }, + "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": 163 + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "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 + } + } + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "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": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "J.S." + ], + "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 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "This updates the same value as�AlarmEnableMask, best to avoid changing it.", + "region": { + "emea": { + "values": { + "default": 32851 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": [ + "J.S" + ], + "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": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.S" + ], + "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 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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 + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "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 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "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 + } + } + } + } + } + ] + }, + "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 measurements in 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 measurements in 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 measurements in reverse flow required to set reverse flow alarm", + "version": { + "first": 143, + "last": 163 + }, + "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": [ + "J.S." + ], + "remarks": "NEW! 1800 is the new default. Sould be up to 15min! A.F.: in normal usage (2Hz measurement) 15 measurements means 7.5 seconds.", + "region": { + "emea": { + "values": { + "default": 1800 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "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 + } + } + } + ] + }, + "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": 163 + }, + "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 + } + } + } + ] + }, + "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": 163 + }, + "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 + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Default for J.S. is 5.", + "region": { + "emea": { + "values": { + "default": 5 + } + }, + "na": { + "values": { + "default": 5 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "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 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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 + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 500 + } + }, + "na": { + "values": { + "default": 270 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 20 + } + }, + "na": { + "values": { + "default": 20 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Absolute or relative? A.F.: gauge pressure.", + "region": { + "emea": { + "values": { + "default": 1600000 + } + }, + "na": { + "values": { + "default": 1380000 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Absolute or relative? A.F.: gauge pressure.", + "region": { + "emea": { + "values": { + "default": 30000 + } + }, + "na": { + "values": { + "default": 240000 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 163 + }, + "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 + } + } + } + ] + }, + "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": 163 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "J.S.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "Internal use in firmware only", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "A.F." + ], + "remarks": "Write to zero before leaving manufacturing to ensure not marked as 'installed'.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 163 + }, + "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 + } + } + } + ] + }, + "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", + "version": { + "first": 161, + "last": 163 + }, + "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": [ + ".J.L." + ], + "remarks": "This has default setting for DEWA customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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", + "version": { + "first": 161, + "last": 163 + }, + "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": [ + ".J.L." + ], + "remarks": "This has default setting for DEWA customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + } + } + ] + } + }, + "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": 22 + }, + "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": 22 + }, + "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 + } + } + } + ] + }, + "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": 22 + }, + "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 + } + } + } + ] + } + }, + "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": [ + "B.D." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 2 + } + }, + "na": { + "values": { + "default": 2 + } + } + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "Default is 6 and it should stay as 6 for all sizes.", + "region": { + "emea": { + "values": { + "default": 6 + } + }, + "na": { + "values": { + "default": 6 + } + } + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "J.S.", + "R.D." + ], + "remarks": "(<=125 = 3n ) 150=> 2n in m� -> what about other Units. See Display Unit Customer Specification.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "J.S." + ], + "remarks": "Same units for each calculator. Vako.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "J.S." + ], + "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 + } + } + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "You will need this if you wish to reset the volume to zero at the end of calibration.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "J.S." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 1 + } + } + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "You will need to use this during calibration.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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 + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "remarks": "Default for other DN (3932160 -> DN50).", + "region": { + "emea": { + "values": { + "default": 3932160 + } + }, + "na": { + "values": { + "default": 3932160 + } + } + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "J.S." + ], + "remarks": "Default for other DN (J.S.: 2000000-> DN50)", + "region": { + "emea": { + "values": { + "default": 2000000, + "DN125": "TBD", + "DN250": "TBD", + "DN300": "TBD" + } + } + } + } + }, + { + "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 + } + } + }, + { + "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 + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "You will need this if you use TriggerIdle or TriggerTest", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "R.D." + ], + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "B.D" + ], + "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" + } + } + } + } + }, + { + "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": [ + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D." + ], + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D." + ], + "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 + } + } + }, + { + "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": [ + "A.F.", + "B.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "A.F.", + "B.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "A.F.", + "B.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "Display should be sealed at end of manufacture (EMEA only).", + "region": { + "emea": { + "values": { + "default": 1 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "629145600 <-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "default": 2936012800 + } + }, + "na": { + "values": { + "default": 2936012800 + } + } + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "<-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "default": 629145600 + } + }, + "na": { + "values": { + "default": 629145600 + } + } + } + } + }, + { + "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": [ + "A.F." + ], + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 8192 + } + }, + "na": { + "values": { + "default": 8192 + } + } + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "remarks": "0.5us for all meter sizes. 0.5us is 137438 (0x218DE).", + "region": { + "emea": { + "values": { + "default": 137438 + } + }, + "na": { + "values": { + "default": 137438 + } + } + } + } + }, + { + "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": [ + "M.C." + ], + "remarks": "Will change with different releases - should be tracked elsewhere. meter_lut_202406170836_v0.17_crc_list.", + "region": { + "emea": { + "values": { + "DN40": 16549, + "DN50": 51664, + "DN65": 52673, + "DN80": 18061, + "DN100": 48372, + "DN125": 8134, + "DN150": 1637, + "DN200": 60969, + "DN250": 45341, + "DN300": 49157 + } + }, + "na": { + "values": { + "US1_5": 50785, + "US2": 58892, + "US3": 52036, + "US4": 50586, + "US6": 8010, + "US8": 17423, + "US10": 24406, + "US12": 11854 + } + } + } + } + } + ] + }, + "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 + } + } + } + } + } + ] + }, + "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": 313, + "last": 322 + }, + "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" + } + } + } + } + } + ] + }, + "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": 313, + "last": 322 + }, + "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" + } + } + } + } + } + ] + }, + "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": 313, + "last": 322 + }, + "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" + } + } + } + } + } + ] + }, + "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": 313, + "last": 322 + }, + "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" + } + } + } + } + } + ] + }, + "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": 313, + "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": "Probably customer specific in EMEA should always be false in NA.", + "region": { + "emea": { + "values": { + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "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": [ + "J.S." + ], + "remarks": "1 sec.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + }, + "na": { + "values": { + "default": 3 + } + } + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "These are the fields used in NA AMR reading strings.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "Simple timestamp, should be filled in at the end of manufacture. Time now.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "In NA the AMR digits should be displayed on the LCD periodically, in EMEA they shouldn't.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "G01 Pulse value (100 l/Imp., ...). Customer specific.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "G02 Pulse type (Netted Imp./Tamp. (-), �). Customer specific.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "G03 Pulse length (500ms, �). Customer specific.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "C05 unit (m�, kl, US-Gall./Imp.-Gall, Barrel, ...)", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "Counter size and unit. See FlowPoint.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "�C - EMEA/China / �F - USA.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 1 + } + } + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "Mpa - EMEA/China / PSI - USA / Bar - USA.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "custom": [ + 1, + 2 + ] + } + } + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 60000 + } + }, + "na": { + "values": { + "default": 60000 + } + } + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "-> 0", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "B09 Housing option (D,Y). Variant specific.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "For use in testing.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "For use in testing.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 1, + "DN300": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "Read only.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "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": [ + "A.F." + ], + "remarks": "You do need to use this if you change any parameters in NA2WALARMS and want to keep them.", + "region": { + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "NA has a series of alarms called 'predefined' these are the ones that should be enabled.", + "region": { + "na": null + } + } + } + ] + } + }, + "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": 199 + }, + "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": 199 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "na": null + } + } + } + ] + }, + "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": 199 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "na": null + } + } + } + ] + } + }, + "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": [ + "A.F." + ], + "remarks": "You may wish to do this at the end of manufacture to clear all the old data out.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "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 + } + } + }, + "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": 77 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 201335811 + } + } + } + } + } + ] + }, + "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": [ + "J.S.", + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 5 + } + } + } + } + } + ] + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 201335811 + } + } + } + } + } + ] + }, + "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": [ + "J.S.", + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 1 + } + } + } + } + } + ] + }, + "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": 77 + }, + "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 + } + } + } + } + } + ] + }, + "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": 77 + }, + "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 + } + } + } + } + } + ] + } + }, + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 6 + } + }, + "na": { + "values": { + "default": 6 + } + } + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 2 + } + }, + "na": { + "values": { + "default": 2 + } + } + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "A.F.", + "R.D" + ], + "remarks": "This should be set to the expected life of the meter. In the early days the expected lifetime will be this.", + "region": { + "emea": { + "values": { + "default": 630720000 + } + }, + "na": { + "values": { + "default": 630720000 + } + } + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + } + }, + "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": 545 + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 15 + } + } + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 900 + } + } + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + } + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + } + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 7 + } + } + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Constant, do not change.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + } + } + ] + }, + "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": [ + "J.L." + ], + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Set to 0xFF at the end of parameterization to trigger shipping mode.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Set final radio address.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Not used anymore.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Not used anymore.", + "region": { + "emea": null + } + } + } + ] + }, + "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": [ + "J.L." + ], + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at CUSTOMER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at CUSTOMER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 29 + } + } + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Runtime value.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "J.L." + ], + "remarks": "D05 radio key (Sensus (standard), �)", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Customer specific.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Dependant on territory setting acc SAP order.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Customer specific. Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "1: if OTA update is allowed.", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": 545 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignor because is set up at CUSTOMER APP?", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + }, + "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": 545 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + } + }, + "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": 540 + }, + "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": 540 + }, + "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 + } + } + } + ] + }, + "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": 540 + }, + "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 + } + } + } + ] + }, + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "A.F.", + "R.D." + ], + "remarks": "Time now. Write the current time during manufacture.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "This is effectively another application version number but for the Breeze Core and is worth looking at.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "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 + } + } + } + ] + }, + "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": 540 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "A.F.", + "R.D." + ], + "remarks": "Set fix as final step at production.", + "region": { + "emea": { + "values": { + "default": 254 + } + }, + "na": { + "values": { + "default": 255 + } + } + } + } + } + ] + }, + "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": 540 + }, + "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 + } + } + } + ] + } + }, + "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/Common/Hardware/WaterMeter/Genesis/GenesisCore/Consts/Alarm.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/Consts/Alarm.cs new file mode 100644 index 00000000..60ea72bc --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/Consts/Alarm.cs @@ -0,0 +1,31 @@ +using System; + +namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts +{ + /// + /// Alarm messages + /// + [Flags] + public enum Alarm + { + // ReSharper disable InconsistentNaming +#pragma warning disable CS1591 + REBOOT = 1 << 0, + LOW_BATTERY = 1 << 1, + EMPTY_PIPE = 1 << 4, + REVERSE_FLOW = 1 << 6, + SUSPECT_LEAK = 1 << 7, + BROKEN_PIPE = 1 << 8, + LOW_PRESSURE = 1 << 9, + HIGH_PRESSURE = 1 << 10, + LOW_TEMPERATURE = 1 << 11, + HIGH_TEMPERATURE = 1 << 12, + RADIO_ERROR = 1 << 13, + METROLOGY_PARAMS = 1 << 14, + METROLOGY_MEASURE = 1 << 15, + + ALL = 0xFFFFFF, +#pragma warning restore CS1591 + // ReSharper restore InconsistentNaming + } +} diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisConfigReader.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisConfigReader.cs index fa26ef81..e309cc15 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisConfigReader.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisConfigReader.cs @@ -171,6 +171,9 @@ case "int32_t": return typeof(Int32); case "int64_t": return typeof(Int64); case "int16_t": return typeof(Int16); + case "uint72_t": return typeof(UInt72); + case "uint48_t": return typeof(UInt48); + case "uint88_t": return typeof(UInt88); default: throw new Exception($"Type {value} not recognized!"); } } diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisCore.csproj b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisCore.csproj index 8652b97a..dcee9f39 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisCore.csproj +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisCore.csproj @@ -228,8 +228,10 @@ Properties\SharedAssemblyInfo.cs + + @@ -238,6 +240,7 @@ + diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs index 0c5efd39..6e5a9917 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs @@ -31,6 +31,7 @@ using Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.EventArguments; using Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts; +using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisPwd; using Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol; using Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts; @@ -47,6 +48,7 @@ using Xylem.Common.Logic.SoftwareAccessHelper; using Xylem.Common.Metrology.Measurements; using Xylem.Common.Metrology.Measurements.Consts; using Xylem.Common.Utils.Logging; +using Access = Xylem.Common.Hardware.WaterMeter.Genesis.Registers.Access; using Timer = System.Timers.Timer; namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore @@ -64,7 +66,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore ComVisible(true), ClassInterface(ClassInterfaceType.None), ComSourceInterfaces(typeof(IMeterEvents))] - public partial class GenesisMeter : IMeter, IMeterEvents, IWaterMeterWithRegisters + public partial class GenesisMeter : IGenesisMeter, IMeterEvents, IWaterMeterWithRegisters { #region ctor @@ -74,28 +76,14 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore public GenesisMeter() { SetLogger(); - } - /// - /// Process configuration - /// - public ProcessConfig Configuration = new ProcessConfig(); - - /// - /// Transmit protocol access for underlie objects to change response timeout - /// - public ITransmitProtocol TransmitProtocol; - //initially do not signal event private readonly AutoResetEvent _onSyncKeepSessionThread = new AutoResetEvent(false); private Thread _keepSessionThread; private Timer _keepSessionTimer; private readonly CancellationTokenSource _keepSessionToken = new CancellationTokenSource(); - private ILogger _logger; - private ILogger _loggerRawData; - /// /// /// Slot number for test-bench @@ -109,7 +97,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore public GenesisMeter(Int32 slot, PortConfig? requestPort, PortConfig? streamingPort, Boolean ignoreCorruptedData = true, String password = null) { - _logger = NLogHelper.CreateOrGetMultiLogger($"Slot:{slot}", "Slot", "Meter", "MeterBase", "MeterBase"); + Logger = NLogHelper.CreateOrGetMultiLogger($"Slot:{slot}", "Slot", "Meter", "MeterBase", "MeterBase"); SetupGenesisMeter(slot, requestPort, streamingPort, ignoreCorruptedData, password); } @@ -127,15 +115,49 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// private const Int32 LogoutLvl = 0; + /// + /// Minimal length for PcbId + /// + public const Int32 MinPcbIdLength = 9; + + /// + /// 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. + /// + public const Int32 QuiescentCurrent_uA = 50; + #endregion #region Properties + /// + /// Logger for NLog + /// + protected ILogger Logger + { + set; get; + } + + private ILogger _loggerRawData; + + /// + /// Process configuration + /// + public ProcessConfig Configuration { internal set; get; } = new ProcessConfig(); + + /// + /// Transmit protocol access for underlie objects to change response timeout + /// + public ITransmitProtocol TransmitProtocol + { + internal set; get; + } + private String _serialNumber = ""; /// /// /// Property is redundant because is also stored in - /// but never less is - /// is the identification of the meter it has a separate Property + /// but + /// nevertheless it is the identification of the meter it has a separate Property /// public String SerialNumber { @@ -161,22 +183,95 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore get; set; } - /// - /// Represent - /// proposed for login - /// + /// public String PcbId { - get; private set; + get; protected set; + } + + /// + public List MeterAppListVersion { protected set; get; } = new List(); + + /// + public Int32? CoreRevision + { + protected set; get; + } + + /// + public String StrCoreRevision + { + protected set; get; + } + + /// + public String FwVersion + { + protected set; get; + } + + /// + public UInt32? InstalledFwVersion + { + protected set; get; + } + + /// + public String LutCrc + { + protected set; get; + } + + /// + public String MeterSize + { + protected set; get; + } + + /// + public String Region + { + protected set; get; + } + + /// + /// Radio frequency in MHz (433 or 868 or null). + /// + public Int32? RadioFrequencyMhz + { + protected set; get; + } + + /// + /// Metrology upgrade permission. + /// + public Byte MetrologyUpgradePermission + { + set; get; } /// public Int32 IntermediateUpdateTimeS { get; set; } = CommunicationConfig.MeasurementUpdateTimeS; + /// + public Int32 OrderNumber + { + set; get; + } + + /// + public Int64 RadioAddress + { + set; get; + } + /// - /// Add on ctor a password and it will be used for login in if no other password is set + /// Add on ctor a password, it will be used for login in if no other password is set /// - private String _password; + protected String Password + { + set; get; + } /// /// reminder for last communication acknowledge code to detect communication errors @@ -199,7 +294,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public Boolean PulseAdapterAutoDetected { - set; + private set; get; } @@ -208,22 +303,20 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public Boolean IsDevelopmentUsage { - get; set; + get; private set; } - - /// - /// All parameter store in this Genesis is up in here + /// 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 /// - private readonly MeterRegisters _configRegister = new MeterRegisters(); + protected readonly MeterRegisters ConfigRegister = new MeterRegisters(); /// /// All applications defined by configuration.json /// - private readonly List _configApplications = new List(); + protected readonly List ConfigApplications = new List(); /// /// request port assignment/info @@ -236,7 +329,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// request protocol assignment/info /// - public RequestProtocol RequestProtocol; + public RequestProtocol RequestProtocol + { + private set; get; + } /// /// streaming port assignment/info @@ -249,7 +345,11 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// streaming protocol assignment/info /// - public StreamingProtocol StreamingProtocol; + public StreamingProtocol StreamingProtocol + { + private set; get; + } + /// /// to reduce the IrdA communication in test bench, preparation will be done once (when SkipPreparationForTestBench is true) /// @@ -263,141 +363,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public event EventHandler OnRequestRecordReceived; - /// - public void SetConfigRegisterDefinitions(List allRegisters) - { - _configRegister.AddRegistersDefinitions(allRegisters); - } - - private void SetConfigApplicationDefinitions(List allApplications) - { - foreach (var add in allApplications) - { - try - { - var addGenesisApplication = add; - - if (addGenesisApplication != null) - { - _configApplications.Add(addGenesisApplication); - } - } - catch (Exception) - { - // ignored - } - } - } - - - - /// - /// Returns meter registers - /// - /// - public MeterRegisters GetConfigRegistersDefinitions() - { - return _configRegister; - } - - /// - void IWaterMeterWithRegisters.LoadConfiguration(String location) - { - var configFile = ProgramConfig.RegisterDefinitionFileName; - - var configFilePath = Path.Combine(location, configFile); - - if (!new FileInfo(configFilePath).Exists) - { - configFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), - nameof(Genesis), configFile); - if (!new FileInfo(configFilePath).Exists) - { - _logger.Fatal($"Slot:{Slot} - Missing register definition file (configuration.json). Search location: {configFilePath}"); - throw new ApplicationException("Missing register definition file (configuration.json). Setup is invalid!"); - } - } - - try - { - _logger.Trace($"Slot:{Slot} - Registers definitions loaded from {configFilePath}"); - if (Configuration.AutoUpdateFiles) - { - _logger.Trace($"Slot:{Slot} - Check for updates of {configFilePath}"); - var fi = new FileInfo(configFilePath); - - try - { - var str = LocalWebRequest.GetRequest($"{ServiceUrls.FileContentControllerUrl()}GetUpdateFileContent?FileName={fi.Name}&ClientFileDate={fi.CreationTime.ToString("yyyy-MM-ddTHH:mm:ss.fffZ")}&isDeveloper=0", 5000); - if (!string.IsNullOrEmpty(str.Trim('\"'))) - { - var baseFile = JsonConvert.DeserializeObject(str); - _logger.Trace($"Slot:{Slot} - Updated register definitions File"); - if (baseFile != null) - { - File.WriteAllText(configFilePath, baseFile.FileContent); - if (baseFile.UploadDate != null) - File.SetCreationTime(configFilePath, baseFile.UploadDate.Value.UtcDateTime); - } - } - else - { - _logger.Trace($"Slot:{Slot} - Update not needed. Register definition file is up to date."); - } - - } - catch (Exception ex) - { - _logger.Warn(ex, $"Slot:{Slot} - Register definition file update went wrong."); - } - - - } - - - _logger.Trace($"Slot:{Slot} - Registers definitions loaded from {configFilePath}"); - } - catch (Exception ex) - { - _logger.Warn(ex, $"Slot:{Slot} - Register definition file update went wrong."); - } - - - //builds a configuration file reader from configuration.json and reads all registers definitions - //and application definitions - var registerReader = new GenesisConfigurationReader(configFilePath); - - SetConfigRegisterDefinitions(registerReader.ConfigRegistersDefinitions); - SetConfigApplicationDefinitions(registerReader.ConfigApplicationDefinitions); - } - - event EventHandler IMeter.OnDisposeCompleted - { - add - { - // throw new NotImplementedException(); - } - - remove - { - // throw new NotImplementedException(); - } - } - - #endregion - - #region state machine and states - - /// - /// Order number under which this meter has to be produced - /// - public Int32 OrderNumber; - - /// - /// Radio address - /// - public Int64 RadioAddress; - /// /// do not use it to set ProcessStatus /// if you want to change ProcessStatus of this genesis use @@ -409,14 +374,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// if state is change /// /// will be invoked. - /// on some states other events will be invoke as well + /// on some states other events will be invoked as well public ProcessState ProcessStatus { - get - { - return _myProcessStatus; - } - + get => _myProcessStatus; set { if (_myProcessStatus == value) @@ -467,10 +428,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public ErrorState ErrorStatus { - get - { - return _myErrorState; - } + get => _myErrorState; set { _myErrorState = value; @@ -483,19 +441,16 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public Boolean IsLoggedOn { - get; private set; + get; protected set; } private String _currentActionText = ""; /// - /// Hold the current process name e.g. FlowTest, Preadjustement for logging + /// Hold the current process name e.g. FlowTest, Preadjustment for logging /// public String CurrentActionText { - get - { - return _currentActionText; - } + get => _currentActionText; set { _currentActionText = value; @@ -503,6 +458,126 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } } + #endregion + + #region Setup + + /// + public void SetConfigRegisterDefinitions(List allRegisters) + { + ConfigRegister.AddRegistersDefinitions(allRegisters); + } + + private void SetConfigApplicationDefinitions(List allApplications) + { + foreach (var add in allApplications) + { + try + { + var addGenesisApplication = add; + + if (addGenesisApplication != null) + { + ConfigApplications.Add(addGenesisApplication); + } + } + catch (Exception) + { + // ignored + } + } + } + + /// + /// Returns meter registers + /// + /// + public MeterRegisters GetConfigRegistersDefinitions() + { + return ConfigRegister; + } + + /// + //void IWaterMeterWithRegisters.LoadConfiguration(String location) + public void LoadConfiguration(String location) + { + var configFile = ProgramConfig.RegisterDefinitionFileName; + + var configFilePath = Path.Combine(location, configFile); + + if (!new FileInfo(configFilePath).Exists) + { + configFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), + nameof(Genesis), configFile); + if (!new FileInfo(configFilePath).Exists) + { + var msg = $"Slot:{Slot} - {Resources.StrErrorMissingConfiguration} {location}"; + Logger.Fatal($"Slot:{Slot} - Missing register definition file (configuration.json). Search location: {location}"); + throw new ApplicationException(msg); + } + } + + try + { + Logger.Trace($"Slot:{Slot} - Registers definitions loaded from {location}"); + if (Configuration.AutoUpdateFiles) + { + Logger.Trace($"Slot:{Slot} - Check for updates of {configFilePath}"); + var fi = new FileInfo(configFilePath); + + try + { + var str = LocalWebRequest.GetRequest($"{ServiceUrls.FileContentControllerUrl()}GetUpdateFileContent?FileName={fi.Name}&ClientFileDate={fi.CreationTime.ToString("yyyy-MM-ddTHH:mm:ss.fffZ")}&isDeveloper=0", 30000); + if (!string.IsNullOrEmpty(str.Trim('\"'))) + { + var baseFile = JsonConvert.DeserializeObject(str); + Logger.Trace($"Slot:{Slot} - Updated register definitions File"); + if (baseFile != null) + { + File.WriteAllText(configFilePath, baseFile.FileContent); + if (baseFile.UploadDate != null) + File.SetCreationTime(configFilePath, baseFile.UploadDate.Value.UtcDateTime); + } + } + else + { + Logger.Trace($"Slot:{Slot} - Update not needed. Register definition file is up to date."); + } + + } + catch (Exception ex) + { + Logger.Warn(ex, $"Slot:{Slot} - Register definition file update went wrong."); + } + } + + Logger.Trace($"Slot:{Slot} - Registers definitions loaded from {configFilePath}"); + } + catch (Exception ex) + { + Logger.Warn(ex, $"Slot:{Slot} - Register definition file update went wrong."); + } + + //builds a configuration file reader from configuration.json and reads all registers definitions + //and application definitions + var registerReader = new GenesisConfigurationReader(configFilePath); + + SetConfigRegisterDefinitions(registerReader.ConfigRegistersDefinitions); + SetConfigApplicationDefinitions(registerReader.ConfigApplicationDefinitions); + } + + event EventHandler IMeter.OnDisposeCompleted + { + add + { + // throw new NotImplementedException(); + } + + remove + { + // throw new NotImplementedException(); + } + } /// /// Setup water meter from configuration file: @@ -549,7 +624,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore throw new ApplicationException($"Slot:{slot} - File " + $"{ProgramConfig.SerialConfigFileName} does not contain valid configuration"); } - _logger.Debug($"Slot:{slot} - Configuration loaded"); + Logger.Debug($"Slot:{slot} - Configuration loaded"); if (!useRequest) { SetupGenesisMeter(slot, null, slotConfig.Streaming, ignoreCorruptedData); @@ -567,20 +642,20 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore private void SetLogger() { - if (_logger != null) + if (Logger != null) { LogManager.Flush(); } if (string.IsNullOrEmpty(CurrentActionText)) { - _logger = NLogHelper.CreateOrGetMultiLogger($"Slot:{Slot}", $"", "Meter", "MeterBase", "MeterBase"); + Logger = NLogHelper.CreateOrGetMultiLogger($"Slot:{Slot}", $"", "Meter", "MeterBase", "MeterBase"); } else { var id = !string.IsNullOrEmpty(SerialNumber) ? $"SN{SerialNumber}" : $"PCB{PcbId}"; - _logger = NLogHelper.CreateOrGetMultiLogger($"Slot:{Slot}_{id}_{CurrentActionText}", $"Slot", "Meter", "MeterBase", "MeterBase"); + Logger = NLogHelper.CreateOrGetMultiLogger($"Slot:{Slot}_{id}_{CurrentActionText}", $"Slot", "Meter", "MeterBase", "MeterBase"); if (StreamingPort != null && StreamingPort is LedSerialPort) { var streamingIdent = $"LedRawData_Slot_{Slot}_{id}_{CurrentActionText}"; @@ -592,7 +667,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore if (!string.IsNullOrEmpty(SerialNumber) && CurrentActionText.Contains("PG")) { - var pathMain = NLogHelper.GetPath(_logger); + var pathMain = NLogHelper.GetPath(Logger); var pathRaw = NLogHelper.GetPath(((LedSerialPort)StreamingPort).GetRawLogger()); var basePath = Path.GetDirectoryName(pathMain); @@ -606,9 +681,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore pathRaw = Path.GetFileName(pathRaw); var tmpUrl = $"http://10.49.40.25/MeterProcessState/api/TestBench/SetMeterLogPathInfo?SerialNumber={SerialNumber}&TestRunId={testRunString}&BasePath={basePath}&MainLogName={pathMain}&LEDName={pathRaw}"; - _logger.Debug($"Request Url: { tmpUrl}"); + Logger.Debug($"Request Url: {tmpUrl}"); //ToDO: Update to service URl - LocalWebRequest.GetRequest(tmpUrl, 5000); + LocalWebRequest.GetRequest(tmpUrl, 30000); } } @@ -632,7 +707,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore { Slot = slot; SetLogger(); - _password = password; + Password = password; if (requestPort != null) { @@ -688,7 +763,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore StreamingProtocol = new StreamingProtocol(streamingIdent, ignoreCorruptedData); } Configuration = new ProcessConfig(ProgramConfig.ConfigFileName); - _logger.Debug($"Slot:{Slot} - Setup done"); + Logger.Debug($"Slot:{Slot} - Setup done"); } /// @@ -700,7 +775,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore if (RequestPort != null && RequestPort.GetPortName() != BaseSerialPort.PortNotAssigned) { LinkPortToProtocol(RequestPort, RequestProtocol); - _logger.Trace($"Slot:{Slot} - RequestPort and RequestProtocol linked"); + Logger.Trace($"Slot:{Slot} - RequestPort and RequestProtocol linked"); RequestProtocol.OnMeterRegisterUpdated += RequestProtocol_MeterRegisterUpdated; RequestProtocol.OnRecordIsDecoded += RequestProtocol_ApplyDecodedRecord; RequestProtocol.OnAuthorizationGrant += RequestProtocol_AuthorizationGrant; @@ -708,12 +783,12 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore if (StreamingPort != null && StreamingPort.GetPortName() != BaseSerialPort.PortNotAssigned) { LinkPortToProtocol(StreamingPort, StreamingProtocol); - _logger.Trace($"Slot:{Slot} - StreamingPort and StreamingProtocol linked"); + Logger.Trace($"Slot:{Slot} - StreamingPort and StreamingProtocol linked"); StreamingProtocol.OnRecordIsDecoded += StreamingProtocol_ApplyDecodedRecord; } - _logger.Debug($"Slot:{Slot} - Connected and communication started"); + Logger.Debug($"Slot:{Slot} - Connected and communication started"); } /// @@ -742,7 +817,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } catch (Exception ex) { - throw new ApplicationException($"Cannot Open Comport. Check TaskManager for other Genesis relevant programs and close them. Also check if the comport is valid! { Environment.NewLine }{ ex.Message}"); + var msg = $"Slot:{Slot} - {Resources.StrErrorMsgComPort} {ex.Message}"; + Logger.Fatal(msg); + throw new ApplicationException(msg); } protocol.OnRecordReadyToSend += delegate (Object o, BasePortDataEventArgs dataToSend) @@ -770,7 +847,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore private void RequestProtocol_AuthorizationGrant(Object sender, EventArgs e) { - _logger.Debug($"Slot:{Slot} - Authorization succeeded"); + Logger.Debug($"Slot:{Slot} - Authorization succeeded"); } @@ -802,7 +879,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore public event EventHandler OnMeasurementCompleted; /// - /// call this if session is expired and you need an re-authorization + /// call this if session is expired and you need a re-authorization /// public EventHandler AuthorizationRequired; @@ -823,7 +900,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore if (e == null) { - e = new EventArgs(); + e = EventArgs.Empty; } handler.Invoke(sender, e); @@ -910,7 +987,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public RequestRecord QueryCaps() { - _logger.Debug($"Slot:{Slot} - Request capabilities"); + Logger.Debug($"Slot:{Slot} - Request capabilities"); return RequestProtocol.CommandToMeter(Commands.QueryCaps); } @@ -928,7 +1005,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore public Boolean PrivilegeCommandToMeter(Int32 loginLvl, Boolean runImmediately = true) { - _logger.Debug($"Slot:{Slot} - Set privilege login level({loginLvl})"); + Logger.Debug($"Slot:{Slot} - Set privilege login level({loginLvl})"); _backupLoginLvl = loginLvl; var result = WriteRegister(Register.Configexchange.Privilege, loginLvl); @@ -954,13 +1031,13 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore { try { - var regDef = _configRegister.GetRegisterDefinitionByName(Register.Configexchange.Password); + var regDef = ConfigRegister.GetRegisterDefinitionByName(Register.Configexchange.Password); StopKeepSession(); //restore password if new password is zero if (string.IsNullOrEmpty(password)) { - password = _password; + password = Password; } if (string.IsNullOrEmpty(password)) @@ -969,8 +1046,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } //set new password - _password = password; - _logger.Debug($"Slot:{Slot} - Login with password"); + Password = password; + Logger.Debug($"Slot:{Slot} - Login with password"); //Due to password is defined as uint96_t this direct communication will be used instead of //WriteRegister. The data shouldn't be resorted MSB<->LSB like other unit data types! @@ -986,7 +1063,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } catch (Exception e) { - _logger.Error(e); + Logger.Error(e); } return null; @@ -999,7 +1076,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public void ClearPassword() { - _password = string.Empty; + Password = string.Empty; } /// /// Acquires the password from WEB-API. @@ -1040,25 +1117,27 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore // on unknown password try to get it from DB if (MeterPwdHandlerDb.GetPasswordFromDb(PcbId, out var password)) { - _logger.Info($"Slot:{Slot} - Got password from GenesisPasswordService, " + + Logger.Info($"Slot:{Slot} - Got password from GenesisPasswordService, " + $"URL({ServiceUrls.GenesisGetPasswordServiceUrl() + PcbId})"); } else { - _logger.Info($"Slot:{Slot} - Cannot get password from GenesisPasswordService, " + + Logger.Info($"Slot:{Slot} - Cannot get password from GenesisPasswordService, " + $"URL({ServiceUrls.GenesisGetPasswordServiceUrl() + PcbId}))"); // try to read the password from an offline password file - if (!File.Exists(ProgramConfig.OfflineInfoFile)) + var offlinePwdPathName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), + "Genesis", ProgramConfig.OfflineInfoFile); + if (!File.Exists(offlinePwdPathName)) return password; var listOfOfflinePasswords = JsonConvert.DeserializeObject>( - File.ReadAllText(ProgramConfig.OfflineInfoFile)); + File.ReadAllText(offlinePwdPathName)); if (listOfOfflinePasswords != null) password = listOfOfflinePasswords.First(x => x.PcbId == PcbId).Password; if (!string.IsNullOrEmpty(password)) { - _logger.Info($"Slot:{Slot} - Got password for PcbId:{PcbId} from password file!"); + Logger.Info($"Slot:{Slot} - Got password for PcbId:{PcbId} from password file!"); } } @@ -1069,9 +1148,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// Get password from server /// - public Boolean Login() + public virtual Boolean Login() { - if (string.IsNullOrEmpty(_password) || string.IsNullOrEmpty(PcbId)) + if (string.IsNullOrEmpty(Password) || string.IsNullOrEmpty(PcbId)) { var password = GetPassword(); if (string.IsNullOrEmpty(password)) @@ -1081,13 +1160,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore return Login(password); } - return Login(_password); + return Login(Password); } - /// - /// Login with identical password as last time - /// - /// + /// /// /// - Initial /// @@ -1098,7 +1174,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore { if (IsLoggedOn) return true; - return string.IsNullOrEmpty(_password) ? Login() : Login(_password); + return string.IsNullOrEmpty(Password) ? Login() : Login(Password); } private class OfflinePasswordItem @@ -1125,7 +1201,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// Starting a timer to keep session active, /// starting the . /// - /// password string to login + /// password string to log in /// true = process command; false = add command to list. call /// to process login command /// @@ -1144,9 +1220,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// /// - REMOVED: Pulse module deactivated at login. - /// - Skip FW readout to quick connect being able to immediately switch off the pulse mode before App detection. + /// - Skip FW readout to quickly connect being able to immediately switch off the pulse mode before App detection. /// - public Boolean Login(String password, Boolean runImmediately = true, Boolean skipReadMeterFwAndAssignRegisters = false) + public virtual Boolean Login(String password, Boolean runImmediately = true, Boolean skipReadMeterFwAndAssignRegisters = false) { var backupRetries = CommunicationConfig.RequestRetries; @@ -1165,10 +1241,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore IsLoggedOn = responseRecord.Acknowledge == RequestAcknowledgeState.Ok && responseRecord.ResponseErrorBase == 0 && responseRecord.ResponseErrorReason == 0; - _password = password; + Password = password; if (IsLoggedOn) { - _logger.Info($"Slot:{Slot} - Successful logged in to meter"); + Logger.Info($"Slot:{Slot} - Successful logged in to meter"); StartKeepSession(); if (Configuration != null && !Configuration.ProductionMode) @@ -1181,7 +1257,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } else { - _logger.Warn($"Slot:{Slot} - Login to meter failed!"); + Logger.Warn($"Slot:{Slot} - Login to meter failed!"); } CommunicationConfig.RequestRetries = backupRetries; @@ -1194,7 +1270,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// input string like "11.07" or "R1.1.07" or "B1.1.07" or "1.3.0B" or "9.0.2D". /// /// REASON: FLEXNETVERSION is one application which does not follow the same rule of decimal numbers. - /// Instead it uses hexadecimal digits. + /// 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" @@ -1215,11 +1291,11 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore var builtMajor = 0; var builtMinor = 0; - var majorIndicatorForB = 8; + const Int32 majorIndicatorForB = 8; // preset version with 0 as undetected fwVersion = 0; - // msb and lsb input have highest priority + // msb and lsb input have the highest priority if (msb != null && lsb != null) { major = (Int32)((msb & 0xF0) >> 4); @@ -1281,7 +1357,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// Building the FW Version string out of 2 bytes of data and a decimal version. /// Example: - /// Inputs msb = 0x02, msb = 0x34, + /// Inputs msb = 2, msb = 34, /// Outputs fwVersion = 234, string "2.34" /// /// firmware version as decimal e.g. 234 @@ -1304,11 +1380,11 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// Building the FW Version string out of UInt32 as hexadecimal input like 0x1107 (meaning 1.1.07). /// Example: - /// Input fwVersion = 0x1107, + /// Input fwVersion = 1107, /// Outputs string "1.1.07" /// /// firmware version as hex - /// converted "to "2.34" or "2.0C" + /// converted to "2.34" or "2.0C" /// /// - Initial. /// @@ -1337,58 +1413,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore return fwVersion == null ? "0.00" : $"{fwVersion / 100}.{fwVersion % 100:D2}"; } - /// - /// List of all present meter applications - /// - public List MeterAppListVersion = new List(); - - /// - /// Core revision of boot code. - /// - //public String CoreRevision; - public Int32? CoreRevision; - - /// - /// Core revision of boot code as string. - /// - //public String CoreRevision; - public String StrCoreRevision; - - /// - /// This is the FLEXNETVERSION version which describes the entire packet. - /// - public String FwVersion; - - /// - /// This is the FLEXNETVERSION version which describes the entire packet. - /// - public UInt32? InstalledFwVersion; - - /// - /// This is the Metrology Lookup Table CRC. - /// - public String LutCrc; - - /// - /// This is the meter size. - /// - public String MeterSize; - - /// - /// Region (EMEA, NA or China). - /// - public String Region; - - /// - /// Radio frequency in MHz (433 or 868 or null). - /// - public Int32? RadioFrequencyMhz; - - /// - /// Metrology upgrade permission. - /// - public Byte MetrologyUpgradePermission; - /// /// Check region and size. /// After reading the version, all valid registers are going to be selected. @@ -1396,6 +1420,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - Initial, extracted from /// + /// + /// - Frequency indicator == 0 means it is a NA-Region Octopus with EMEA FW installed. + /// public void CheckRegionSizeLutCrc() { //read metrology lookup table CRC @@ -1414,7 +1441,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } //read meter size - MeterSize = MeterSizeConverter.ConvertMeterSizeEnumToSizeName((MeterSize)RegisterConverter.ByteArrayToValue( + MeterSize = MeterSizeConverter.ConvertMeterSizeEnumToSizeName( + (MeterSize)RegisterConverter.ByteArrayToValue( ReadRegister(Register.Genesisflow.MeterSize))); //read radio frequency @@ -1423,7 +1451,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore try { var radioFrequencyRaw = ReadRegister(Register.Sensusradio.FrequencyIndicator); - if (radioFrequencyRaw != null) + if (radioFrequencyRaw != null && + RegisterConverter.ByteArrayToValue(radioFrequencyRaw) != 0) { Region = "EMEA"; RadioFrequencyMhz = RegisterConverter.ByteArrayToValue(radioFrequencyRaw); @@ -1460,11 +1489,13 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore if (tempConfigRegisters == null || tempConfigRegisters.Count == 0) return; - _configRegister.MeterRegisterDic.Clear(); + ConfigRegister.MeterRegisterDic.Clear(); + // ReSharper disable once CollectionNeverQueried.Local this is used for debug to check the configuration.json // for overlapping versions (indicated multiple assignment of identical register) var configRegisterListForDebug = new List(); - // ReSharper disable once UnusedVariable this is used for debug to check the configuration.json + + // ReSharper disable once CollectionNeverQueried.Local this is used for debug to check the configuration.json // for overlapping versions (indicated multiple assignment of identical register) var configRegisterListOverlappingVersionForDebug = new List(); @@ -1478,7 +1509,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore var currentGroup = MeterAppListVersion.First(f => f.AppId == registerToCheck.Key.AppAddress); - if ( // Legacy registers may not have an version assigned + if ( // Legacy registers may not have a version assigned (!registerToCheck.Key.RegisterDetail.Version.First.HasValue && !registerToCheck.Key.RegisterDetail.Version.Last.HasValue) || // Normal version assignment with first and last value @@ -1489,7 +1520,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore { configRegisterListForDebug.Add(registerToCheck.Key.GetIdent()); // Avoid multiple assignment of identical register in dictionary if one has passed the test - if (_configRegister.MeterRegisterDic.Any(reg => + if (ConfigRegister.MeterRegisterDic.Any(reg => reg.Key.GetIdent().Equals(registerToCheck.Key.GetIdent()))) { configRegisterListOverlappingVersionForDebug.Add(registerToCheck.Key.GetIdent()); @@ -1497,7 +1528,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } registerToCheck.Key.IsAvailable = true; - _configRegister.MeterRegisterDic.TryAdd(registerToCheck.Key, null); + ConfigRegister.MeterRegisterDic.TryAdd(registerToCheck.Key, null); } } @@ -1537,7 +1568,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// - LutCrc from String to Int32?. /// /// - /// - Checked meter size string for "DN", than it cannot be an EMEA version. + /// - Checked meter size string for "DN", then it cannot be an EMEA version. /// /// /// - Removed retry as this will be handled by the . @@ -1556,19 +1587,20 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// /// - 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 + /// 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. /// - private void ReadMeterFirmwareAndAssignRegisters() + protected virtual void ReadMeterFirmwareAndAssignRegisters() { // Avoid overwriting of list if this already exits if (MeterAppListVersion.Any() && MeterAppListVersion.All(f => f.Status != MeterAppState.Unknown)) { - _logger.Warn($"Slot:{Slot} - Trying to override meter dictionary. Skip read out FW"); + Logger.Warn($"Slot:{Slot} - Trying to overwride installed FW. Skipping generation of new " + + "App list and meter register dictionary"); return; } @@ -1577,7 +1609,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore MeterAppListVersion.Clear(); //Get all existing applications from meter register dictionary - foreach (var meterApp in _configApplications.OrderBy(o => o.AppId)) + foreach (var meterApp in ConfigApplications.OrderBy(o => o.AppId)) { UInt32 readFwVersion = 0; UInt16 readFwCrc = 0; @@ -1639,7 +1671,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore AppName = meterApp.AppName, Crc = readFwCrc, Status = installationStatus, - IsInstalled = isInstalled, + IsInstalled = isInstalled }); } @@ -1655,11 +1687,11 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore //check IRDA adapter ID to check if it was installed in the last few minutes to indicate this PulseAdapterAutoDetected = !string.IsNullOrEmpty(RegisterConverter.ByteArrayToValue( ReadRegister(Register.Irda.AdapterId))); - _logger.Info($"Slot:{Slot} - Pulse adapter was installed: {PulseAdapterAutoDetected}"); + Logger.Info($"Slot:{Slot} - Pulse adapter was installed: {PulseAdapterAutoDetected}"); } catch (Exception) // IRDA application not installed { - _logger.Info($"Slot:{Slot} - Pulse adapter was installed: {PulseAdapterAutoDetected}"); + Logger.Info($"Slot:{Slot} - Pulse adapter was installed: {PulseAdapterAutoDetected}"); } @@ -1682,18 +1714,18 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } // log application information to file - _logger.Info($"Slot:{Slot} - PCB ID: {PcbId}"); - _logger.Info($"Slot:{Slot} - Date time (UTC): {DateTimeOffset.UtcNow}"); + Logger.Info($"Slot:{Slot} - PCB ID: {PcbId}"); + Logger.Info($"Slot:{Slot} - Date time (UTC): {DateTimeOffset.UtcNow}"); if (CoreRevision != 0) { - _logger.Info($"Slot:{Slot} - System Core Revision: {StrCoreRevision}"); + Logger.Info($"Slot:{Slot} - System Core Revision: {StrCoreRevision}"); } - _logger.Info($"Slot:{Slot} - Region: {Region}"); + Logger.Info($"Slot:{Slot} - Region: {Region}"); if (RadioFrequencyMhz != null) { - _logger.Info($"Slot:{Slot} - Radio frequency [MHz]: {RadioFrequencyMhz}"); + Logger.Info($"Slot:{Slot} - Radio frequency [MHz]: {RadioFrequencyMhz}"); } foreach (var fm in MeterAppListVersion.OrderBy(o => o.AppId)) @@ -1703,21 +1735,21 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore if (fm.Status == MeterAppState.Unknown) versionString = "Communication error"; - _logger.Info($"Slot:{Slot} - AppId: 0x{fm.AppId:X2} - {versionString} - AppName: {fm.AppName}"); + Logger.Info($"Slot:{Slot} - AppId: 0x{fm.AppId:X2} - {versionString} - AppName: {fm.AppName}"); } - _logger.Info($"Slot:{Slot} - Meter size: {MeterSize}"); - _logger.Info($"Slot:{Slot} - Upgrade permission: {MetrologyUpgradePermission:X2}"); + Logger.Info($"Slot:{Slot} - Meter size: {MeterSize}"); + Logger.Info($"Slot:{Slot} - Upgrade permission: {MetrologyUpgradePermission:X2}"); // initial list of ALL registers defined in configuration.json - var tempConfigRegisters = _configRegister.MeterRegisterDic.ToList(); + var tempConfigRegisters = ConfigRegister.MeterRegisterDic.ToList(); // reduce registers to valid registers for a specific application with a specific version BuildValidMeterRegisters(tempConfigRegisters); foreach (var checkMinRegister in Register.GetMinRequiredRegisters()) { - if (_configRegister.MeterRegisterDic.All(a => a.Key.GetIdent() != checkMinRegister)) + if (ConfigRegister.MeterRegisterDic.All(a => a.Key.GetIdent() != checkMinRegister)) { // These registers ar required for essential operation, they have to be added even if the // version in the configuration.json is outdated or they are not defined! @@ -1728,12 +1760,12 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore if (allVersion.HasValue) { allVersion.Value.Key.RegisterDetail.Version.Last = int.MaxValue; - _configRegister.MeterRegisterDic.TryAdd(allVersion.Value.Key, null); + ConfigRegister.MeterRegisterDic.TryAdd(allVersion.Value.Key, null); } } catch (Exception ex) { - _logger.Warn(ex.Message, $"Slot:{Slot} - Unable to set minimum list of registers. Check json file for {checkMinRegister} "); + Logger.Warn(ex.Message, $"Slot:{Slot} - Unable to set minimum list of registers. Check json file for {checkMinRegister} "); } } } @@ -1743,7 +1775,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore var registerToPotentialAdd = new List(); foreach (var allRegisterItem in tempConfigRegisters) { - if (_configRegister.MeterRegisterDic.All(a => a.Key.GetIdent() != allRegisterItem.Key.GetIdent())) + if (ConfigRegister.MeterRegisterDic.All(a => a.Key.GetIdent() != allRegisterItem.Key.GetIdent())) { registerToPotentialAdd.Add(allRegisterItem.Key); } @@ -1758,7 +1790,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore foreach (var registerAddOldConfig in registerAddForOldConfigs) { registerAddOldConfig.IsAvailable = false; - _configRegister.MeterRegisterDic.TryAdd(registerAddOldConfig, null); + ConfigRegister.MeterRegisterDic.TryAdd(registerAddOldConfig, null); } } } @@ -1852,13 +1884,13 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore if (_autoLogon) { //check the communication time - _logger.Info($"Slot:{Slot} - Check last communication time"); + Logger.Info($"Slot:{Slot} - Check last communication time"); if (RequestProtocol.LastCommTime.HasValue && RequestProtocol.LastCommTime.Value.AddSeconds(CommunicationConfig.KeepSessionTimeS) < DateTimeOffset.UtcNow) { - _logger.Info($"Slot:{Slot} - Force communication to keep session"); + Logger.Info($"Slot:{Slot} - Force communication to keep session"); ReadRegister(Register.Genesisflow.LedMode); } } @@ -1870,7 +1902,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } /// - public Boolean Logout() + public virtual Boolean Logout() { //check if not logged in if (!IsLoggedOn) @@ -1883,11 +1915,11 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore if (PrivilegeCommandToMeter(LogoutLvl)) { - _logger.Info($"Slot:{Slot} - Successful logged out from meter"); + Logger.Info($"Slot:{Slot} - Successful logged out from meter"); IsLoggedOn = false; return true; } - _logger.Warn($"Slot:{Slot} - Logout from meter failed"); + Logger.Warn($"Slot:{Slot} - Logout from meter failed"); return false; } @@ -1917,7 +1949,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public Alarm GetAlarms() { - List alarms = new List() + var alarms = new List() { Register.Customer.AlarmStatus0, Register.Customer.AlarmStatus1, @@ -1928,7 +1960,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore Register.Customer.AlarmStatus6, Register.Customer.AlarmStatus7 }; - List responseAllAlarms = new List(); + var responseAllAlarms = new List(); foreach (var regRead in alarms) { @@ -1957,7 +1989,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore var fullAlarm = (Alarm)i; return fullAlarm; - //ReadRegister() } /// @@ -1967,32 +1998,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore { WriteRegister(Register.Customer.TriggerAlarmCancel, clear.GetHashCode()); } - /// - /// Alarm messages - /// - [Flags] - public enum Alarm - { - // ReSharper disable InconsistentNaming -#pragma warning disable CS1591 - REBOOT = 1 << 0, - LOW_BATTERY = 1 << 1, - EMPTY_PIPE = 1 << 4, - REVERSE_FLOW = 1 << 6, - SUSPECT_LEAK = 1 << 7, - BROKEN_PIPE = 1 << 8, - LOW_PRESSURE = 1 << 9, - HIGH_PRESSURE = 1 << 10, - LOW_TEMPERATURE = 1 << 11, - HIGH_TEMPERATURE = 1 << 12, - RADIO_ERROR = 1 << 13, - METROLOGY_PARAMS = 1 << 14, - METROLOGY_MEASURE = 1 << 15, - - ALL = 0xFFFFFF, -#pragma warning restore CS1591 - // ReSharper restore InconsistentNaming - } /// /// Reads the PCB Identification, can be accessed at all login levels, @@ -2006,7 +2011,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// - PcbId handling improved, /// - Removed retries as these are handled by the protocol. /// - public String GetPcbId() + public virtual String GetPcbId() { if (RequestPort == null) @@ -2014,16 +2019,16 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore return "Request port not assigned"; } // Read Privilege is always needed to BUGFIX read access to PCB ID - _logger.Info($"Slot:{Slot} - Get privilege level"); + Logger.Info($"Slot:{Slot} - Get privilege level"); ReadRegister(Register.Configexchange.Privilege); - _logger.Info($"Slot:{Slot} - Old PCB identification was {PcbId}"); + Logger.Info($"Slot:{Slot} - Old PCB identification was {PcbId}"); var pcbIdRaw = ReadRegister(Register.Configexchange.PcbSerialNumber); if (pcbIdRaw != null) { PcbId = Encoding.ASCII.GetString(pcbIdRaw).Split('\0')[0]; - _logger.Info($"Slot:{Slot} - Get PCB identification {PcbId}"); + Logger.Info($"Slot:{Slot} - Get PCB identification {PcbId}"); return PcbId; } @@ -2036,11 +2041,11 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public ConcurrentDictionary GetRegistersDic() { - if (_configRegister?.MeterRegisterDic == null || !_configRegister.MeterRegisterDic.Any()) + if (ConfigRegister?.MeterRegisterDic == null || !ConfigRegister.MeterRegisterDic.Any()) { return new ConcurrentDictionary(); } - return _configRegister.MeterRegisterDic; + return ConfigRegister.MeterRegisterDic; } /// @@ -2057,7 +2062,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore { if (release) { - _logger.Info($"Slot:{Slot} - Set LCD into active mode"); + Logger.Info($"Slot:{Slot} - Set LCD into active mode"); WriteRegister(Register.Genesisflow.TriggerIdle, new Byte[] { 0x00, 0x00, 0x00, 0x00 }); } else @@ -2069,7 +2074,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore //Trigger write is allowed only during logged in with level 7 or 8 if (IsLoggedOn) { - _logger.Info($"Slot:{Slot} - Set LCD text to {textInHex[0]} {textInHex[1]}"); + Logger.Info($"Slot:{Slot} - Set LCD text to {textInHex[0]} {textInHex[1]}"); WriteRegister(Register.Genesisflow.TriggerIdle, new Byte[] { textInHex[1], textInHex[0], 0x00, 0x00 }, true, true); } @@ -2080,14 +2085,14 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore #region Register /// - /// Event to Sync Register on MeterSide and + /// Event to Sync Register on MeterSide and /// Fired on Write or read register /// /// /// Register to update with value to update private void RequestProtocol_MeterRegisterUpdated(Object sender, RegisterUpdatedEventArgs e) { - _configRegister.Set(e.Register, e.Value); + ConfigRegister.Set(e.Register, e.Value); } /// @@ -2104,21 +2109,24 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - Changed sensitive information from "*****" to SHA256. /// - public Boolean WriteRegister(String reg, T value, Boolean waitForResult = true, + /// + /// - PreRegisterWrite enabled to check register accessibility and range. + /// + public virtual Boolean WriteRegister(String reg, T value, Boolean waitForResult = true, Boolean checkRegister = false, UInt16 skipRetryErrorCode = CommunicationConfig.SkipRetryErrorCode) { try { - var regDef = _configRegister.GetRegisterDefinitionByName(reg); + var regDef = ConfigRegister.GetRegisterDefinitionByName(reg); var data = RegisterConverter.ValueToByteArray(value); - var hideDataInLog = regDef.RegisterName.Contains("EncryptionKey") || + var hideDataInLog = regDef.RegisterName.Contains("EncryptionKey") || regDef.RegisterName.Contains("Password"); - //var rawMsg = hideDataInLog ? "(*****)" : $"({BitConverter.ToString(data.ToArray())})"; var rawMsg = RegisterConverter.GetRegisterRawText(regDef, data, hideDataInLog); - _logger.Info($"Slot:{Slot} - Write register({regDef.GetIdent()}), record({rawMsg})"); + Logger.Info($"Slot:{Slot} - Write register({regDef.GetIdent()}), record({rawMsg})"); - PreRegisterWrite(regDef, data); + if (!PreRegisterWrite(regDef, data)) + return false; var command = data.Length > RegisterDefinition.ChunkSize ? Commands.MultipleWriteData : Commands.WriteData; @@ -2133,8 +2141,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore RequestProtocolProcess(); - //if register check by read back is not required we return the acknowledge state - if (!checkRegister || regDef.RegisterDetail.Privilege.Lvl8 == Registers.Access.WO) + //if register check by read back is not required we return the acknowledgment state + if (!checkRegister || regDef.RegisterDetail.Privilege.Lvl8 == Access.WO) { return responseRecord.Acknowledge == RequestAcknowledgeState.Ok; } @@ -2152,7 +2160,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } catch (Exception e) { - _logger.Error($"Slot:{Slot} - {e}"); + Logger.Error($"Slot:{Slot} - {e}"); } return false; @@ -2161,21 +2169,21 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// Read Register and return byte array /// - /// + /// /// expected length for response /// skip retries on this error code return /// /// /// - Changed sensitive information from "*****" to SHA256. /// - public Byte[] ReadRegister(String reg, Int32? expectedLength = null, + public virtual Byte[] ReadRegister(String regName, Int32? expectedLength = null, UInt16 skipRetryErrorCode = CommunicationConfig.SkipRetryErrorCode) { try { - var regDef = _configRegister.GetRegisterDefinitionByName(reg); - _configRegister.Set(regDef, null); + var regDef = ConfigRegister.GetRegisterDefinitionByName(regName); + ConfigRegister.Set(regDef, null); //_logger.Info($"Slot:{Slot} - Read register({regDef.GetIdent()})"); var hideDataInLog = regDef.RegisterName.Contains("EncryptionKey"); @@ -2199,17 +2207,17 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } RequestProtocolProcess(); - var result = _configRegister.Get(reg); - + var result = ConfigRegister.Get(regName); + var rawMsg = RegisterConverter.GetRegisterRawText(regDef, result, hideDataInLog); - _logger.Info($"Slot:{Slot} - Read register({regDef.GetIdent()}), record({rawMsg})"); + Logger.Info($"Slot:{Slot} - Read register({regDef.GetIdent()}), record({rawMsg})"); PostRegisterRead(regDef, result); return result; } catch (Exception e) { - _logger.Error($"Slot:{Slot} - {e}"); + Logger.Error($"Slot:{Slot} - {e}"); } return null; @@ -2235,12 +2243,12 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore //access only if IsLoggedOn marker is set and authorization has been lost if (IsLoggedOn) { - _logger.Debug($"Slot:{Slot} - Authorization is required"); + Logger.Debug($"Slot:{Slot} - Authorization is required"); - if (!string.IsNullOrEmpty(_password)) + if (!string.IsNullOrEmpty(Password)) { IsLoggedOn = false; - if (Login(_password, false)) + if (Login(Password, false)) { } } @@ -2270,7 +2278,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore UInt16 skipRetryErrorCode = 4) { var requestIdent = $"Slot:{Slot} - Sending Ui-1236 frame"; - _logger.Info(requestIdent); + Logger.Info(requestIdent); var sendFifoUi1236 = RequestProtocol.AddRecordToSendFifoUI1236(requestIdent, ui1236Frame); RequestProtocolProcess(); return sendFifoUi1236.ResponsePayload.ToArray(); @@ -2298,59 +2306,69 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public void Dispose() { - _logger.Trace($"Slot:{Slot} - Start to dispose"); - - - LogRawData(false); - LogManager.Flush(); - //isPart of Logout - //StopKeepSession(); - - //Cancel receive tokens - _keepSessionToken?.Cancel(); - try { - //todo only from Bench - //WriteRegister(Register.Genesisflow.SampleRate, 2, checkRegister: true); - //WriteRegister(Register.Genesisflow.LedMode, 0, checkRegister: true); - //Logout(); - } - catch (Exception) - { - // ignored - } - //Run thread again to notice CancellationToken has changed - _onSyncKeepSessionThread?.Set(); + Logger.Trace($"Slot:{Slot} - Start to dispose"); - //this timeout counter is being used for dispose only - var timeoutCounter = 100; - if (_keepSessionThread != null) - { - while (_keepSessionThread.ThreadState != ThreadState.Stopped && timeoutCounter > 0) + + LogRawData(false); + LogManager.Flush(); + //isPart of Logout + //StopKeepSession(); + + //Cancel receive tokens + _keepSessionToken?.Cancel(); + + try { - Thread.Sleep(1); - timeoutCounter -= 1; + //todo only from Bench + //WriteRegister(Register.Genesisflow.SampleRate, 2, checkRegister: true); + //WriteRegister(Register.Genesisflow.LedMode, 0, checkRegister: true); + //Logout(); + } + catch (Exception) + { + // ignored } - if (_keepSessionThread.ThreadState != ThreadState.Stopped) + + //Run thread again to notice CancellationToken has changed + _onSyncKeepSessionThread?.Set(); + + //this timeout counter is being used for dispose only + var timeoutCounter = 100; + if (_keepSessionThread != null) { - //if thread is still running try to abort - // try to avoid abort (takes age to run and is not safe) - _keepSessionThread.Abort(); + while (_keepSessionThread.ThreadState != ThreadState.Stopped && timeoutCounter > 0) + { + Thread.Sleep(1); + timeoutCounter -= 1; + } + + if (_keepSessionThread.ThreadState != ThreadState.Stopped) + { + //if thread is still running try to abort + // try to avoid abort (takes age to run and is not safe) + _keepSessionThread.Abort(); + } } + + _keepSessionThread = null; + + RequestPort?.Dispose(); + StreamingPort?.Dispose(); + + RequestProtocol?.Dispose(); + StreamingProtocol?.Dispose(); + Logger.Trace($"Slot:{Slot} - Dispose is finished"); } + catch (Exception ex) + { - _keepSessionThread = null; - - RequestPort?.Dispose(); - StreamingPort?.Dispose(); - - RequestProtocol?.Dispose(); - StreamingProtocol?.Dispose(); - _logger.Trace($"Slot:{Slot} - Dispose is finished"); + Logger.Trace($"Slot:{Slot} -dispose exception {ex.Message}"); + } } #endregion @@ -2359,7 +2377,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public void WriteLog(String text) { - _logger.Info($"Slot:{Slot} - {text}"); + Logger.Info($"Slot:{Slot} - {text}"); } /// @@ -2373,7 +2391,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } /// - /// Set the process state to display and to the production data base + /// Set the process state to display and to the production database /// /// public void SetProcessState(DisplayCodes newState) @@ -2395,7 +2413,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } catch (Exception ex) { - _logger.Info( + Logger.Info( $"Slot:{Slot} - Cannot store process state to service, URL({url}), Error({ex.Message})"); } } @@ -2415,7 +2433,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore { Int32 i; - if (int.TryParse(LocalWebRequest.GetRequest(url), out i)) + if (int.TryParse(LocalWebRequest.GetRequest(url, 30000), out i)) { return ((DisplayCodes)i); } @@ -2423,28 +2441,57 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } catch (Exception ex) { - _logger.Info($"Slot:{Slot} - Cannot store process state to service, URL({url}), Error({ex.Message})"); + Logger.Info($"Slot:{Slot} - Cannot store process state to service, URL({url}), Error({ex.Message})"); } return DisplayCodes.None; } - private void PreRegisterWrite(RegisterDefinition reg, Byte[] value) + /// + /// Check for min and max of register values to avoid out of range access + /// + /// + /// + /// + /// - Initial + /// + /// + /// - Reactivated to validate the register range. + /// + protected Boolean PreRegisterWrite(RegisterDefinition regDef, Byte[] value) { - //if (_configuration.UseMinMaxCheck) - //{ - // var result = RegisterCheck.CheckWrite(reg, value); - // if (!string.IsNullOrEmpty(result)) - // { - // if (reg.GetIdent().ToUpper() != "GENESISFLOW_DisplayPow10".ToUpper()) - // { - // throw new Exception(result); - // } - - // } - //} + try + { + // Avoid writing of NOT writable registers + if (regDef.RegisterDetail.Privilege.Lvl8 != Access.WO && + regDef.RegisterDetail.Privilege.Lvl8 != Access.RW) + return false; + // check the limits and avoid writing if not in range + var retVal = RegisterCheck.CheckRange(regDef, value, out var errorMsg); + if (StatusReturn.Okay == retVal) + return true; + Logger.Error($"Slot:{Slot} - {errorMsg}"); + return false; + } + catch (Exception ex) + { + Logger.Error($"Slot:{Slot} - {ex.Message}"); + return false; + } } + /// + /// Common routine for reboot being able to override this routine which will be called in + /// MeteResetPsu to simulate a reboot. + /// + /// + /// + /// - Initial. + /// + public virtual StatusReturn RebootGenesis() + { + return StatusReturn.Unknown; + } /// /// Executes all StoreConfiguration and StoreCalibration for each application. @@ -2475,7 +2522,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// /// - Changed threshold check from decimal 1200 to hexadecimal 0x1200. - /// + /// Cl public Boolean StoreAllConfigurations() { @@ -2483,7 +2530,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore try { - foreach (var a in _configRegister.MeterRegisterDic.Where(a => + foreach (var a in ConfigRegister.MeterRegisterDic.Where(a => a.Key.RegisterName.ToLower() == "storeconfiguration" || a.Key.RegisterName.ToLower() == "storecalibration")) { @@ -2514,7 +2561,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore // check loop try { - foreach (var a in _configRegister.MeterRegisterDic.Where(a => + foreach (var a in ConfigRegister.MeterRegisterDic.Where(a => a.Key.RegisterName.ToLower() == "storeconfiguration" || a.Key.RegisterName.ToLower() == "storecalibration")) { @@ -2562,22 +2609,37 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - Using MetrologyUpgradePermission to flag if metrology is updateable as for "NA" versions this is the case. /// - public void PushProgress(String progressName, String version) + /// + /// - returns status. + /// + public StatusReturn PushProgress(String progressName, String version) { - var apps = new List(); - foreach (var item in MeterAppListVersion) + var retVal = StatusReturn.Okay; + try { - var isUpdateable = !(item.AppName.Equals(MetrologyDefinition.MetrologyName) && - MetrologyUpgradePermission != MetrologyDefinition.MetrologyUpgradePermitted); - apps.Add(new CordonelAppVersion(item.AppId, item.StrVersion, isUpdateable)); + var apps = new List(); + foreach (var item in MeterAppListVersion) + { + var isUpdateable = !(item.AppName.Equals(MetrologyDefinition.MetrologyName) && + MetrologyUpgradePermission != MetrologyDefinition.MetrologyUpgradePermitted); + apps.Add(new CordonelAppVersion(item.AppId, item.StrVersion, isUpdateable)); + } + + apps.Add(new CordonelAppVersion(-1, StrCoreRevision, false)); + + var url = $"{ServiceUrls.MeterProcessStateUrl()}SetCordonelProgress?PcbId={PcbId}" + + $"&ProgressName={progressName}&version={version}"; + if (!LocalWebRequest.PostRequestAsync(url, json: apps)) + retVal = StatusReturn.Failed; + + } + catch (Exception ex) + { + Logger.Error($"Slot:{Slot} - {ex} - Cannot push progress"); + retVal = StatusReturn.Failed; } - apps.Add(new CordonelAppVersion(-1, StrCoreRevision, false)); - - var url = $"{ServiceUrls.MeterProcessStateUrl()}SetCordonelProgress?PcbId={PcbId}" + - $"&ProgressName={progressName}&version={version}"; - LocalWebRequest.PostRequestAsync(url, json: apps); - + return retVal; } /// @@ -2596,7 +2658,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore var d = new List(); - foreach (var a in _configRegister.MeterRegisterDic) + foreach (var a in ConfigRegister.MeterRegisterDic) { try { @@ -2619,7 +2681,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } catch (Exception ex) { - _logger.Error($"Slot:{Slot} - {ex} - Can't store at RegisterWatchService"); + Logger.Error($"Slot:{Slot} - {ex} - Can't store at RegisterWatchService"); } } @@ -2645,17 +2707,17 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore var url = $"{Configuration.RegisterWatchServiceUrl}RegisterWrite?PcbID={PcbId}&Address={BitConverter.ToString(reg.RegisterAddress)}&value={valueString}"; - var result = LocalWebRequest.PostRequestAsync(url, 1500, string.Empty); + var result = LocalWebRequest.PostRequestAsync(url, 30000, string.Empty); if (!result) { - _logger.Error(new Exception($"Slot:{Slot} - HTTP status not OK"), + Logger.Error(new Exception($"Slot:{Slot} - HTTP status not OK"), "Can't store at RegisterWatchService"); } } catch (Exception ex) { - _logger.Error($"Slot:{Slot} - {ex} - Can't store at RegisterWatchService"); + Logger.Error($"Slot:{Slot} - {ex} - Can't store at RegisterWatchService"); } } } @@ -2696,12 +2758,12 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore if (response.StatusCode != HttpStatusCode.OK && response.StatusCode != HttpStatusCode.Accepted) { - _logger.Error(new Exception($"Slot:{Slot} - HTTP status not OK({response.StatusCode})"), "can not store at RegisterWatchService"); + Logger.Error(new Exception($"Slot:{Slot} - HTTP status not OK({response.StatusCode})"), "can not store at RegisterWatchService"); } } catch (Exception ex) { - _logger.Error($"Slot:{Slot} - {ex} - can not store at RegisterWatchService"); + Logger.Error($"Slot:{Slot} - {ex} - can not store at RegisterWatchService"); } } } diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/IGenesisMeter.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/IGenesisMeter.cs new file mode 100644 index 00000000..ef84cf09 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/IGenesisMeter.cs @@ -0,0 +1,231 @@ +using System; +using System.Collections.Generic; +using Xylem.Common.CommonCore.Consts; +using Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol; +using Xylem.Common.Hardware.WaterMeter.Genesis.Applications; +using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig; +using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts; +using Xylem.Common.Hardware.WaterMeter.Genesis.Registers; +using Xylem.Common.Hardware.WaterMeter.WaterMeterCore; + +namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore +{ + /// + /// Interface of special GenesisMeter derived from IMeter + /// + public interface IGenesisMeter : IMeter + { + #region properties + /// + /// Represent + /// proposed for login + /// + String PcbId + { + get; + } + + /// + /// Transmit protocol access for underlie objects to change response timeout + /// + ITransmitProtocol TransmitProtocol{ get; } + + /// + /// List of all present meter applications installed in meter + /// + List MeterAppListVersion + { + get; + } + + /// + /// Successfully logged on to meter + /// + Boolean IsLoggedOn + { + get; + } + + /// + /// Core revision of boot code. + /// + Int32? CoreRevision + { + get; + } + + /// + /// Core revision of boot code as string. + /// + String StrCoreRevision + { + get; + } + + /// + /// This is the FLEXNETVERSION version which describes the entire packet. + /// + String FwVersion + { + get; + } + + /// + /// This is the FLEXNETVERSION version which describes the entire packet. + /// + UInt32? InstalledFwVersion + { + get; + } + + /// + /// This is the Metrology Lookup Table CRC. + /// + String LutCrc + { + get; + } + + /// + /// This is the meter size. + /// + String MeterSize + { + get; + } + + /// + /// Region (EMEA, NA or China). + /// + String Region + { + get; + } + + /// + /// Radio frequency in MHz (433 or 868 or null). + /// + Int32? RadioFrequencyMhz + { + get; + } + + /// + /// Metrology upgrade permission. + /// + Byte MetrologyUpgradePermission + { + set; get; + } + + /// + /// Order number under which this meter has to be produced + /// + Int32 OrderNumber + { + set; get; + } + + /// + /// Radio address + /// + Int64 RadioAddress + { + set; get; + } + + /// + /// Process configuration + /// + ProcessConfig Configuration + { + get; + } + + /// + /// Customer serial number for informal issues + /// + String CustomerSerialNumber + { + get; set; + } + + #endregion + + #region methods + + /// + /// Check region and size. + /// After reading the version, all valid registers are going to be selected. + /// + void CheckRegionSizeLutCrc(); + + /// + /// Reset the empty pipe alarm + /// + void ResetAlarm(Alarm clear); + + /// + /// Upload app list to database + /// + /// + /// + /// + StatusReturn PushProgress(String progressName, String version); + + /// + /// Clear password to force new password reading + /// + void ClearPassword(); + + /// + /// Executes all StoreConfiguration and StoreCalibration for each application. + /// + /// true if all configurations are stored + Boolean StoreAllConfigurations(); + + /// + /// Login with identical password as last time to avoid get password from database + /// + Boolean ReLogin(); + + /// + /// Returns meter registers + /// + /// + MeterRegisters GetConfigRegistersDefinitions(); + + /// + /// Common routine for reboot being able to override this routine which will be called in + /// MeteResetPsu to simulate a reboot. + /// + /// + StatusReturn RebootGenesis(); + + /// + /// 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 + Boolean WriteRegister(String regName, T value, Boolean waitForResult = true, + Boolean checkRegister = false, UInt16 skipRetryErrorCode = CommunicationConfig.SkipRetryErrorCode); + + /// + /// 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 + Byte[] ReadRegister(String regName, Int32? expectedLength = null, + UInt16 skipRetryErrorCode = CommunicationConfig.SkipRetryErrorCode); + + #endregion + } +} diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/MeterPortScanner.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/MeterPortScanner.cs index 3a817efd..8b9d000a 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/MeterPortScanner.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/MeterPortScanner.cs @@ -16,7 +16,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// 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 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. /// public class MeterPortScanner : IProcessState, IDisposable @@ -29,7 +29,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore private readonly String _portType; /// - /// Auto detected port name + /// Auto-detected port name /// public String AutoDetectedPortName; @@ -199,7 +199,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore continue; } - // if port cannot be opened an access to the port is senseless, try the next port + // if port cannot be opened on access to the port is senseless, try the next port if (_currentGenesis != null && !_currentGenesis.RequestPort.IsOpen()) continue; OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs(GetPortScanState(), overallProcessCtrPercent, diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/PreadjustmentMeter.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/PreadjustmentMeter.cs new file mode 100644 index 00000000..d250f5dd --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/PreadjustmentMeter.cs @@ -0,0 +1,55 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using Xylem.Common.CommonCore.Configuration; +using Xylem.Common.Hardware.WaterMeter.Genesis.Registers; +using Xylem.Common.Logic.SoftwareAccessHelper; + +namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore +{ + public class PreadjustmentMeter : GenesisMeter + { + private settings mySettings = new settings(); + public class settings + { + public int Metersize { get; set; } = 2; + + } + + public void Preparation() + { + //Login + //getRegisterList + Login(); + + WriteRegister(Register.Genesisflow.CalFactor1, 15625); + WriteRegister(Register.Genesisflow.CalFactor2, 15625); + WriteRegister(Register.Genesisflow.CalFactor3, 15625); + WriteRegister(Register.Genesisflow.ZeroOffset1, 0); + WriteRegister(Register.Genesisflow.ZeroOffset2, 0); + WriteRegister(Register.Genesisflow.ZeroOffset3, 0); + WriteRegister(Register.Genesisflow.LedMode, 6); + WriteRegister(Register.Genesisflow.MeterSize, mySettings.Metersize); + + + + var r = LocalWebRequest.GetRequest($"{ ServiceUrls.GenesisFinalCheckServiceUrl()}GetMetersizeProgrammingData?MeterSize={mySettings.Metersize.GetHashCode().GetHashCode()}", 2000); + var dt = JsonConvert.DeserializeObject>(r); + + foreach (var item in dt) + { + WriteRegister(item.Key, item.Value); + } + + } + + public void RunAmp() + { + for (int i = 0; i < 35; i++) + { + + } + + } + } +} diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/Properties/Resources.Designer.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/Properties/Resources.Designer.cs index a824b71b..6efb2ce4 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/Properties/Resources.Designer.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/Properties/Resources.Designer.cs @@ -60,6 +60,51 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties { } } + /// + /// Looks up a localized string similar to ERROR: Missing or invalid register definition (configuration.json)! Search in:. + /// + internal static string StrErrorMissingConfiguration { + get { + return ResourceManager.GetString("StrErrorMissingConfiguration", resourceCulture); + } + } + + /// + /// 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!. + /// + internal static string StrErrorMsgComPort { + get { + return ResourceManager.GetString("StrErrorMsgComPort", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ERROR: Could not find a CSD parameter in register list!. + /// + internal static string StrErrorMsgCsdMissing { + get { + return ResourceManager.GetString("StrErrorMsgCsdMissing", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ERROR: Could not find register in register list! Check configuration.json for latest version!. + /// + internal static string StrErrorMsgRegisterNotFound { + get { + return ResourceManager.GetString("StrErrorMsgRegisterNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ERROR: Could not write register!. + /// + internal static string StrErrorMsgRegisterWrite { + get { + return ResourceManager.GetString("StrErrorMsgRegisterWrite", resourceCulture); + } + } + /// /// Looks up a localized string similar to Read back. /// @@ -169,7 +214,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties { } /// - /// Looks up a localized string similar to Recovery configuration..... + /// Looks up a localized string similar to Execute configuration sequence..... /// internal static string StrRegisterRecoveryExec { get { @@ -178,7 +223,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties { } /// - /// Looks up a localized string similar to Finalize configuration recovery sequence..... + /// Looks up a localized string similar to Finalize configuration sequence..... /// internal static string StrRegisterRecoveryFinalization { get { @@ -187,7 +232,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties { } /// - /// Looks up a localized string similar to Prepare configuration recovery sequence..... + /// Looks up a localized string similar to Prepare configuration sequence..... /// internal static string StrRegisterRecoveryPreparation { get { @@ -196,7 +241,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties { } /// - /// Looks up a localized string similar to ERROR: Register value is out of range. + /// Looks up a localized string similar to ERROR: Register value is out of range!. /// internal static string StrRegisterValueOutOfRange { get { @@ -223,7 +268,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Properties { } /// - /// Looks up a localized string similar to Set register value to default. + /// Looks up a localized string similar to WARNING: Register value set to default. /// internal static string StrSetRegisterToDefault { get { diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/Properties/Resources.de.resx b/Common/Hardware/WaterMeter/Genesis/GenesisCore/Properties/Resources.de.resx index 7e6add5e..b1a59e7f 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/Properties/Resources.de.resx +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/Properties/Resources.de.resx @@ -154,13 +154,13 @@ Lese Register nach der Wartung - Ausführung Konfigurationswiederherstellungssequenz.... + Ausführung der Konfigurationsequenz.... - Abschließen Konfigurationswiederherstellungssequenz.... + Abschließen der Konfigurationsequenz.... - Vorbereitung Konfigurationswiederherstellungssequenz.... + Vorbereitung der Konfigurationsequenz.... FEHLER: Vergleich fehlgeschlagen! @@ -172,9 +172,24 @@ Zurückgelesen - Registerwert auf Standardwert gesetzt + WARNUNG: Registerwert auf Standardwert gesetzt - FEHLER: Registerwert ungültig + FEHLER: Registerwert außerhalb des zulässigen Bereiches! + + + FEHLER: Kein CSD Parameter in Parameterliste gefunden! + + + FEHLER: Register nicht in Registerliste gefunden! Version der Configuration.json prüfen! + + + FEHLER: Register konnte nicht geschrieben werden! + + + FEHLER: Konfigurationsdatei (configuration.json) nicht gefunden oder ungültig! Erwartetes Verzeichnis: + + + Kommunikationsanschluß nicht vorhanden oder von anderer Genesis App blockiert! Bitte TaskManger starten und prüfen! \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/Properties/Resources.resx b/Common/Hardware/WaterMeter/Genesis/GenesisCore/Properties/Resources.resx index aecdd20e..be7333d5 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/Properties/Resources.resx +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/Properties/Resources.resx @@ -154,13 +154,13 @@ Write register - Recovery configuration.... + Execute configuration sequence.... - Finalize configuration recovery sequence.... + Finalize configuration sequence.... - Prepare configuration recovery sequence.... + Prepare configuration sequence.... ERROR: Comparison failed! @@ -172,9 +172,24 @@ Read back - Set register value to default + WARNING: Register value set to default - ERROR: Register value is out of range + ERROR: Register value is out of range! + + + ERROR: Could not find a CSD parameter in register list! + + + ERROR: Could not find register in register list! Check configuration.json for latest version! + + + ERROR: Could not write register! + + + ERROR: Missing or invalid register definition (configuration.json)! Search in: + + + Cannot Open Comport. Check TaskManager for other Genesis relevant programs and close them! Also check if the comport is valid! \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs index 30583d81..5e25bb8b 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Threading; using Newtonsoft.Json; @@ -34,7 +35,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// PCB ID for pre update write for comparison /// - private String _pcbIdWriteRegisters = Constants.StrUnknown; + private String _pcbIdWriteRegisters; /// /// PCB ID for post update for comparison @@ -71,15 +72,20 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// private static readonly List _unReversedParameters = new List { - "SENSUSRADIO_EncryptionKey", //UInt128 - "GENESISFLOW_DisplayPow10", //SInt8 - "METROLOGYASST_FlowPoint", //Enum8 - "CUSTOMER_SerialNumber", //String - "SYSTEM_CustomerSerialNumber0", //String - "SYSTEM_CustomerSerialNumber1", //String - "SYSTEM_CustomerSerialNumber2", //String - "SYSTEM_CustomerSerialNumber3", //String - "TESTMANAGER_OutputFile" //String + "SENSUSRADIO_Authentification", //UInt96 + "SENSUSRADIO_EncryptionKey", //UInt128 + "SENSUSRADIO_TfxSecondaryChannelInfo_1", //UInt48 + "SENSUSRADIO_TfxSecondaryChannelInfo_2", //UInt48 + "SENSUSRADIO_CustomerText", //UInt72 + "SENSUSRADIO_Tfx_Structure", //UInt88 + "GENESISFLOW_DisplayPow10", //SInt8 + "METROLOGYASST_FlowPoint", //Enum8 + "CUSTOMER_SerialNumber", //String + "SYSTEM_CustomerSerialNumber0", //String + "SYSTEM_CustomerSerialNumber1", //String + "SYSTEM_CustomerSerialNumber2", //String + "SYSTEM_CustomerSerialNumber3", //String + "TESTMANAGER_OutputFile" //String }; /// @@ -88,10 +94,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// private static readonly List _excludedFromCompareParameters = new List { - "SYSTEM_UpgradePermissions", // Once set to deviating from 0xFF it will maintain this after reboot, - // it only can be overwritten temporary in RAM! - "CUSTOMER_AlarmVisualMask", // Will be cyclically overwritten by SENSUSRADIO - "SENSUSRADIO_UpgFWVersion" // After a FW-Update the FW version has changed + "CUSTOMER_AlarmVisualMask", // Fully hard coded, cannot be overwritten + "CUSTOMER_AlarmEnableMask", // Will be overwritten by SENSUSRADIO if set System state to 0xFF + "CUSTOMER_AppArrangement", // Is read only, makes no sense to compare anything + "SENSUSRADIO_UpgFWVersion" // After a FW-Update the FW version has changed }; /// @@ -100,22 +106,22 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// private static readonly List _excludedFromReadParameters = new List { - "CUSTOMER_AlarmVisualAutoClearMask",// Does NOT respond - "SYSTEM_CustomerSerialNumber0", // Does NOT respond - "SYSTEM_CustomerSerialNumber1", // Does NOT respond - "SYSTEM_CustomerSerialNumber2", // Does NOT respond - "SYSTEM_CustomerSerialNumber3", // Does NOT respond - "SYSTEM_CRC", // Needs application number written to it - "SYSTEM_ExitReason", // Needs application number written to it - "SYSTEM_DriveCapacity", // Needs drive number written to it - "GENESISFLOW_TriggerActive", // Does NOT respond - "SENSUSRADIO_CurrentLoopMax", // Does NOT respond - "SENSUSRADIO_CurrentLoopSource", // Does NOT respond - "SENSUSRADIO_CustomerText" // Does NOT respond + "CUSTOMER_InternalLoginTest", // Does NOT respond + "CUSTOMER_AlarmVisualAutoClearMask", // Does NOT respond + "SYSTEM_CRC", // Needs application number written to it + "SYSTEM_CRC32", // Needs application number written to it + "SYSTEM_ExitReason", // Needs application number written to it + "SYSTEM_DriveCapacity", // Needs drive number written to it + "GENESISFLOW_TriggerActive", // Does NOT respond + "SENSUSRADIO_CurrentLoopMax", // Does NOT respond + "SENSUSRADIO_CurrentLoopSource", // Does NOT respond + "SENSUSRADIO_CustomerText", // Does NOT respond + "SENSUSRADIO_TfxSecondaryChannelInfo_1",// Does NOT respond + "SENSUSRADIO_TfxSecondaryChannelInfo_2" // Does NOT respond }; /// - /// Pre programming parameters for all devices defined here, will be filled with radio parameters + /// Pre-programming parameters for all devices defined here, will be filled with radio parameters /// if meter has radio /// private static readonly List _prepareProgramming = new List @@ -126,9 +132,13 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore // ReSharper disable once CollectionNeverQueried.Local IS FOR DEBUG private readonly List _failedComparisonRegisters = new List(); + // ReSharper disable once CollectionNeverQueried.Local IS FOR DEBUG private List _dbParameterRegisterList = new List(); + // ReSharper disable once CollectionNeverQueried.Local IS FOR DEBUG private List _initialRegisterList = new List(); + // ReSharper disable once CollectionNeverQueried.Local IS FOR DEBUG private List _finalRegisterList = new List(); + // ReSharper disable once CollectionNeverQueried.Local IS FOR DEBUG private readonly List _readableRegisterList = new List(); /// @@ -136,25 +146,28 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// private static readonly List _finalizeProgrammingAll = new List { + // Writing 1 will force a log flush new RecoveryRegisterItem("LOGGER_TriggerLogFlush", new Byte[] { 0x01 }), - // set counter to 0 as this is a value how often the radio detected a reset - new RecoveryRegisterItem("PERIODICLOG_ResetCounter", new Byte[] { 0x00 }), - // trigger idle 0 releases the display to normal operation + // Trigger idle 0 releases the display to normal operation new RecoveryRegisterItem("GENESISFLOW_TriggerIdle", new Byte[] { 0x00 }) }; /// - /// Post programming parameters for EMEA region (as NA region doesn't have radio and seal display shouldn't + /// Post programming parameters for EMEA region as NA region doesn't have radio and seal display shouldn't /// be executed. /// private static readonly List _finalizeProgrammingEmea = new List { + // Set counter to 0 as this is a value how often the radio detected a reset + new RecoveryRegisterItem("SENSUSRADIO_ResetCounter", new Byte[] { 0x00 }), // System state 0xFF will force a storage of all parameters and reset, followed by system state 0x02 // for customer mode, the reset needs only a few milliseconds // Attention logout-delay-login required after this step! new RecoveryRegisterItem("SENSUSRADIO_SystemState", new Byte[] { 0xFF }), - // seal the display to lock against changes + // Seal the display to lock against changes new RecoveryRegisterItem("GENESISFLOW_SealDisplay", new Byte[] { 0x01 }), + // Set counter to 0 as this is a value how often the radio detected a reset + new RecoveryRegisterItem("PERIODICLOG_ResetCounter", new Byte[] { 0x00 }), }; /// @@ -162,8 +175,11 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// private static readonly List _finalizeProgrammingEol = new List { + // Writing 1 to this register clears the volume accumulator new RecoveryRegisterItem("GENESISFLOW_ResetAccumulators", new Byte[] { 0x01 }), + // Writing 1 to this register erases the RMA area new RecoveryRegisterItem("NFC_EraseRMA", new Byte[] { 0x01 }), + // Set counter to 0 as this is a value how often the customer app detected a reset new RecoveryRegisterItem("CUSTOMER_RebootCount", new Byte[] { 0x00 }) }; @@ -172,21 +188,28 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// private Int32 _actualRegisterCtr; - /// - /// Stop register access - /// - public Boolean StopRegisterAccess; - /// /// Genesis meter object /// - private GenesisMeter _currentGenesis; + private IGenesisMeter _currentGenesis; + + /// + /// Struct to observe replacements + /// + private struct ReplaceVakoByCsd + { + public String RegisterName; + // ReSharper disable once CollectionNeverQueried.Local IS FOR DEBUG + public List VakoValue; + // ReSharper disable once CollectionNeverQueried.Local IS FOR DEBUG + public List CsdValue; + } /// /// Ctor /// /// - public RegisterRestorer(GenesisMeter currentGenesis) + public RegisterRestorer(IGenesisMeter currentGenesis) { _currentGenesis = currentGenesis; RecoveryRegisters = null; @@ -200,59 +223,146 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - Initial /// - public void AssignGenesis(GenesisMeter genesisMeter) + public void AssignGenesis(IGenesisMeter genesisMeter) { _currentGenesis = genesisMeter; } /// - /// Collect programming parameters from DB. + /// Enable comparison from external set registers for read back with written value /// - /// - /// registers key value pair from data base - /// recovery registers - /// + /// + /// - Initial + /// + public void EnableCompareExternalSetRegisters() + { + _pcbIdFinalRegisterRead = _currentGenesis.PcbId; + _pcbIdWriteRegisters = _currentGenesis.PcbId; + } + + /// + /// Export list of programming parameters to file being able to use it for test purposes. + /// + /// + /// + /// + /// + /// /// - 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. - /// - public static StatusReturn DownloadProgrammingParametersFromDb(String pcbId, List recoveryRegistersDb) + public static Boolean ExportRawProgrammingParametersToFile(String path, String fileName, + List programmingParameters) { try { - var url = $"{ServiceUrls.GenesisFinalCheckServiceUrl()}GetProgrammingParameters?PcbID={pcbId}"; - var ppJson = LocalWebRequest.GetRequest(url, 30000); + var fileNamePath = Path.Combine(path, fileName); + var text = JsonConvert.SerializeObject(programmingParameters); + File.WriteAllText(fileNamePath, text); + } + catch (Exception e) + { + Console.WriteLine(e); + return false; + } - if (string.IsNullOrEmpty(ppJson)) + return true; + } + + /// + /// 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. + /// + public static Boolean ImportRawProgrammingParametersFromFile(String paramsRootPath, String region, + String meterSize, List programmingParameters) + { + if (string.IsNullOrEmpty(paramsRootPath) || + string.IsNullOrEmpty(region) || + string.IsNullOrEmpty(meterSize)) + return false; + + programmingParameters.Clear(); + try + { + var filePathNames = Directory.GetFiles(paramsRootPath); + if (filePathNames.Length == 0) + return false; + + foreach (var filePathName in filePathNames) { - return StatusReturn.Failed; - } + var fileName = Path.GetFileName(filePathName); + if (fileName.Contains(region) && + fileName.Contains(meterSize) && + fileName.Contains("RawParams") && + fileName.Contains(".json")) + { + var rawParamsFilePathMane = Path.Combine(paramsRootPath, fileName); + if (!File.Exists(rawParamsFilePathMane)) + return false; - var programmingParameters = JsonConvert.DeserializeObject>(ppJson); - if (programmingParameters == null || programmingParameters.Count == 0) + var text = File.ReadAllText(filePathName); + var progParams = JsonConvert.DeserializeObject>(text); + programmingParameters.AddRange(progParams); + return true; + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + return false; + } + + return false; + } + + /// + /// 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 + /// + /// + /// - 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. + /// + public static StatusReturn RawProgrammingParametersFilterAndSort(List rawProgParams, + List recoveryRegisters, out String errorMsg) + { + errorMsg = ""; + try + { + if (rawProgParams == null || rawProgParams.Count == 0) { return StatusReturn.Failed; } @@ -260,7 +370,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore // Create DEBUG lists // ReSharper disable once CollectionNeverQueried.Local IS FOR DEBUG var vakoRegisterList = new List(); - // ReSharper disable once CollectionNeverQueried.Local IS FOR DEBUG var csdRegisterList = new List(); // ReSharper disable once CollectionNeverQueried.Local IS FOR DEBUG var orderRegisterList = new List(); @@ -268,20 +377,25 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore var sortableRegisterList = new List(); // ReSharper disable once CollectionNeverQueried.Local IS FOR DEBUG var multipleAssignedRegisterList = new List(); + // ReSharper disable once CollectionNeverQueried.Local IS FOR DEBUG + var replacedVakoFromCsdList = new List(); // Temporary storage for sorting before assembling those registers with the preparation and // finalization of programming and therefore building a sequence var sortableProgrammingParameters = new List(); - foreach (var proPar in programmingParameters) + foreach (var proPar in rawProgParams) { // reverse byte order for all parameters except those listed below if (!string.IsNullOrEmpty(proPar.RegisterName)) { - // Fill DEBUG lists START - if (sortableRegisterList.Any( a => proPar.RegisterName.Equals(a))) + // Catch multiple assignments + if (sortableRegisterList.Any(a => proPar.RegisterName.Equals(a))) multipleAssignedRegisterList.Add(proPar.RegisterName); + + // Fill DEBUG lists START with all registers even if they are multiple assigned sortableRegisterList.Add(proPar.RegisterName); + switch (proPar.Source) { case ProgrammingSource.Vako: @@ -307,33 +421,64 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore if (proPar.Source == ProgrammingSource.Csd && sortableProgrammingParameters.Any(a => proPar.RegisterName.Equals(a.RegisterName) && a.Source == ProgrammingSource.Vako)) { - var removeProPar = - sortableProgrammingParameters.Where(a => proPar.RegisterName.Equals(a.RegisterName)); - sortableProgrammingParameters.Remove(removeProPar.LastOrDefault()); - sortableProgrammingParameters.Add(proPar); + var removeProPar = + sortableProgrammingParameters.LastOrDefault(a => proPar.RegisterName.Equals(a.RegisterName)); + + var replace = new ReplaceVakoByCsd + { + RegisterName = proPar.RegisterName, + VakoValue = new List(), + CsdValue = new List() + }; + + if (removeProPar != null) + { + replace.VakoValue.AddRange(removeProPar.RegisterValue); + replace.CsdValue.AddRange(proPar.RegisterValue); + replacedVakoFromCsdList.Add(replace); + + sortableProgrammingParameters.Remove(removeProPar); + sortableProgrammingParameters.Add(proPar); + } } } else { - // ATTENTION: These parameters are coming out of the DB in wrong byte order and needed to be reversed - // for the entire sequence + // ATTENTION: These parameters are coming out of the DB in wrong byte order and needed + // to be reversed for the entire sequence + var reversedValue = proPar.RegisterValue.Reverse().ToArray(); // Add parameter if it is not in the list if (sortableProgrammingParameters.All(a => !proPar.RegisterName.Equals(a.RegisterName))) { sortableProgrammingParameters.Add(new ProgrammingParameters(proPar.RegisterName, - proPar.RegisterValue.Reverse().ToArray(), proPar.Source)); + reversedValue, proPar.Source)); continue; } // if parameter from VAKO is in the list and the new is from CSD, replace this with CSD if (proPar.Source == ProgrammingSource.Csd && sortableProgrammingParameters.Any(a => proPar.RegisterName.Equals(a.RegisterName) && a.Source == ProgrammingSource.Vako)) { - var removeProPar = - sortableProgrammingParameters.Where(a => proPar.RegisterName.Equals(a.RegisterName)); - sortableProgrammingParameters.Remove(removeProPar.LastOrDefault()); - sortableProgrammingParameters.Add(new ProgrammingParameters(proPar.RegisterName, - proPar.RegisterValue.Reverse().ToArray(), proPar.Source)); + var removeProPar = + sortableProgrammingParameters.LastOrDefault(a => proPar.RegisterName.Equals(a.RegisterName)); + + var replace = new ReplaceVakoByCsd + { + RegisterName = proPar.RegisterName, + VakoValue = new List(), + CsdValue = new List() + }; + + if (removeProPar != null) + { + replace.VakoValue.AddRange(removeProPar.RegisterValue); + replace.CsdValue.AddRange(reversedValue); + replacedVakoFromCsdList.Add(replace); + + sortableProgrammingParameters.Remove(removeProPar); + sortableProgrammingParameters.Add(new ProgrammingParameters(proPar.RegisterName, + reversedValue, proPar.Source)); + } } } } // register for this FW is defined @@ -353,6 +498,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore orderRegisterList.Sort(); sortableRegisterList.Sort(); multipleAssignedRegisterList.Sort(); + replacedVakoFromCsdList.Sort((x, y) => string.Compare(x.RegisterName, y.RegisterName, + StringComparison.Ordinal)); // convert to RecoveryRegisterItem if (sortableProgrammingParameters.Count > 0) @@ -360,10 +507,17 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore foreach (var proPar in sortableProgrammingParameters) { var recReg = new RecoveryRegisterItem(proPar.RegisterName, proPar.RegisterValue); - recoveryRegistersDb.Add(recReg); + recoveryRegisters.Add(recReg); } } + // Requirement to fulfill that at least one parameter has to be a CSD parameter + if (csdRegisterList.Count == 0) + { + errorMsg = Resources.StrErrorMsgCsdMissing; + return StatusReturn.Failed; + } + return StatusReturn.Okay; } catch (Exception) @@ -372,6 +526,81 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } } + /// + /// Collect programming parameters from DB. + /// + /// + /// registers key value pair from database + /// error message from parameter analysis + /// 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. + /// + public static StatusReturn DownloadProgrammingParametersFromDb(String pcbId, + List recoveryRegistersDb, out String errorMsg) + { + errorMsg = ""; + if (string.IsNullOrEmpty(pcbId)) + return StatusReturn.Failed; + try + { + var url = $"{ServiceUrls.GenesisFinalCheckServiceUrl()}GetProgrammingParameters?PcbID={pcbId}"; + var ppJson = LocalWebRequest.GetRequest(url, 30000); + + if (string.IsNullOrEmpty(ppJson)) + { + return StatusReturn.Failed; + } + + var programmingParameters = JsonConvert.DeserializeObject>(ppJson); + + if (programmingParameters == null || programmingParameters.Count == 0) + { + return StatusReturn.Failed; + } + + return RawProgrammingParametersFilterAndSort(programmingParameters, recoveryRegistersDb, out errorMsg); + } + catch (Exception) + { + return StatusReturn.Failed; + } + } + /// /// Avoid doubling of register restore on subsequent FW-Update trials. /// @@ -392,16 +621,20 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// EOL (end of line) programming contains a reset of the accumulators. Else it is identical with recover /// registers. /// - /// list of registers to update from data base without special sequence + /// list of registers to update from database without special sequence /// + /// /// true if setup succeeded /// /// - Initial. /// - public StatusReturn EolProgrammingRegisters(List recoveryRegistersDb) + /// + /// - CancellationToken. + /// + public StatusReturn EolProgrammingRegisters(List recoveryRegistersDb, CancellationToken cancellationToken) { // mark EOL as true to force accu reset - return WriteRegisters(recoveryRegistersDb, true); + return WriteRegisters(recoveryRegistersDb, cancellationToken, true); } /// @@ -410,34 +643,28 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// 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 + /// public static StatusReturn ValidateRegisterRange(RecoveryRegisterItem recReg, - RegisterDefinition regDef, out String errorMessage) + RegisterDefinition regDef, out String errorMessage, Boolean checkDefault = false) { - // error message will return on failed check any information + // Error message will be returned on failed check or on default value errorMessage = null; try { // check the limits and avoid writing if not in range - var check = RegisterCheck.CheckRange(regDef, recReg.WriteValue); - if (!string.IsNullOrEmpty(check)) - { - errorMessage = $"{Resources.StrRegisterValueOutOfRange}: " + - RegisterConverter.GetRegisterContentText(regDef, recReg.WriteValue) + - $" - Minimum ({regDef.Minimum})" + - $" - Maximum ({regDef.Maximum})"; - - return StatusReturn.Warning; - } - - return StatusReturn.Okay; + return RegisterCheck.CheckRange(regDef, recReg.WriteValue, out errorMessage, checkDefault); } - catch (Exception) + catch (Exception ex) { + errorMessage = ex.Message; return StatusReturn.Failed; } } @@ -446,8 +673,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// Recover all registers set from caller. Additional preparation and finalization will be added. /// settings. /// - /// list of registers to update from data base without special sequence + /// list of registers to update from database without special sequence /// + /// /// EOL (end of line) programming with accu reset /// true if restoring succeeded /// @@ -499,7 +727,14 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - Seal display and Sensus radio to EMEA finalization. /// - public StatusReturn WriteRegisters(List recoveryRegistersDb, Boolean eolProgramming = false) + /// + /// - Exported write routines to . + /// + /// + /// - CancellationToken. + /// + public StatusReturn WriteRegisters(List recoveryRegistersDb, CancellationToken cancellationToken, + Boolean eolProgramming = false) { if (_currentGenesis == null || string.IsNullOrEmpty(_currentGenesis.PcbId) || @@ -507,8 +742,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore recoveryRegistersDb.Count == 0) return StatusReturn.Failed; - var retVal = StatusReturn.Okay; - // preset recovery registers if not already set if (RecoveryRegisters == null) { @@ -519,7 +752,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore RecoveryRegisters = recoveryRegistersDb; } - StopRegisterAccess = false; _actualRegisterCtr = 0; // Build string list for debug @@ -566,151 +798,37 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs(Resources.StrRegisterRecoveryPreparation, actualProcessMessage: Resources.StrRegisterRecoveryPreparation)); - foreach (var prepRecReg in _prepareProgramming) + if (StatusReturn.Failed == WriteRegisterParameterSet(_prepareProgramming, recRegistersCount, meterRegisters, + cancellationToken)) { - _actualRegisterCtr++; - var overallProcessCtrPercent = 100.0 * _actualRegisterCtr / recRegistersCount; - - try - { - // if this call does not throw an exception, the register is present - var regDef = meterRegisters.GetRegisterDefinitionByName(prepRecReg.RegisterIdent); - - _currentGenesis.WriteRegister(prepRecReg.RegisterIdent, prepRecReg.WriteValue); - - var strRawAndConvertedValue = ""; - try - { - strRawAndConvertedValue = RegisterConverter.GetRegisterContentText(regDef, prepRecReg.WriteValue); - } - catch (Exception ex) - { - _currentGenesis.WriteLog("Could not convert register value of " + prepRecReg.RegisterIdent + - "; " + ex.Message); - } - finally - { - var actualProcessMsg = $"{Resources.StrWriteRegister}: {strRawAndConvertedValue} "; - - OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs($@"{Resources.StrWriteRegister}" + - $@" {_actualRegisterCtr} / {recRegistersCount}", - overallProcessCtrPercent, actualProcessMsg)); - } - - if (StopRegisterAccess) - break; - } - catch (Exception ex) - { - _currentGenesis.WriteLog("Could not write register value of " + prepRecReg.RegisterIdent + - "; " + ex.Message); - } - }// prepare recovery + // the logout will force the radio app to activate the settings + _currentGenesis?.Logout(); + return StatusReturn.Failed; + } // register recovery OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs(Resources.StrRegisterRecoveryExec, actualProcessMessage: Resources.StrRegisterRecoveryExec)); - foreach (var recReg in recoveryRegistersDb) + + if (StatusReturn.Failed == WriteRegisterParameterSet(recoveryRegistersDb, recRegistersCount, meterRegisters, + cancellationToken)) { - _actualRegisterCtr++; - var overallProcessCtrPercent = 100.0 * _actualRegisterCtr / recRegistersCount; - - try - { - // if this call does not throw an exception, the register is present - var regDef = meterRegisters.GetRegisterDefinitionByName(recReg.RegisterIdent); - - // avoid writing of NOT writable registers - if (regDef.RegisterDetail.Privilege.Lvl8 != Access.WO - && regDef.RegisterDetail.Privilege.Lvl8 != Access.RW) - continue; - - // check the limits and avoid writing if not in range - retVal = ValidateRegisterRange(recReg, regDef, out var errorMessage); - if (StatusReturn.Okay != retVal) - { - _currentGenesis.WriteLog(errorMessage); - - OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs($@"{Resources.StrWriteRegister}" + - $@" {_actualRegisterCtr} / {recRegistersCount}", - overallProcessCtrPercent, errorMessage)); - - continue; - } - - _currentGenesis.WriteRegister(recReg.RegisterIdent, recReg.WriteValue); - var strRawAndConvertedValue = ""; - try - { - strRawAndConvertedValue = RegisterConverter.GetRegisterContentText(regDef, recReg.WriteValue); - } - catch (Exception ex) - { - _currentGenesis.WriteLog("Could not convert register value of " + recReg.RegisterIdent + - "; " + ex.Message); - } - finally - { - var actualProcessMsg = $"{Resources.StrWriteRegister}: {strRawAndConvertedValue} "; - - OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs($@"{Resources.StrWriteRegister}" + - $@" {_actualRegisterCtr} / {recRegistersCount}", - overallProcessCtrPercent, actualProcessMsg)); - } - - if (StopRegisterAccess) - break; - } - catch (Exception ex) - { - _currentGenesis.WriteLog("Could not write register value of " + recReg.RegisterIdent + - "; " + ex.Message); - } - }// recovery registers + // the logout will force the radio app to activate the settings + _currentGenesis?.Logout(); + return StatusReturn.Failed; + } // finalize recovery OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs(Resources.StrRegisterRecoveryFinalization, actualProcessMessage: Resources.StrRegisterRecoveryFinalization)); - foreach (var finalRecReg in finalizeProgrammingAll) + + if (StatusReturn.Failed == WriteRegisterParameterSet(finalizeProgrammingAll, recRegistersCount, meterRegisters, + cancellationToken)) { - _actualRegisterCtr++; - var overallProcessCtrPercent = 100.0 * _actualRegisterCtr / recRegistersCount; - - try - { - _currentGenesis.WriteRegister(finalRecReg.RegisterIdent, finalRecReg.WriteValue); - - // if this call does not throw an exception, the register is present - var regDef = meterRegisters.GetRegisterDefinitionByName(finalRecReg.RegisterIdent); - - var strRawAndConvertedValue = ""; - try - { - strRawAndConvertedValue = RegisterConverter.GetRegisterContentText(regDef, finalRecReg.WriteValue); - } - catch (Exception ex) - { - _currentGenesis.WriteLog("Could not convert register value of " + finalRecReg.RegisterIdent + "; " - + ex.Message); - } - finally - { - var actualProcessMsg = $"{Resources.StrWriteRegister}: {strRawAndConvertedValue} "; - - OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs($@"{Resources.StrWriteRegister}" + - $@" {_actualRegisterCtr} / {recRegistersCount}", - overallProcessCtrPercent, actualProcessMsg)); - } - - if (StopRegisterAccess) - break; - } - catch (Exception ex) - { - _currentGenesis.WriteLog("Could not write register value of " + finalRecReg.RegisterIdent + - "; " + ex.Message); - } - }// finalize recovery + // the logout will force the radio app to activate the settings + _currentGenesis?.Logout(); + return StatusReturn.Failed; + } // remind pcbId of this run to avoid endless repetition _pcbIdWriteRegisters = _currentGenesis.PcbId; @@ -721,7 +839,112 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore // Wait for completion as storing may need a certain time Thread.Sleep(1000); - return retVal; + return StatusReturn.Okay; + } + + /// + /// 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. + /// + private StatusReturn WriteRegisterParameterSet(List recoveryRegistersDb, Int32 recRegistersCount, + MeterRegisters meterRegisters, CancellationToken cancellationToken) + { + foreach (var recReg in recoveryRegistersDb) + { + //TODO THW Check + // Temporary excluded un-comparable registers from write as this make no sense to write them blind being + // unable to read the correct value back. + if (_excludedFromCompareParameters.Any( regName => recReg.RegisterIdent.Equals(regName))) + continue; + _actualRegisterCtr++; + var overallProcessCtrPercent = 100.0 * _actualRegisterCtr / recRegistersCount; + + RegisterDefinition regDef; + + try + { + // If this call does not throw an exception, the register is present + regDef = meterRegisters.GetRegisterDefinitionByName(recReg.RegisterIdent); + } + catch (Exception ex) + { + _currentGenesis.WriteLog(ex.Message); + regDef = null; + } + + if (null == regDef) + { + OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs( + $@"{Resources.StrWriteRegister} {_actualRegisterCtr} / {recRegistersCount}", + overallProcessCtrPercent, Resources.StrErrorMsgRegisterNotFound + " Register: " + + recReg.RegisterIdent)); + return StatusReturn.Failed; + } + + // avoid writing of NOT writable registers + if (regDef.RegisterDetail.Privilege.Lvl8 != Access.WO + && regDef.RegisterDetail.Privilege.Lvl8 != Access.RW) + continue; + + // check the limits and avoid writing if not in range + var retVal = ValidateRegisterRange(recReg, regDef, out var errorMessage); + if (StatusReturn.Failed == retVal) + { + _currentGenesis.WriteLog(errorMessage); + OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs( + $@"{Resources.StrWriteRegister} {_actualRegisterCtr} / {recRegistersCount}", + overallProcessCtrPercent, Resources.StrRegisterValueOutOfRange + " " + errorMessage)); + return StatusReturn.Failed; + } + + if (!_currentGenesis.WriteRegister(recReg.RegisterIdent, recReg.WriteValue)) + { + OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs( + $@"{Resources.StrWriteRegister} {_actualRegisterCtr} / {recRegistersCount}", + overallProcessCtrPercent, Resources.StrErrorMsgRegisterWrite + " Register: " + + recReg.RegisterIdent)); + return StatusReturn.Failed; + + } + var strRawAndConvertedValue = ""; + try + { + strRawAndConvertedValue = RegisterConverter.GetRegisterContentText(regDef, recReg.WriteValue); + } + catch (Exception ex) + { + _currentGenesis.WriteLog("Could not convert register value of " + recReg.RegisterIdent + + "; " + ex.Message); + } + finally + { + var actualProcessMsg = $"{Resources.StrWriteRegister}: {strRawAndConvertedValue} "; + + OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs( + $@"{Resources.StrWriteRegister} {_actualRegisterCtr} / {recRegistersCount}", + overallProcessCtrPercent, actualProcessMsg)); + } + + if (cancellationToken.IsCancellationRequested) + break; + } + + return StatusReturn.Okay; } /// @@ -730,6 +953,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// - The _restoreRegisters has to be filled with all registers being able to restore (RW), /// - The _finalReadRegisters has to be filled. /// + /// /// true if equal /// /// - Initial. @@ -767,13 +991,15 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - Hash password and encryption key with SHA256. /// - public Boolean CompareRegisters() + /// + /// - CancellationToken. + /// + public Boolean CompareRegisters(CancellationToken cancellationToken) { if (_pcbIdFinalRegisterRead != _pcbIdWriteRegisters || RecoveryRegisters == null) return false; - StopRegisterAccess = false; _actualRegisterCtr = 0; var retVal = true; @@ -910,7 +1136,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore var strReadBackRegisterValue = RegisterConverter.GetRegisterRawText(regDef, readBackValue, encryptRawData); - strRequiredRegisterValue += $" - {Resources.StrMeterValue}: ({strReadBackRegisterValue})" + + strRequiredRegisterValue += $" - {Resources.StrMeterValue} ({strReadBackRegisterValue})h" + $" - {Resources.StrRegisterCompareFailed}"; _failedComparisonRegisters?.Add(new RecoveryRegisterItem(regName, writtenValue, readBackValue)); @@ -923,7 +1149,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } finally { - var actualProcessMsg = $"{Resources.StrRegisterCompare}: {strRequiredRegisterValue} "; + var actualProcessMsg = $"{Resources.StrRegisterCompare} {strRequiredRegisterValue} "; // Avoid message if nothing to tell if (!string.IsNullOrEmpty(strRequiredRegisterValue)) @@ -934,7 +1160,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } } - if (StopRegisterAccess) + if (cancellationToken.IsCancellationRequested) break; } catch (Exception ex) @@ -949,6 +1175,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// 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. @@ -958,7 +1185,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// /// - Clear pre update registers if post indicates a different PCB ID to avoid wrong overwriting of - /// registers to non matching new meter. + /// registers to non-matching new meter. /// /// /// - Return true if already executed in previous run. @@ -975,45 +1202,67 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - Backup _finalRegisters to RecoveryRegisters. /// - public Boolean FinalReadRegisters() + /// + /// - Check readBack value for null. + /// + /// + /// - CancellationToken. + /// + public Boolean FinalReadRegisters(CancellationToken cancellationToken) { if (_currentGenesis == null) return false; - // create a dictionary for final read being able to compare those with the initial read and restored - if (!BuildReadableRegisterDictionary(ref _finalRegisters)) - return false; - - // log to report file the after update register read string - OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs($@"{Resources.StrReadRegister}", 0, - Resources.StrReadRegistersAfterUpdate)); - - // Build string list for debug - _finalRegisterList.Clear(); - _finalRegisterList = _finalRegisters.Select(register => register.RegisterIdent).ToList(); - _finalRegisterList.Sort(); - - // executes login read logout - var retVal = ReadRegistersSet(ref _finalRegisters); - - // backup read data to RecoveryRegisters - if (RecoveryRegisters != null && _finalRegisters != null) + Boolean retVal; + try { - foreach (var recReg in RecoveryRegisters) + + // create a dictionary for final read being able to compare those with the initial read and restored + if (!BuildReadableRegisterDictionary(ref _finalRegisters)) + return false; + + // log to report file the after update register read string + OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs($@"{Resources.StrReadRegister}", 0, + Resources.StrReadRegistersAfterUpdate)); + + // Build string list for debug + _finalRegisterList.Clear(); + _finalRegisterList = _finalRegisters.Select(register => register.RegisterIdent).ToList(); + _finalRegisterList.Sort(); + + // executes login read logout + retVal = ReadRegistersSet(ref _finalRegisters, cancellationToken); + + // backup read data to RecoveryRegisters + if (RecoveryRegisters != null && _finalRegisters != null) { - foreach (var finalReg in _finalRegisters.Where(finalReg => - recReg.RegisterIdent.Equals(finalReg.RegisterIdent))) + foreach (var recReg in RecoveryRegisters) { - recReg.ReadBackValue = new Byte[finalReg.ReadBackValue.Length]; - for (var c = 0; c < finalReg.ReadBackValue.Length; c++) - recReg.ReadBackValue[c] = finalReg.ReadBackValue[c]; + foreach (var finalReg in _finalRegisters.Where(finalReg => + recReg.RegisterIdent.Equals(finalReg.RegisterIdent))) + { + if (finalReg.ReadBackValue == null) + { + recReg.ReadBackValue = null; + continue; + } + + recReg.ReadBackValue = new Byte[finalReg.ReadBackValue.Length]; + for (var c = 0; c < finalReg.ReadBackValue.Length; c++) + recReg.ReadBackValue[c] = finalReg.ReadBackValue[c]; + } } } + + // remind the PCB ID before update for comparison + _pcbIdFinalRegisterRead = _currentGenesis.PcbId; + + } + catch (Exception ex) + { + _currentGenesis.WriteLog("Copying read back data failed " + ex.Message); + retVal = false; } - - // remind the PCB ID before update for comparison - _pcbIdFinalRegisterRead = _currentGenesis.PcbId; - return retVal; } @@ -1024,6 +1273,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// The defined registers are based on the "configuration.json" and the installed application with /// a specific version. /// + /// /// true if registers could be read /// /// - Initial. @@ -1048,7 +1298,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - Register list changed from RegisterDefinition to RecoveryRegisterItem list. /// - public Boolean InitialReadRegisters() + /// + /// - CancellationToken. + /// + public Boolean InitialReadRegisters(CancellationToken cancellationToken) { if (_currentGenesis == null) return false; @@ -1074,7 +1327,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore _initialRegisterList = _initialRegisters.Select(register => register.RegisterIdent).ToList(); _initialRegisterList.Sort(); - return ReadRegistersSet(ref _initialRegisters); + return ReadRegistersSet(ref _initialRegisters, cancellationToken); } /// @@ -1129,6 +1382,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// The defined registers are based on the "configuration.json" and the installed application with a specific /// version. /// + /// /// true if registers could be read /// /// - Initial. @@ -1136,7 +1390,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - Register list changed from RegisterDefinition to RecoveryRegisterItem list. /// - public Boolean ReadRegisters() + /// + /// - CancellationToken. + /// + public Boolean ReadRegisters(CancellationToken cancellationToken) { if (_currentGenesis == null) return false; @@ -1151,7 +1408,32 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs($@"{Resources.StrReadRegister}", 0, Resources.StrReadRegistersBeforeUpdate)); - return ReadRegistersSet(ref registers); + return ReadRegistersSet(ref registers, cancellationToken); + } + + /// + /// Read predefined registers from RecoveryRegisters. + /// + /// + /// true if registers could be read + /// + /// - Initial. + /// + /// + /// - CancellationToken. + /// + public Boolean ReadPresetRegisters(CancellationToken cancellationToken) + { + if (_currentGenesis == null || RecoveryRegisters == null || RecoveryRegisters.Count == 0) + return false; + + // Assume that this meter shall be used for comparison even if nothing has been written. + // The RecoveryRegisters can be preset with a writeValue being able to use FinalReadRegisters + // and compare the readBackValue from those with the preset writeValue. + _pcbIdWriteRegisters = _currentGenesis.PcbId; + _pcbIdFinalRegisterRead = _currentGenesis.PcbId; + + return ReadRegistersSet(ref RecoveryRegisters, cancellationToken); } /// @@ -1163,6 +1445,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// Executes login, read cycle and logout. /// /// registers to read + /// /// true if registers could be read /// /// - Initial. @@ -1192,11 +1475,13 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - Register list changed from RegisterDefinition to RecoveryRegisterItem list. /// - private Boolean ReadRegistersSet(ref List registers) + /// + /// - CancellationToken. + /// + private Boolean ReadRegistersSet(ref List registers, CancellationToken cancellationToken) { if (_currentGenesis == null) return false; - StopRegisterAccess = false; _actualRegisterCtr = 0; // read values from Genesis @@ -1265,7 +1550,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore overallProcessCtrPercent, actualProcessMsg)); } - if (StopRegisterAccess) + if (cancellationToken.IsCancellationRequested) break; } catch (Exception ex) diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterCalibration.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterCalibration.cs index 6d5784ba..2f46121b 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterCalibration.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterCalibration.cs @@ -3,12 +3,14 @@ using System.Linq; using Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig.Const; using Xylem.Common.Hardware.WaterMeter.Genesis.Registers; +using Xylem.Common.Logic.ProductionOrderCore.TestResults; +using Xylem.Common.Logic.SoftwareAccessHelper; using Xylem.Common.Metrology.Measurements; using Xylem.Common.Metrology.Measurements.Consts; namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore { - partial class GenesisMeter + public partial class GenesisMeter { /// /// Calibration factors for all channels @@ -18,7 +20,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// Registers needed to store the calibration for the individual channel /// - private readonly String[] _registersToStoreCalibFactor = + private readonly String[] _registersToStoreCalibFactor = { Register.Genesisflow.CalFactor1, Register.Genesisflow.CalFactor2, @@ -30,7 +32,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public void InitCalibration() { - _logger.Info($"Slot:{Slot} - Init calibration and set calibration values of all channels to default"); + Logger.Info($"Slot:{Slot} - Init calibration and set calibration values of all channels to default"); for (var channel = 0; channel < MeterConfig.CalibChannels; channel++) { _calibFactor[channel] = new CalibFactor(channel, _registersToStoreCalibFactor[channel]); @@ -72,86 +74,144 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore foreach (var item in _listOfIMeasurement.Where(m => m.GetType() == typeof(CalibrationRecord))) { - if (!(item is CalibrationMeasurement)) continue; + if (!(item is CalibrationMeasurement)) + { + continue; + } var calib = item as CalibrationMeasurement; var channel = calib.GetChannel(); - if( channel == 0 || channel > MeterConfig.CalibChannels) + if (channel == 0 || channel > MeterConfig.CalibChannels) { var message = $"Slot:{Slot}, Channel:{channel} - Calibration channel out of range"; - _logger.Warn(message); + Logger.Warn(message); throw new ApplicationException(message); } - _logger.Info($"Slot:{Slot}, Channel:{channel} - Calculate Calibrationfactor Relative(RefVolumeCm:{refVolumeCm}, refTimeS:{refTimeS},reqDeviationPercent:{reqDeviationPercent})"); + Logger.Info($"Slot:{Slot}, Channel:{channel} - Calculate Calibrationfactor Relative(RefVolumeCm:{refVolumeCm}, refTimeS:{refTimeS},reqDeviationPercent:{reqDeviationPercent})"); var calibFactorRel = calib.CalculateCalibFactorRel(refVolumeCm, refTimeS, reqDeviationPercent); - + //if the null return indicates an invalid calibration factor the calibFactorX.IsCalculated remains false if (null == calibFactorRel) { var message = $"Slot:{Slot}, Channel:{channel} - Calibration factor not calculated"; - _logger.Warn(message); + Logger.Warn(message); throw new ApplicationException(message); } - - _calibFactor[channel-1].BuildMeterCalibFactor(calibFactorRel.Value); - _calibFactor[channel-1].IsCalculated = true; - _logger.Info($"Slot:{Slot}, Channel:{channel} - New calibration factor({_calibFactor[channel - 1].GetRelativeCalibFactor()}rel/{calibFactorRel})"); + _calibFactor[channel - 1].BuildMeterCalibFactor(calibFactorRel.Value); + _calibFactor[channel - 1].IsCalculated = true; - _logger.Info($"Slot:{Slot}, Channel:{channel} - Calc /{ _calibFactor[channel - 1].GetMeterRawCalibFactor()} * {calibFactorRel.Value}) -> UInt16"); + Logger.Info($"Slot:{Slot}, Channel:{channel} - New calibration factor({_calibFactor[channel - 1].GetRelativeCalibFactor()}rel/{calibFactorRel})"); + + Logger.Info($"Slot:{Slot}, Channel:{channel} - Calc /{ _calibFactor[channel - 1].GetMeterRawCalibFactor()} * {calibFactorRel.Value}) -> UInt16"); //Setup the required tolerance value to check against //plus/minus x% tolerance allowed calib.CalibFactorTolerancePercent = maxCalibFactorTolerancePercent; - if (calib.IsCalibFactorInTolerance(calibFactorRel.Value)) continue; + if (calib.IsCalibFactorInTolerance(calibFactorRel.Value)) + { + + + + continue; + } var warnMessage = $"Slot:{Slot}, Channel:{channel} - " + $"Calibration factor is out of range({calibFactorRel.Value}rel)"; - _logger.Warn(warnMessage); + Logger.Warn(warnMessage); throw new ApplicationException(warnMessage); } + + + var t = new JustageResults + { + pcbId = PcbId, + p1Target = reqDeviationPercent, + p1Value = _calibFactor[0].GetMeterRawCalibFactor(), + p2Target = reqDeviationPercent, + p2Value = _calibFactor[1].GetMeterRawCalibFactor(), + p3Target = reqDeviationPercent, + p3Value = _calibFactor[2].GetMeterRawCalibFactor(), + dt = DateTime.UtcNow + + }; + + + try + { + var tmpUrl = "http://10.49.40.25/MeterProcessState/api/TestBench/SetCalibrationValues"; + Logger.Info($"Request Url: { tmpUrl}"); + //ToDO: Update to service URl + + LocalWebRequest.PostAsJson(t, tmpUrl); + } + catch (Exception ex) + { + Logger.Error($"Request Url: { ex.Message}"); + } + + } + /// public void SetCalibFactorsAllChannels(Boolean justLog = false) { WriteRegister(Register.Genesisflow.SampleRate, 2, checkRegister: true); - WriteRegister(Register.Genesisflow.TriggerIdle, 0x1234, true); + WriteRegister(Register.Genesisflow.TriggerIdle, 0x1234); + for (var channel = 0; channel < MeterConfig.CalibChannels; channel++) { - if (_calibFactor[channel].IsCalculated == false) continue; - + if (_calibFactor[channel].IsCalculated == false) + { + continue; + } + if (justLog) { - _logger.Warn($"Slot:{Slot} - Calculated calibration factors but not stored to registers"); + Logger.Warn($"Slot:{Slot} - Calculated calibration factors but not stored to registers"); } else { var registerRawCalibFactor = _calibFactor[channel].GetMeterRawCalibFactor(); - var resultWrite = WriteRegister(_calibFactor[channel].RegisterToStoreCalibFactor, + var resultWrite = WriteRegister(_calibFactor[channel].RegisterToStoreCalibFactor, registerRawCalibFactor, checkRegister: true); - _logger.Info($"Slot:{Slot}, Channel:{channel} - Stored calibration factor({_registersToStoreCalibFactor[channel]})"); + Logger.Info($"Slot:{Slot}, Channel:{channel} - Stored calibration factor({_registersToStoreCalibFactor[channel]})"); + //if (!string.IsNullOrEmpty(SerialNumber) && CurrentActionText.Contains("PG")) + //{ + + // var pathMain = NLogHelper.GetPath(_logger); + // var pathRaw = NLogHelper.GetPath(((LedSerialPort)StreamingPort).GetRawLogger()); + + // var basePath = Path.GetDirectoryName(pathMain); + + // // + + + // var testRunString = CurrentActionText.Replace("PG", ""); + // if (resultWrite) { - _logger.Warn($"Set calibration went wrong {_calibFactor[channel].RegisterToStoreCalibFactor}, with {registerRawCalibFactor}"); + Logger.Warn($"Set calibration went wrong {_calibFactor[channel].RegisterToStoreCalibFactor}, with {registerRawCalibFactor}"); } } } - + + WriteRegister(Register.Genesisflow.ResetAccumulators, true); //WriteRegister(Register.Genesisflow.ForwardArrow, 0, checkRegister: true); - WriteRegister(Register.Genesisflow.StoreCalibration, 1,true); + WriteRegister(Register.Genesisflow.StoreCalibration, 1); - _logger.Info($"Slot:{Slot} - StoreCalibration { RegisterConverter.ByteArrayToValue(ReadRegister(Register.Genesisflow.StoreCalibration))}"); - WriteRegister(Register.Genesisflow.TriggerActive, 1, true); - _logger.Info($"Slot:{Slot} - Set forward arrow of LCD, reset accumulators, set sample rate to 2Hz"); + Logger.Info($"Slot:{Slot} - StoreCalibration { RegisterConverter.ByteArrayToValue(ReadRegister(Register.Genesisflow.StoreCalibration))}"); + WriteRegister(Register.Genesisflow.TriggerActive, 1); + Logger.Info($"Slot:{Slot} - Set forward arrow of LCD, reset accumulators, set sample rate to 2Hz"); WriteRegister(Register.Genesisflow.SampleRate, 10, checkRegister: true); } } diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterMeasurement.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterMeasurement.cs index d4fc7395..470b73af 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterMeasurement.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterMeasurement.cs @@ -39,7 +39,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public void InitMeasurement() { - _logger.Info($"Slot:{Slot} - Init measurement"); + Logger.Info($"Slot:{Slot} - Init measurement"); PreMeasurement(); } @@ -50,7 +50,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore //SkipPreparationForTestBench = true; //TODO set display unit //TODO calculated overflow volume for display - WriteRegister(Register.Genesisflow.SampleRate, 0x0a, checkRegister: true); + WriteRegister(Register.Genesisflow.SampleRate, 0x08, checkRegister: true); WriteRegister(Register.Genesisflow.LedMode, (Byte)LedMode.FlowTestAndCalibData, checkRegister: true); WriteRegister("GENESISFLOW_SealDisplay", 0, true, true); @@ -62,7 +62,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore displayState = ReadRegister(Register.Genesisflow.TriggerIdle); if (displayState == null) { - _logger.Info($"Slot:{Slot} - Not able to read display state"); + Logger.Info($"Slot:{Slot} - Not able to read display state"); return; } } @@ -92,8 +92,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore WriteRegister("GENESISFLOW_DisplayPow10", (new Byte[] { 0x00, 0x00, 0x00, 0xFA }).Reverse().ToArray()); - WriteRegister(Register.Genesisflow.StoreCalibration, 1); - WriteRegister(Register.Genesisflow.StoreConfiguration, 1); + //WriteRegister(Register.Genesisflow.StoreCalibration, 1); + //WriteRegister(Register.Genesisflow.StoreConfiguration, 1); } @@ -123,7 +123,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore measurement.OnActionStateHasChanged += Measurement_ActionStateHasChanged; } - _logger.Info($"Slot:{Slot} - Start measurement"); + Logger.Info($"Slot:{Slot} - Start measurement"); ProcessStatus = ProcessState.MeasurementIsActive; _listOfIMeasurement.ForEach(m => m.MeasurementState = MeasurementStates.IsWaitingForStartData); @@ -134,7 +134,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public void StopMeasurement() { - _logger.Info($"Slot:{Slot} - Stop measurement"); + Logger.Info($"Slot:{Slot} - Stop measurement"); ProcessStatus = ProcessState.MeasurementIsDone; _listOfIMeasurement.ForEach(m => m.MeasurementState = MeasurementStates.IsWaitingForEndData); SyncStreamingBuffer(SyncMarkRecord.SyncEnd); @@ -199,7 +199,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore ? mainMeasurement.GetIntermediateMeasurementResult(refVolume, refTimeS) : mainMeasurement.GetFinalMeasurementResult(refVolume, refTimeS); results.Add(mainResult); - _logger.Info($"Slot:{Slot}, Channel:{mainMeasurement.GetChannel()} - MeasuredTime({mainResult.DutTimeS}s), " + + Logger.Info($"Slot:{Slot}, Channel:{mainMeasurement.GetChannel()} - MeasuredTime({mainResult.DutTimeS}s), " + $"MeasuredVolume({mainResult.DutVolumeCm}Qm)"); foreach (var otherMeasurement in _listOfIMeasurement.Where(m => m.GetType() != typeof(FlowTestRecord))) @@ -209,13 +209,13 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore var otherResults = intermediateMeasurement ? otherMeasurement.GetIntermediateMeasurementResult(refVolume, refTimeS) : otherMeasurement.GetFinalMeasurementResult(refVolume, refTimeS); - _logger.Info($"Slot:{Slot}, Channel:{otherMeasurement.GetChannel()} - ChannelTime({otherResults.DutTimeS}s), " + + Logger.Info($"Slot:{Slot}, Channel:{otherMeasurement.GetChannel()} - ChannelTime({otherResults.DutTimeS}s), " + $"ChannelVolume({otherResults.DutVolumeCm}Qm)"); results.Add(otherResults); } catch (Exception ex) { - _logger.Warn($"Slot:{Slot}, No Results for channel:{otherMeasurement.GetChannel()} Ex: {ex.Message}"); + Logger.Warn($"Slot:{Slot}, No Results for channel:{otherMeasurement.GetChannel()} Ex: {ex.Message}"); if (channel == null) { throw new ApplicationException($"Can not read result from channel:{otherMeasurement.GetChannel() } Ex: {ex.Message}"); @@ -261,7 +261,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public MeasurementStates GetMeasurementState(Int32? onlyChannelNr = null) { - _logger.Trace($"Slot:{Slot} - Get measurement state"); + Logger.Trace($"Slot:{Slot} - Get measurement state"); if (!_listOfIMeasurement.Any()) { return MeasurementStates.NotStarted; @@ -278,7 +278,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public Boolean RequestIntermediateMeasurementState(Int32? onlyChannelNr = null) { - _logger.Trace($"Slot:{Slot} - Get measurement state"); + Logger.Trace($"Slot:{Slot} - Get measurement state"); if (!_listOfIMeasurement.Any()) { return false; diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/configuration.json b/Common/Hardware/WaterMeter/Genesis/GenesisCore/configuration.json index 4d13c5c1..c457ab79 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/configuration.json +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/configuration.json @@ -1,16819 +1,22362 @@ { - "CUSTOMER": { - "id": 9, - "version": { - "first": 1, - "last": 160 - }, - "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": 160 - }, - "statictype": "dynamic" - } - ] - }, - "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": 160 - }, - "statictype": "dynamic" - } - ] - }, - "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": 160 - }, - "statictype": "dynamic" - } - ] - }, - "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": 160 - }, - "statictype": "dynamic" - } - ] - }, - "AlarmStatus3": { + "CONFIGEXCHANGE": { "id": 4, - "details": [ - { - "type": "uint32_t", - "privilege": { - "lvl1": "RO", - "lvl2": "RO", - "lvl3": "RO", - "lvl4": "RO", - "lvl5": "RO", - "lvl6": "RO", - "lvl7": "RO", - "lvl8": "RO" + "version": { + "first": 3, + "last": 242 + }, + "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": 242 + }, + "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 + } + } + } + ] }, - "description": "8 bit counts corresponding to alarms 12-15.", - "version": { - "first": 26, - "last": 160 + "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": 242 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F.", + "R.D." + ], + "remarks": "Used in login.", + "region": { + "emea": null, + "na": null + } + } + } + ] }, - "statictype": "dynamic" - } - ] - }, - "AlarmStatus4": { - "id": 5, - "details": [ - { - "type": "uint32_t", - "privilege": { - "lvl1": "RO", - "lvl2": "RO", - "lvl3": "RO", - "lvl4": "RO", - "lvl5": "RO", - "lvl6": "RO", - "lvl7": "RO", - "lvl8": "RO" + "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": 242 + }, + "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 + } + } + } + ] }, - "description": "8 bit counts corresponding to alarms 16-19.", - "version": { - "first": 26, - "last": 160 + "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": 242 + }, + "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 + } + } + } + ] }, - "statictype": "dynamic" - } - ] - }, - "AlarmStatus5": { - "id": 6, - "details": [ - { - "type": "uint32_t", - "privilege": { - "lvl1": "RO", - "lvl2": "RO", - "lvl3": "RO", - "lvl4": "RO", - "lvl5": "RO", - "lvl6": "RO", - "lvl7": "RO", - "lvl8": "RO" + "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": 242 + }, + "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 + } + } + } + ] }, - "description": "8 bit counts corresponding to alarms 20-23.", - "version": { - "first": 26, - "last": 160 + "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": 242 + }, + "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 + } + } + } + ] }, - "statictype": "dynamic" - } - ] - }, - "AlarmStatus6": { - "id": 7, - "details": [ - { - "type": "uint32_t", - "privilege": { - "lvl1": "RO", - "lvl2": "RO", - "lvl3": "RO", - "lvl4": "RO", - "lvl5": "RO", - "lvl6": "RO", - "lvl7": "RO", - "lvl8": "RO" + "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": 242 + }, + "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 + } + } + } + ] }, - "description": "8 bit counts corresponding to alarms 24-27.", - "version": { - "first": 26, - "last": 160 + "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": 242 + }, + "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 + } + } + } + ] }, - "statictype": "dynamic" - } - ] - }, - "AlarmStatus7": { - "id": 8, - "details": [ - { - "type": "uint32_t", - "privilege": { - "lvl1": "RO", - "lvl2": "RO", - "lvl3": "RO", - "lvl4": "RO", - "lvl5": "RO", - "lvl6": "RO", - "lvl7": "RO", - "lvl8": "RO" + "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": 242 + }, + "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 + } + } + } + ] }, - "description": "8 bit counts corresponding to alarms 28-31.", - "version": { - "first": 26, - "last": 160 + "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": 242 + }, + "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 + } + } + } + ] }, - "statictype": "dynamic" - } - ] - }, - "AlarmEnableMask": { + "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": 242 + }, + "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 + } + } + } + ] + }, + "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": 242 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": true, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "Used for identification and login.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 242 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "I don't expect this to be changed.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 242 + }, + "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 + } + } + } + ] + } + }, + "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, - "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": 160 - }, - "values": { - "default": 4294967295, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "values": { - "default": 4294967295, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "values": { - "default": 4294967295, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "values": { - "default": 639999, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "approximate" - } - ] - }, - "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": 160 - }, - "values": { - "default": 360, - "minimum": 0, - "maximum": 69632 - }, - "statictype": "static" - } - ] - }, - "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 measurements in 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 measurements in 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 measurements in reverse flow required to set reverse flow alarm", - "version": { - "first": 143, - "last": 160 - }, - "values": { - "default": 15, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "statictype": "dynamic" - } - ] - }, - "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": 160 - }, - "values": { - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 160 - }, - "values": { - "default": 180, - "minimum": 0, - "maximum": 69632 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "values": { - "default": 6399, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "approximate" - } - ] - }, - "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": 160 - }, - "values": { - "default": 181440000 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "values": { - "default": 500, - "minimum": 0, - "maximum": 800 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "values": { - "default": 600, - "minimum": 0, - "maximum": 10800 - }, - "statictype": "static" - } - ] - }, - "TemperatureLowThreshold": { + "version": { + "first": 1, + "last": 164 + }, + "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": 164 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 164 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 164 + }, + "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 + } + } + } + } + } + ] + }, + "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": 164 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 164 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 164 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 164 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 164 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 164 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "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": [ + "J.S." + ], + "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": 164 + }, + "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": [ + "J.S." + ], + "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 + } + } + } + } + } + ] + }, + "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": 164 + }, + "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": [ + "J.S." + ], + "remarks": "This updates the same value as AlarmEnableMask, best to avoid changing it.", + "region": { + "emea": { + "values": { + "default": 32851 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": [ + "J.S" + ], + "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": [ + "J.S" + ], + "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": 164 + }, + "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": [ + "J.S" + ], + "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 + } + } + } + } + } + ] + }, + "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": 164 + }, + "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 + } + } + } + ] + }, + "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": 164 + }, + "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": [ + "J.S." + ], + "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 + } + } + } + } + } + ] + }, + "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": 164 + }, + "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": [ + "J.S." + ], + "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 + } + } + } + } + } + ] + }, + "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 measurements in 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 measurements in 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 measurements in reverse flow required to set reverse flow alarm", + "version": { + "first": 143, + "last": 164 + }, + "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": [ + "J.S." + ], + "remarks": "NEW! 1800 is the new default. Sould be up to 15min! A.F.: in normal usage (2Hz measurement) 15 measurements means 7.5 seconds.", + "region": { + "emea": { + "values": { + "default": 1800 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 164 + }, + "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": [ + "J.S." + ], + "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 + } + } + } + ] + }, + "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": 164 + }, + "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 + } + } + } + ] + }, + "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": 164 + }, + "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 + } + } + } + ] + }, + "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": 164 + }, + "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": [ + "J.S." + ], + "remarks": "Default for J.S. is 5.", + "region": { + "emea": { + "values": { + "default": 5 + } + }, + "na": { + "values": { + "default": 5 + } + } + } + } + } + ] + }, + "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": 164 + }, + "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": [ + "J.S." + ], + "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 + } + } + } + } + } + ] + }, + "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": 164 + }, + "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 + } + } + } + ] + }, + "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": 164 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 500 + } + }, + "na": { + "values": { + "default": 270 + } + } + } + } + } + ] + }, + "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": 164 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 164 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 20 + } + }, + "na": { + "values": { + "default": 20 + } + } + } + } + } + ] + }, + "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": 164 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 164 + }, + "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": [ + "J.S." + ], + "remarks": "Absolute or relative? A.F.: gauge pressure.", + "region": { + "emea": { + "values": { + "default": 1600000 + } + }, + "na": { + "values": { + "default": 1380000 + } + } + } + } + } + ] + }, + "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": 164 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 164 + }, + "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": [ + "J.S." + ], + "remarks": "Absolute or relative? A.F.: gauge pressure.", + "region": { + "emea": { + "values": { + "default": 30000 + } + }, + "na": { + "values": { + "default": 240000 + } + } + } + } + } + ] + }, + "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": 164 + }, + "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": [ + "J.S." + ], + "remarks": "Checked from J.S.", + "region": { + "emea": { + "values": { + "default": 300 + } + }, + "na": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": 164 + }, + "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 + } + } + } + ] + }, + "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": 164 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "J.S.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 164 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "Internal use in firmware only", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 164 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "A.F." + ], + "remarks": "Write to zero before leaving manufacturing to ensure not marked as 'installed'.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": 164 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 164 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 164 + }, + "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 + } + } + } + ] + }, + "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", + "version": { + "first": 161, + "last": 164 + }, + "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": [ + ".J.L." + ], + "remarks": "This has default setting for DEWA customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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", + "version": { + "first": 161, + "last": 164 + }, + "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": [ + ".J.L." + ], + "remarks": "This has default setting for DEWA customer. Unsupported.", + "region": { + "emea": null, + "na": null + } + } + } + ] + } + }, + "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, - "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": 0, - "maximum": 4294967295 - }, - "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": 160 - }, - "values": { - "default": 20, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "values": { - "default": 600, - "minimum": 0, - "maximum": 10800 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "values": { - "default": 1600000, - "minimum": 0, - "maximum": 2550000 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "values": { - "default": 600, - "minimum": 0, - "maximum": 10800 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "values": { - "default": 30000, - "minimum": 0, - "maximum": 2550000 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "values": { - "default": 600, - "minimum": 0, - "maximum": 10800 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "statictype": "dynamic" - } - ] - }, - "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": 160 - }, - "statictype": "static" - } - ] - }, - "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": 160 - }, - "statictype": "dynamic" - } - ] - }, - "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": "Time meter was determined to have been installed. 0 means not installed", - "version": { - "first": 147, - "last": 160 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 160 - }, - "statictype": "dynamic" - } - ] - }, - "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": 160 - }, - "statictype": "dynamic" - } - ] - }, - "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": null, - "last": null - }, - "values": { - "minimum": 0, - "maximum": 65535 - }, - "statictype": "dynamic" - } - ] - } + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "id": 0 + }, + "TOO_MANY_APPS": { + "id": 1 + } + } }, - "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 - } - } - }, - "FUNCTEST": { - "id": 10, - "version": { - "first": null, - "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": null, - "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": null, - "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": null, - "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": null, - "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": null, - "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": null, - "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": null, - "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": null, - "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": null, - "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": null, - "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": null, - "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": null, - "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": null, - "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": null, - "last": 1003 - }, - "statictype": null - } - ] - } - }, - "status": { - "BAD_CONFIG": { - "id": 0 - }, - "BAD_TEST": { - "id": 1 - }, - "NO_RESULT": { - "id": 2 - } - } - }, - "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 - } - } - }, - "SENSUSRADIO": { - "id": 16, - "version": { - "first": 100, - "last": 532 - }, - "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": 532 - }, - "values": { - "default": 15, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 3600, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 3, - "minimum": 0, - "maximum": 255 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 3, - "minimum": 0, - "maximum": 255 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 7, - "minimum": 0, - "maximum": 255 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 433, - "minimum": 433, - "maximum": 868 - }, - "statictype": "static" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": -32768, - "maximum": 32767 - }, - "statictype": "static" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 127 - }, - "statictype": "static" - } - ] - }, - "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": 532 - }, - "values": { - "default": 1, - "minimum": 0, - "maximum": 255 - }, - "statictype": "static" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "static" - } - ] - }, - "UtcTimeOffset": { - "id": 11, - "details": [ - { - "type": "uint32_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", - "version": { - "first": 100, - "last": 532 - }, - "values": { - "default": 0, - "minimum": -32768, - "maximum": 32767 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "dynamic" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "dynamic" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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 state (enum) regarding the firmwware update", - "version": { - "first": 100, - "last": 532 - }, - "statictype": "static" - } - ] - }, - "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": 532 - }, - "values": { - "default": 25, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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 value of the leakage (low flow) detection", - "version": { - "first": 100, - "last": 532 - }, - "values": { - "default": 360, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 2500, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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 value of the broken pipe (high flow) detection", - "version": { - "first": 100, - "last": 532 - }, - "values": { - "default": 180, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 160, - "minimum": 0, - "maximum": 255 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 3, - "minimum": 0, - "maximum": 255 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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 value of the maximum (high) pressure alarm", - "version": { - "first": 100, - "last": 532 - }, - "values": { - "default": 600, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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 pressure value of the minimum (low) pressure alarm", - "version": { - "first": 100, - "last": 532 - }, - "values": { - "default": 600, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "PressureMeasurePeriod": { + "FLEXNETVERSION": { "id": 24, - "details": [ - { - "type": "uint16_t", - "privilege": { - "lvl1": "RW", - "lvl2": "RW", - "lvl3": "RW", - "lvl4": "RW", - "lvl5": "RW", - "lvl6": "RW", - "lvl7": "RW", - "lvl8": "RW" + "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 + } + ] }, - "description": "The period in seconds with which the pressure is measured", - "version": { - "first": 100, - "last": 532 + "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 + } + ] }, - "values": { - "default": 60, - "minimum": 0, - "maximum": 65535 + "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 + } + ] }, - "statictype": "infrequentlyupdated" - } - ] - }, - "PressureUnit": { - "id": 25, - "details": [ - { - "type": "uint8_t", - "privilege": { - "lvl1": "RW", - "lvl2": "RW", - "lvl3": "RW", - "lvl4": "RW", - "lvl5": "RW", - "lvl6": "RW", - "lvl7": "RW", - "lvl8": "RW" + "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 + } + ] }, - "description": "An enum respresenting the unit of pressure (0 = no pressure sensor)", - "version": { - "first": 100, - "last": 532 + "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 + } + ] }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 2 + "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 + } + ] }, - "statictype": "infrequentlyupdated" - } - ] - }, - "PressureGaugeOffset": { - "id": 26, - "details": [ - { - "type": "uint16_t", - "privilege": { - "lvl1": "RW", - "lvl2": "RW", - "lvl3": "RW", - "lvl4": "RW", - "lvl5": "RW", - "lvl6": "RW", - "lvl7": "RW", - "lvl8": "RW" + "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 + } + ] }, - "description": "The gauge offset of the pressure sensor value in mBar", - "version": { - "first": 100, - "last": 532 + "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 + } + ] }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 65535 + "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 + } + ] }, - "statictype": "infrequentlyupdated" - } - ] - }, - "TemperatureMaxThreshold": { + "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": [ + "B.D." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 2 + } + }, + "na": { + "values": { + "default": 2 + } + } + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "Default is 6 and it should stay as 6 for all sizes.", + "region": { + "emea": { + "values": { + "default": 6 + } + }, + "na": { + "values": { + "default": 6 + } + } + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "J.S.", + "R.D." + ], + "remarks": "(<=125 = 3n ) 150=> 2n in m³ -> what about other Units. See Display Unit Customer Specification.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "J.S." + ], + "remarks": "Same units for each calculator. Vako.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "J.S." + ], + "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 + } + } + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "You will need this if you wish to reset the volume to zero at the end of calibration.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "J.S." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 1 + } + } + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "You will need to use this during calibration.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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 + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "remarks": "Default for other DN (3932160 -> DN50).", + "region": { + "emea": { + "values": { + "default": 3932160 + } + }, + "na": { + "values": { + "default": 3932160 + } + } + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "J.S." + ], + "remarks": "Default for other DN (J.S.: 2000000-> DN50)", + "region": { + "emea": { + "values": { + "default": 2000000, + "DN125": "TBD", + "DN250": "TBD", + "DN300": "TBD" + } + } + } + } + }, + { + "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 + } + } + }, + { + "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 + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "You will need this if you use TriggerIdle or TriggerTest", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "R.D." + ], + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "B.D" + ], + "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" + } + } + } + } + }, + { + "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": [ + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D.", + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D." + ], + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "Not expecting to change this unless field trials say we should.", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "B.D." + ], + "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 + } + } + }, + { + "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": [ + "A.F.", + "B.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "A.F.", + "B.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "A.F.", + "B.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "R.D." + ], + "remarks": "Display should be sealed at end of manufacture (EMEA only).", + "region": { + "emea": { + "values": { + "default": 1 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + }, + { + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "629145600 <-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "default": 2936012800 + } + }, + "na": { + "values": { + "default": 2936012800 + } + } + } + } + }, + { + "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": [ + "B.D." + ], + "remarks": "<-DN50 - default for other DN?", + "region": { + "emea": { + "values": { + "default": 629145600 + } + }, + "na": { + "values": { + "default": 629145600 + } + } + } + } + }, + { + "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": [ + "A.F." + ], + "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 + } + } + }, + { + "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": [ + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "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" + } + } + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 8192 + } + }, + "na": { + "values": { + "default": 8192 + } + } + } + } + }, + { + "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": [ + "J.S.", + "B.D." + ], + "remarks": "0.5us for all meter sizes. 0.5us is 137438 (0x218DE).", + "region": { + "emea": { + "values": { + "default": 137438 + } + }, + "na": { + "values": { + "default": 137438 + } + } + } + } + }, + { + "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": [ + "M.C." + ], + "remarks": "Will change with different releases - should be tracked elsewhere. meter_lut_202406170836_v0.17_crc_list.", + "region": { + "emea": { + "values": { + "DN40": 16549, + "DN50": 51664, + "DN65": 52673, + "DN80": 18061, + "DN100": 48372, + "DN125": 8134, + "DN150": 1637, + "DN200": 60969, + "DN250": 45341, + "DN300": 49157 + } + }, + "na": { + "values": { + "US1_5": 50785, + "US2": 58892, + "US3": 52036, + "US4": 50586, + "US6": 8010, + "US8": 17423, + "US10": 24406, + "US12": 11854 + } + } + } + } + } + ] + }, + "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 + } + } + } + } + } + ] + }, + "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": 313, + "last": 322 + }, + "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" + } + } + } + } + } + ] + }, + "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": 313, + "last": 322 + }, + "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" + } + } + } + } + } + ] + }, + "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": 313, + "last": 322 + }, + "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" + } + } + } + } + } + ] + }, + "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": 313, + "last": 322 + }, + "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" + } + } + } + } + } + ] + }, + "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": 313, + "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": "Probably customer specific in EMEA should always be false in NA.", + "region": { + "emea": { + "values": { + "DN250": "TBD", + "DN300": "TBD" + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "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, - "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": 532 - }, - "values": { - "default": 50, - "minimum": 0, - "maximum": 255 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 2, - "minimum": 0, - "maximum": 255 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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 value of the maximum (high) temperature alarm", - "version": { - "first": 100, - "last": 532 - }, - "values": { - "default": 600, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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 value of the minimum (low) temperature alarm", - "version": { - "first": 100, - "last": 532 - }, - "values": { - "default": 600, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 60, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 1, - "minimum": 0, - "maximum": 2 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 4, - "minimum": 0, - "maximum": 15 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 1, - "minimum": 0, - "maximum": 1000 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 1, - "minimum": 0, - "maximum": 3 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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 output", - "version": { - "first": 100, - "last": 532 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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 output", - "version": { - "first": 100, - "last": 532 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 207, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 60, - "minimum": 0, - "maximum": 255 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 29, - "minimum": 0, - "maximum": 250 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "dynamic" - } - ] - }, - "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": 532 - }, - "statictype": "static" - } - ] - }, - "Authentification": { - "id": 45, - "details": [ - { - "type": "uint32_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": 532 - }, - "statictype": "static" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "static" - } - ] - }, - "CustomerText": { - "id": 47, - "details": [ - { - "type": "uint32_t", - "privilege": { - "lvl1": "RW", - "lvl2": "RW", - "lvl3": "RW", - "lvl4": "RW", - "lvl5": "RW", - "lvl6": "RW", - "lvl7": "RW", - "lvl8": "RW" - }, - "description": "An array of 8 bytes of freely programmable SensusRF customer Text", - "version": { - "first": 100, - "last": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "dynamic" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "dynamic" - } - ] - }, - "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", - "version": { - "first": 100, - "last": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "dynamic" - } - ] - }, - "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": 532 - }, - "values": { - "default": 19, - "minimum": 0, - "maximum": 255 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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", - "version": { - "first": 100, - "last": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 255 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 1, - "minimum": 0, - "maximum": 255 - }, - "statictype": "static" - } - ] - }, - "Tfx_Structure": { - "id": 54, - "details": [ - { - "type": "uint32_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": 532 - }, - "statictype": "dynamic" - } - ] - }, - "Dewa_Structure": { - "id": 55, - "details": [ - { - "type": "uint32_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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "dynamic" - } - ] - }, - "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": 532 - }, - "values": { - "default": 201335811, - "minimum": 3, - "maximum": 4294967295 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 60, - "minimum": 1, - "maximum": 1440 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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 determins averaging periods for min and max calculations", - "version": { - "first": 100, - "last": 532 - }, - "values": { - "default": 5, - "minimum": 1, - "maximum": 60 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 201335811, - "minimum": 3, - "maximum": 4294967295 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 1, - "minimum": 1, - "maximum": 28 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "dynamic" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 127 - }, - "statictype": "static" - } - ] - }, - "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": 532 - }, - "values": { - "default": 4, - "minimum": 0, - "maximum": 32767 - }, - "statictype": "static" - } - ] - }, - "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": 532 - }, - "values": { - "default": 4, - "minimum": 0, - "maximum": 32767 - }, - "statictype": "static" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 1 - }, - "statictype": "dynamic" - } - ] - }, - "StoreConfiguration": { - "id": 66, - "details": [ - { - "type": "bool_t", - "privilege": { - "lvl1": "RW", - "lvl2": "RW", - "lvl3": "RW", - "lvl4": "RW", - "lvl5": "RW", - "lvl6": "RW", - "lvl7": "RW", - "lvl8": "RW" - }, - "description": "Write this value to '1' to tell the radio application to store all data into the file system of the meter", - "version": { - "first": 100, - "last": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 1 - }, - "statictype": "dynamic" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "dynamic" - } - ] - }, - "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": 532 - }, - "values": { - "default": 4320000, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "dynamic" - } - ] - }, - "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": 532 - }, - "values": { - "default": 1000, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "dynamic" - } - ] - }, - "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": 532 - }, - "values": { - "default": 16711935, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 16711935, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 16711935, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 16711935, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "PressureCalibration": { - "id": 74, - "details": [ - { - "type": "uint32_t", - "privilege": { - "lvl1": "RW", - "lvl2": "RW", - "lvl3": "RW", - "lvl4": "RW", - "lvl5": "RW", - "lvl6": "RW", - "lvl7": "RW", - "lvl8": "RW" - }, - "description": "MMC(is uint32_t type, minimum -18, maximum 127 ok?) An uint16_t value to add an offset to the measured pressure value from -1270 to +1270 mBar for field calibration purposes", - "version": { - "first": 483, - "last": 532 - }, - "values": { - "default": 0, - "minimum": -128, - "maximum": 127 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "TfxSecondaryChannelInfo_1": { - "id": 75, - "details": [ - { - "type": "uint32_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": 532 - }, - "values": { - "default": 0, - "minimum": -128, - "maximum": 127 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "TfxSecondaryChannelInfo_2": { - "id": 76, - "details": [ - { - "type": "uint32_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": 532 - }, - "values": { - "default": 0, - "minimum": -128, - "maximum": 127 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 532 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "infrequentlyupdated" - } - ] - } + "version": { + "first": 1, + "last": 4 + }, + "registers": {} }, - "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 - } - } - }, - "CONFIGEXCHANGE": { - "id": 4, - "version": { - "first": 3, - "last": 239 - }, - "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": 239 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 8 - }, - "statictype": "dynamic" - } - ] - }, - "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": 239 - }, - "statictype": "dynamic" - } - ] - }, - "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": 239 - }, - "statictype": "dynamic" - } - ] - }, - "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": 239 - }, - "statictype": "dynamic" - } - ] - }, - "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": 239 - }, - "statictype": "dynamic" - } - ] - }, - "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": 239 - }, - "statictype": "dynamic" - } - ] - }, - "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": 239 - }, - "statictype": "dynamic" - } - ] - }, - "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": 239 - }, - "statictype": "dynamic" - } - ] - }, - "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": 239 - }, - "statictype": "dynamic" - } - ] - }, - "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": 239 - }, - "statictype": "dynamic" - } - ] - }, - "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": 239 - }, - "statictype": "dynamic" - } - ] - }, - "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": 239 - }, - "statictype": "static" - } - ] - }, - "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": 239 - }, - "statictype": "static" - } - ] - }, - "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": 239 - }, - "statictype": "dynamic" - } - ] - } - }, - "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 - } - } - }, - "NFC": { - "id": 21, - "version": { - "first": 1, - "last": 63 - }, - "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": 63 - }, - "statictype": "dynamic" - } - ] - }, - "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": 63 - }, - "statictype": "dynamic" - } - ] - } - }, - "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 - } - } - }, - "SYSTEM": { - "id": 0, - "version": { - "first": 141, - "last": 538 - }, - "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": 538 - }, - "statictype": "dynamic" - } - ] - }, - "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": 538 - }, - "statictype": "dynamic" - } - ] - }, - "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": 538 - }, - "values": { - "default": "" - }, - "statictype": "static" - } - ] - }, - "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": 538 - }, - "values": { - "default": "" - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 538 - }, - "values": { - "default": "" - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 538 - }, - "values": { - "default": "" - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 538 - }, - "values": { - "default": "" - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 538 - }, - "statictype": "dynamic" - } - ] - }, - "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": 538 - }, - "statictype": "dynamic" - } - ] - }, - "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": 538 - }, - "statictype": "static" - } - ] - }, - "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": 538 - }, - "statictype": "dynamic" - } - ] - }, - "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": 538 - }, - "statictype": "dynamic" - } - ] - }, - "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": 538 - }, - "statictype": "static" - } - ] - }, - "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": 538 - }, - "statictype": "dynamic" - } - ] - }, - "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": 538 - }, - "statictype": "static" - } - ] - }, - "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": 538 - }, - "statictype": "dynamic" - } - ] - } - }, - "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 - } - } - }, - "METROLOGYASST": { - "id": 18, - "version": { - "first": 4, - "last": 115 - }, - "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": 115 - }, - "statictype": "static" - } - ] - }, - "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": 115 - }, - "statictype": "dynamic" - } - ] - }, - "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": 115 - }, - "values": { - "default": 32000, - "minimum": 1, - "maximum": 4294967295 - }, - "statictype": "static" - } - ] - }, - "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": 115 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 7 - }, - "statictype": "static" - } - ] - }, - "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": 4294967295 - }, - "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": 4294967295 - }, - "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": 115 - }, - "values": { - "default": 4, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "static" - } - ] - }, - "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": 115 - }, - "values": { - "default": 4, - "minimum": 0, - "maximum": 8 - }, - "statictype": "static" - } - ] - }, - "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": 115 - }, - "values": { - "default": 2, - "minimum": 0, - "maximum": 4 - }, - "statictype": "static" - } - ] - }, - "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": 115 - }, - "statictype": "static" - } - ] - }, - "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 – Celcius, 1 – 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 – Celcius, 1 – Fahrenheit.", - "version": { - "first": 82, - "last": 115 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 1 - }, - "statictype": "static" - } - ] - }, - "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 – Mpa, 1 – 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 – Mpa, 1 – PSI.", - "version": { - "first": 82, - "last": 115 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 1 - }, - "statictype": "static" - } - ] - }, - "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": 115 - }, - "values": { - "default": 60000, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "static" - } - ] - }, - "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": 115 - }, - "values": { - "default": 0, - "minimum": -2000000, - "maximum": 2000000 - }, - "statictype": "static" - } - ] - }, - "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": 115 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 1 - }, - "statictype": "static" - } - ] - }, - "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": 115 - }, - "statictype": "dynamic" - } - ] - }, - "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": 115 - }, - "statictype": "dynamic" - } - ] - }, - "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": 115 - }, - "values": { - "minimum": 0, - "maximum": 255 - }, - "statictype": "dynamic" - } - ] - }, - "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": 115 - }, - "values": { - "minimum": 0, - "maximum": 255 - }, - "statictype": "dynamic" - } - ] - }, - "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": 115 - }, - "values": { - "default": 1, - "minimum": 0, - "maximum": 1 - }, - "statictype": "static" - } - ] - }, - "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": 115 - }, - "values": { - "minimum": 0, - "maximum": 7 - }, - "statictype": "dynamic" - } - ] - }, - "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": 115 - }, - "values": { - "default": 0, - "minimum": -4000000, - "maximum": 4000000 - }, - "statictype": "static" - } - ] - } - }, - "status": { - "BAD_CONFIG": { - "id": 0 - }, - "DID_NOT_STORE": { - "id": 1 - }, - "PENDING_STORE": { - "id": 2 - } - } - }, - "LOGGER": { - "id": 8, - "version": { - "first": 1, - "last": 18 - }, - "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": 18 - }, - "values": { - "default": 4096, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "static" - } - ] - }, - "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": 18 - }, - "values": { - "default": 1, - "minimum": 0, - "maximum": 255 - }, - "statictype": "static" - } - ] - }, - "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": 18 - }, - "statictype": "dynamic" - } - ] - }, - "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": 18 - }, - "statictype": "dynamic" - } - ] - } - }, - "status": { - "UNKNOWN_PARAMETER": { - "id": 0 - }, - "RESTARTED": { - "id": 1 - }, - "BLOCK_LISTING": { - "id": 2 - }, - "PENDING_STORE": { - "id": 3 - }, - "DID_NOT_STORE": { - "id": 4 - } - } - }, - "TESTMANAGER": { - "id": 98, - "version": { - "first": null, - "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": null, - "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": null, - "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": null, - "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": null, - "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": null, - "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 - } - } - }, - "PERIODICLOG": { - "id": 17, - "version": { - "first": 1, - "last": 75 - }, - "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": 75 - }, - "values": { - "default": 201335811, - "minimum": 3, - "maximum": 4294967295 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 75 - }, - "values": { - "default": 60, - "minimum": 1, - "maximum": 1440 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 75 - }, - "values": { - "default": 5, - "minimum": 1, - "maximum": 60 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 75 - }, - "values": { - "default": 201335811, - "minimum": 3, - "maximum": 4294967295 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 75 - }, - "values": { - "default": 1, - "minimum": 1, - "maximum": 28 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 75 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "dynamic" - } - ] - }, - "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": 75 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "infrequentlyupdated" - } - ] - } - }, - "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": 71 - }, - "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": 71 - }, - "statictype": "dynamic" - } - ] - }, - "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": 71 - }, - "values": { - "default": "Tadiran" - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 71 - }, - "values": { - "default": 6, - "minimum": 0, - "maximum": 255 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 71 - }, - "values": { - "default": 1, - "minimum": 0, - "maximum": 255 - }, - "statictype": "static" - } - ] - }, - "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": 71 - }, - "values": { - "default": 36, - "minimum": 0, - "maximum": 255 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 71 - }, - "values": { - "default": 28, - "minimum": 0, - "maximum": 255 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 71 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 1 - }, - "statictype": "static" - } - ] - }, - "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": 71 - }, - "statictype": "dynamic" - } - ] - }, - "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": 71 - }, - "statictype": "dynamic" - } - ] - }, - "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": 71 - }, - "values": { - "default": 473040000, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "static" - } - ] - }, - "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": 71 - }, - "values": { - "default": 19000, - "minimum": 0, - "maximum": 65535 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 71 - }, - "statictype": "dynamic" - } - ] - }, - "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": 71 - }, - "values": { - "default": 96, - "minimum": 0, - "maximum": 255 - }, - "statictype": "static" - } - ] - } - }, - "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 - } - } - }, - "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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": { + "IRDA": { "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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "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": 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": 316 - }, - "statictype": "dynamic" - } - ] - }, - "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": 316 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 1 - }, - "statictype": "static" - } - ] - }, - "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": 313, - "last": 316 - }, - "values": { - "default": 1, - "minimum": 0, - "maximum": 1 - }, - "statictype": "static" - } - ] - }, - "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": 313, - "last": 316 - }, - "values": { - "default": 500, - "minimum": 0, - "maximum": 10000000 - }, - "statictype": "static" - } - ] - }, - "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": 313, - "last": 316 - }, - "values": { - "minimum": 0, - "maximum": 163840 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 313, - "last": 316 - }, - "values": { - "minimum": 0, - "maximum": 100 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 313, - "last": 316 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 1 - }, - "statictype": "static" - } - ] - }, - "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": 316 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 316 - }, - "values": { - "minimum": 0, - "maximum": 28800 - }, - "statictype": "static" - } - ] - } + "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": [ + "J.S." + ], + "remarks": "1 sec.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + }, + "na": { + "values": { + "default": 3 + } + } + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "These are the fields used in NA AMR reading strings.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "Simple timestamp, should be filled in at the end of manufacture. Time now.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "In NA the AMR digits should be displayed on the LCD periodically, in EMEA they shouldn't.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "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 + } + } }, - "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 - } - } - }, - "IRDA": { - "id": 20, - "version": { - "first": 10, - "last": 211 - }, - "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": 211 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 255 - }, - "statictype": "static" - } - ] - }, - "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": 211 - }, - "values": { - "default": 3, - "minimum": 1, - "maximum": 255 - }, - "statictype": "static" - } - ] - }, - "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": 211 - }, - "values": { - "minimum": 0, - "maximum": 255 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 211 - }, - "statictype": "dynamic" - } - ] - }, - "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": 211 - }, - "values": { - "default": 8, - "minimum": 0, - "maximum": 9 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 211 - }, - "values": { - "default": 0, - "minimum": -9, - "maximum": 0 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 211 - }, - "values": { - "default": 268, - "minimum": 0, - "maximum": 268 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": "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": 161, - "last": 211 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 4294967295 - }, - "statictype": "static" - } - ] - }, - "DisplayAMRDigits": { + "LOGGER": { "id": 8, - "details": [ - { - "type": "bool_t", - "privilege": { - "lvl1": "RW", - "lvl2": "RW", - "lvl3": "RW", - "lvl4": "RW", - "lvl5": "RW", - "lvl6": "RW", - "lvl7": "RW", - "lvl8": "RW" + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] }, - "description": "Whether or not to display AMR digits on the screen", - "version": { - "first": 92, - "last": 97 + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 1 + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] }, - "statictype": "infrequentlyupdated" - }, - { - "type": "bool_t", - "privilege": { - "lvl1": "RO", - "lvl2": "RO", - "lvl3": "RO", - "lvl4": "RO", - "lvl5": "RW", - "lvl6": "RW", - "lvl7": "RW", - "lvl8": "RW" + "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 + } + } + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "id": 0 }, - "description": "Whether or not to display AMR digits on the screen", - "version": { - "first": 98, - "last": 136 + "RESTARTED": { + "id": 1 }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 1 + "BLOCK_LISTING": { + "id": 2 }, - "statictype": "infrequentlyupdated" - }, - { - "type": "bool_t", - "privilege": { - "lvl1": "RO", - "lvl2": "RO", - "lvl3": "RO", - "lvl4": "RO", - "lvl5": "RW", - "lvl6": "RW", - "lvl7": "RW", - "lvl8": "RW" + "PENDING_STORE": { + "id": 3 }, - "description": "Whether or not to display AMR digits on the screen", - "version": { - "first": 161, - "last": 211 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 1 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 211 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 211 - }, - "statictype": "infrequentlyupdated" - } - ] - }, - "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": 211 - }, - "values": { - "default": 0, - "minimum": 0, - "maximum": 1 - }, - "statictype": "infrequentlyupdated" - } - ] - } + "DID_NOT_STORE": { + "id": 4 + } + } }, - "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 - } - } - }, - "NA2WALARMS": { - "id": 23, - "version": { - "first": 41, - "last": 102 + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "G01 Pulse value (100 l/Imp., ...). Customer specific.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "G02 Pulse type (Netted Imp./Tamp. (-), …). Customer specific.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "G03 Pulse length (500ms, …). Customer specific.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "C05 unit (m³, kl, US-Gall./Imp.-Gall, Barrel, ...)", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "Counter size and unit. See FlowPoint.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "°C - EMEA/China / °F - USA.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 1 + } + } + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "Mpa - EMEA/China / PSI - USA / Bar - USA.", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "custom": [ + 1, + 2 + ] + } + } + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 60000 + } + }, + "na": { + "values": { + "default": 60000 + } + } + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "-> 0", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": [ + "J.S." + ], + "remarks": "B09 Housing option (D,Y). Variant specific.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "For use in testing.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "For use in testing.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 1, + "DN300": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "Read only.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 0 + } + }, + "na": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "DID_NOT_STORE": { + "id": 1 + }, + "PENDING_STORE": { + "id": 2 + } + } }, - "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" + "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": [ + "A.F." + ], + "remarks": "You do need to use this if you change any parameters in NA2WALARMS and want to keep them.", + "region": { + "na": null + } + } + } + ] }, - "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", - "version": { - "first": 41, - "last": 102 + "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": [ + "A.F." + ], + "remarks": "NA has a series of alarms called 'predefined' these are the ones that should be enabled.", + "region": { + "na": null + } + } + } + ] + } + }, + "status": { + "SENSOR_INVALID": { + "id": 0 }, - "statictype": "dynamic" - } - ] - }, - "PredefEnable": { + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "na": null + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "na": null + } + } + } + ] + } + }, + "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": [ + "A.F." + ], + "remarks": "You may wish to do this at the end of manufacture to clear all the old data out.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + } + }, + "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 + } + } + }, + "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": 77 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 201335811 + } + } + } + } + } + ] + }, + "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": [ + "J.S.", + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 60 + } + } + } + } + } + ] + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 5 + } + } + } + } + } + ] + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 201335811 + } + } + } + } + } + ] + }, + "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": [ + "J.S.", + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 1 + } + } + } + } + } + ] + }, + "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": 77 + }, + "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 + } + } + } + } + } + ] + }, + "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": 77 + }, + "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 + } + } + } + } + } + ] + } + }, + "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, - "details": [ - { - "type": "uint32_t", - "privilege": { - "lvl1": "RO", - "lvl2": "RO", - "lvl3": "RO", - "lvl4": "RO", - "lvl5": "RO", - "lvl6": "RO", - "lvl7": "RW", - "lvl8": "RW" + "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 + } + } + } + ] }, - "description": "Bitmask of enabled predefined alarms", - "version": { - "first": 41, - "last": 102 + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] }, - "values": { - "default": 561047, - "minimum": 0, - "maximum": 4294967295 + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 6 + } + }, + "na": { + "values": { + "default": 6 + } + } + } + } + } + ] }, - "statictype": "infrequentlyupdated" - } - ] - } + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 2 + } + }, + "na": { + "values": { + "default": 2 + } + } + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "A.F.", + "R.D" + ], + "remarks": "This should be set to the expected life of the meter. In the early days the expected lifetime will be this.", + "region": { + "emea": { + "values": { + "default": 630720000 + } + }, + "na": { + "values": { + "default": 630720000 + } + } + } + } + } + ] + }, + "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": [ + "U.B." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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 + } + } + } + ] + }, + "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": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + } + }, + "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 + } + } }, - "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": 199 + "SENSUSRADIO": { + "id": 16, + "version": { + "first": 100, + "last": 546 + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 15 + } + } + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 900 + } + } + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + } + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 3 + } + } + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 7 + } + } + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Constant, do not change.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + } + } + ] + }, + "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": [ + "J.L." + ], + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Set to 0xFF at the end of parameterization to trigger shipping mode.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Set final radio address.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Not used anymore.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Not used anymore.", + "region": { + "emea": null + } + } + } + ] + }, + "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": [ + "J.L." + ], + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at CUSTOMER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at CUSTOMER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 29 + } + } + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Runtime value.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": true, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "J.L." + ], + "remarks": "D05 radio key (Sensus (standard), …)", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "static", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Unchanged.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Customer specific.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Dependant on territory setting acc SAP order.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Customer specific. Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "1: if OTA update is allowed.", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": 546 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at PERIODIC_LOGGER APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": { + "values": { + "default": 0 + } + } + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Read calibration value from data base, dependant on used variant.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignor because is set up at CUSTOMER APP?", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because is set up at METROLOGYASST APP.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "Can be ignored because these are temporary values just for information.", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + }, + "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": 546 + }, + "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": [ + "J.L." + ], + "remarks": "", + "region": { + "emea": null + } + } + } + ] + } + }, + "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 + } + } }, - "registers": { - "StoreConfiguration": { + "SYSTEM": { "id": 0, - "details": [ - { - "type": "uint32_t", - "privilege": { - "lvl1": "NA", - "lvl2": "NA", - "lvl3": "RW", - "lvl4": "NA", - "lvl5": "NA", - "lvl6": "NA", - "lvl7": "RW", - "lvl8": "RW" + "version": { + "first": 141, + "last": 540 + }, + "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": 540 + }, + "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 + } + } + } + ] }, - "description": "Store all configuration items in non-volatile memory.", - "version": { - "first": 147, - "last": 199 + "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": 540 + }, + "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 + } + } + } + ] }, - "statictype": "dynamic" - } - ] - }, - "LimitLogSize": { - "id": 1, - "details": [ - { - "type": "uint32_t", - "privilege": { - "lvl1": "RO", - "lvl2": "RO", - "lvl3": "RO", - "lvl4": "RO", - "lvl5": "RO", - "lvl6": "RO", - "lvl7": "RW", - "lvl8": "RW" + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] }, - "description": "Override the maximum number of entries per log (0 keeps default)", - "version": { - "first": 147, - "last": 199 + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] }, - "statictype": "static" - } - ] - } + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "dynamic", + "production": { + "required": true, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "A.F.", + "R.D." + ], + "remarks": "Time now. Write the current time during manufacture.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "A.F." + ], + "remarks": "This is effectively another application version number but for the Breeze Core and is worth looking at.", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "dynamic", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [], + "remarks": "", + "region": { + "emea": null, + "na": null + } + } + } + ] + }, + "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": 540 + }, + "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 + } + } + } + ] + }, + "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": 540 + }, + "statictype": "static", + "production": { + "required": false, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": true, + "runtime_ignore": false, + "responsible": [ + "A.F.", + "R.D." + ], + "remarks": "Set fix as final step at production.", + "region": { + "emea": { + "values": { + "default": 254 + } + }, + "na": { + "values": { + "default": 255 + } + } + } + } + } + ] + }, + "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": 540 + }, + "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 + } + } + } + ] + } + }, + "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 + } + } }, - "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 - } - } - }, - "FLEXNETVERSION": { - "id": 24, - "version": { - "first": 1, - "last": 9999 - } - }, - "FLEXNETSERIAL": { - "id": 26, - "version": { - "first": 1, - "last": 21 - }, - "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" + "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 + } + ] }, - "description": "General UPG states.", - "version": { - "first": 2, - "last": 21 + "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 + } + ] }, - "statictype": "dynamic" - } - ] - }, - "FwdlState": { - "id": 1, - "details": [ - { - "type": "uint32_t", - "privilege": { - "lvl1": "RW", - "lvl2": "RW", - "lvl3": "RW", - "lvl4": "RW", - "lvl5": "RW", - "lvl6": "RW", - "lvl7": "RW", - "lvl8": "RW" + "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 + } + ] }, - "description": "Specifies the Bootloader State of operation.", - "version": { - "first": 2, - "last": 21 + "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 + } + ] }, - "statictype": "dynamic" - } - ] - } - }, - "status": { - "UNKNOWN_PARAMETER": { - "id": 0 - }, - "TOO_MANY_APPS": { - "id": 1 - } + "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 + } + } } - }, - "HISTOGRAM": { - "id": 27, - "version": { - "first": 1, - "last": 2 - } - } } diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisFile/GenesisFile.csproj b/Common/Hardware/WaterMeter/Genesis/GenesisFile/GenesisFile.csproj index 642f17e7..4502e737 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisFile/GenesisFile.csproj +++ b/Common/Hardware/WaterMeter/Genesis/GenesisFile/GenesisFile.csproj @@ -9,7 +9,7 @@ Properties Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile - v4.0 + v4.8.1 512 false @@ -27,6 +27,7 @@ prompt 4 7.0 + false pdbonly @@ -36,6 +37,7 @@ prompt 4 7.0 + false true @@ -46,6 +48,7 @@ 7.0 prompt MinimumRecommendedRules.ruleset + false true @@ -56,6 +59,7 @@ 7.0 prompt MinimumRecommendedRules.ruleset + false bin\x64\Release\ @@ -66,6 +70,7 @@ 7.0 prompt MinimumRecommendedRules.ruleset + false true @@ -76,30 +81,22 @@ 7.0 prompt MinimumRecommendedRules.ruleset + false bin\Debug-local IIS-CUST\ + false bin\x64\Debug-local IIS-CUST\ + false - ..\..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net40\Newtonsoft.Json.dll - - ..\..\..\..\packages\NLog.5.2.2\lib\net35\NLog.dll - - - - - - - - @@ -138,6 +135,10 @@ + + {9EB1F659-6F73-4F65-BCAB-4114FD94F5FC} + CommonCore.Configuration + {1B02C79E-0B19-43E2-8F6B-71EF0C786C97} CommonCore @@ -150,22 +151,18 @@ {6D2777BB-7A88-466D-A49B-3266F9BF0160} ProductionOrderCore + + {A33E3C6D-EAAE-4A20-A0EE-F9E6922FD029} + SoftwareAccessHelper + {91DEF0C0-AA4F-40AE-8F18-CB717FDE7E7F} Crc16Ccitt - - {4B88B0D3-E791-4774-9521-EABEACDC420E} - Logging - {2FD60CF1-45CD-4060-B8E5-4F39FBA7F1CB} ProcessExec - - {2E139F63-B6FE-4EA9-A098-85364FE9B26C} - PortCore - {63E0AC5E-B7C8-4363-A2FE-BE489E648FF0} TransmitProtocol @@ -214,6 +211,7 @@ PublicResXFileCodeGenerator Resources.de.Designer.cs + Designer PublicResXFileCodeGenerator @@ -223,6 +221,7 @@ + diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFile.cs b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFile.cs index 205eda15..1d2ab09f 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFile.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFile.cs @@ -29,7 +29,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile //timeout value loaded dynamically starting with extended timeout, on retry to extreme timeout private Int32 _fileWriteTimeOutMs = ExtendedFileIoTimeoutMs; - private readonly GenesisMeter _currentGenesis; + private readonly IGenesisMeter _currentGenesis; private Int32 _filePointer; //private const String StrNewFileReadWriteMode = "wb"; //private const String StrOpenFileReadOnlyMode = "rb"; @@ -41,12 +41,12 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// FSeek for start of file /// - public const Int32 FSeekStartOfFile = 0; + private const Int32 FSeekStartOfFile = 0; /// /// FSeek for end of file /// - public const Int32 FSeekEndOfFile = 2; + private const Int32 FSeekEndOfFile = 2; private String _fileName; private Int32 _overallBytesCtr; @@ -138,12 +138,15 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// - Timeout decreased to speed up stop operation. /// + /// + /// - Check transmit protocol for null. + /// public Boolean StopProcess { get => _stopProcess; set { - _currentGenesis?.TransmitProtocol.SetDefaultResponseTimeout(); + _currentGenesis?.TransmitProtocol?.SetDefaultResponseTimeout(); _stopProcess = value; } } @@ -158,7 +161,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// - Stop process added /// - public MeterFile(GenesisMeter genesisMeter) + public MeterFile(IGenesisMeter genesisMeter) { _currentGenesis = genesisMeter; _fileName = ""; @@ -227,6 +230,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// - Combined FOpen to one file open function, /// - Using for multiple write access to register instead of 3 writes. /// + /// + /// - Check transmit protocol for null. + /// public Boolean WriteMeterFile(String fileName, Byte[] dataBytes, Int32 fileOffset = 0) { //set to true to enter the cyclic write routines, will be overwritten with file pointer adjustment @@ -268,7 +274,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile if (returnValue && !_stopProcess) { //set extended timeout for file operations to extended timeout - _currentGenesis.TransmitProtocol.SetResponseTimeout(_fileWriteTimeOutMs); + _currentGenesis.TransmitProtocol?.SetResponseTimeout(_fileWriteTimeOutMs); //set register write retries to 0 to avoid doubling of records, if wakeup message from //serial communication routine received, one retry will kicked off in the request protocol CommunicationConfig.RequestRetries = 0; @@ -324,14 +330,14 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile } //set timeout back to default value - _currentGenesis.TransmitProtocol.SetDefaultResponseTimeout(); + _currentGenesis.TransmitProtocol?.SetDefaultResponseTimeout(); CommunicationConfig.RequestRetries = CommunicationConfig.DefaultRequestRetries; if (writtenBytes != ProcessedBytesCtr || returnedFileOffset != fileOffset + writtenBytes) return false; } - //processed bytes not longer needed + //processed bytes no longer needed OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs("", 0)); ProcessedBytesCtr = 0; _overallBytesCtr = 0; @@ -352,7 +358,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// - Initial /// - public static Byte[] BuildRpcInt32(Int32 first, Int32 second, Int32 last) + private static Byte[] BuildRpcInt32(Int32 first, Int32 second, Int32 last) { var rpc = new List(); rpc.AddRange(BitConverter.GetBytes(first)); @@ -471,7 +477,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile }// file size unequal to 0 - //processed bytes not longer needed + //processed bytes no longer needed ProcessedBytesCtr = 0; OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs("", 0)); @@ -553,7 +559,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// file name as string /// the file size for the file pointer - /// true, if file can be find and stored and, if required, read back and verified + /// true, if file can be found and stored and, if required, read back and verified /// /// - Initial /// @@ -566,6 +572,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// - Using for multiple write access to register instead of 3 writes. /// + /// + /// - Check transmit protocol for null. + /// public Boolean CreateEmptyMeterFile(String fileName, Int32 fileSize = 0) { //check if logged on to meter and access level is as expected @@ -599,7 +608,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile if (returnValue && !_stopProcess) { //set extended timeout for file operations to extended timeout - _currentGenesis.TransmitProtocol.SetResponseTimeout(_fileWriteTimeOutMs); + _currentGenesis.TransmitProtocol?.SetResponseTimeout(_fileWriteTimeOutMs); //set register write retries to 0 to avoid doubling of records, if wakeup message from //serial communication routine received, one retry will kicked off in the request protocol CommunicationConfig.RequestRetries = 0; @@ -622,7 +631,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile } //set timeout back to default value - _currentGenesis.TransmitProtocol.SetDefaultResponseTimeout(); + _currentGenesis.TransmitProtocol?.SetDefaultResponseTimeout(); CommunicationConfig.RequestRetries = CommunicationConfig.DefaultRequestRetries; if (returnedFileOffset != fileSize) diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFileRestore.cs b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFileRestore.cs index 9a885471..5716eb80 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFileRestore.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFileRestore.cs @@ -9,7 +9,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile { /// - /// This defines an exactly name only e.g. "1\\tstfile" + /// This defines an exact name only e.g. "1\\tstfile" /// public String Name; /// diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFwUpdate.cs b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFwUpdate.cs index 5bab7865..e62a4768 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFwUpdate.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFwUpdate.cs @@ -1,10 +1,15 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.IO; using System.Linq; +using System.Net; using System.Text; using System.Text.RegularExpressions; using System.Threading; +using Logic.ProductionToProductMapper.Files.Fw; +using Newtonsoft.Json; +using Xylem.Common.CommonCore.Configuration; using Xylem.Common.Hardware.WaterMeter.Genesis.Applications; using Xylem.Common.Hardware.WaterMeter.Genesis.Applications.Const; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore; @@ -13,6 +18,8 @@ using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.Consts; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.Properties; using Xylem.Common.Hardware.WaterMeter.Genesis.Registers; using Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts; +using Xylem.Common.Logic.ProductionOrderCore.FW; +using Xylem.Common.Logic.SoftwareAccessHelper; using Xylem.Common.Utils.ProcessExec; using Xylem.Common.Utils.ProcessExec.EventArguments; @@ -24,10 +31,23 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile public class MeterFwUpdate : IProcessState { #region Variables + /// + /// Minimal files contained in a FW package: + /// - System, + /// - Configexchange, + /// - Genesisflow, + /// - Irda, + /// - Flexnetversion, + /// - rowproduct_xxx.txt + /// + public const Int32 MinAppsRequiredForOperation = 6; // process update feedback public event EventHandler OnProcessUpdate; + // FLEXNETVERSION app id + public const Byte FlexnetVersionAppId = 0x18; + //disk and name of config file private const String StrConfigMeterFileName = "0\\config"; @@ -56,10 +76,11 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile public const Int32 FileAppAppIdIndex = 0x28; //package file search string for applications including blank!!!! - private const String StrPackageFileAppId = "Id "; - private const String StrPackageFileAppCrc = "CRC "; - private const String StrPackageFileAppCrc16 = "CRC16 "; - private const String StrPackageFileAppVersion = "version "; + private const String StrPackageFileAppId = "Id"; + private const String StrPackageFileAppCrc = "CRC"; + private const String StrPackageFileAppCrc16 = "CRC16"; + private const String StrPackageFileAppCrc32 = "CRC32"; + private const String StrPackageFileAppVersion = "version"; //binary file name is a combination of "binfile" application ID underline version //e.g. binfile0F_0268.bin @@ -140,7 +161,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile //update meter application list which failed private readonly List _updatedMeterApps = new List(); - private GenesisMeter _genesisMeter; + private IGenesisMeter _genesisMeter; private String _pcbId; private String _backupPcbId = ""; private MeterFile _meterFile; @@ -258,7 +279,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// - Check installed application before require access to registers. /// - public MeterFwUpdate(GenesisMeter genesisMeter, Boolean updateGenesisFlowEnable = false) + public MeterFwUpdate(IGenesisMeter genesisMeter, Boolean updateGenesisFlowEnable = false) { if (genesisMeter == null) { @@ -294,7 +315,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// - Moved Genesis preparation to /// - public void AssignGenesis(GenesisMeter genesisMeter) + public void AssignGenesis(IGenesisMeter genesisMeter) { _genesisMeter = genesisMeter; _actualOperation = ""; @@ -384,7 +405,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// Check the meter app status and if this is not indicating the unknown status /// compare the meter app with the file app to check for required action. - /// After comparison it marks the meter app status and + /// After comparison this marks the meter app status and /// the "Update" or "Erase" request. /// Preconditions: /// - FileApps have to be preset. @@ -693,6 +714,94 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile #endregion + #region Database access + + /// + /// Search a specific FW version info and clustered fileId which is for production + /// + /// + /// + /// + /// + /// + /// + /// - Initial. + /// + /// + /// - For special requirements the "not for production" version can be loaded. + /// + public static Boolean SearchProdFwInDb(String fwVersion, out Int32? fwPackageFileId, out String errorMsg, + Boolean isForProduction = true) + { + errorMsg = ""; + fwPackageFileId = null; + try + { + // Get the FW update files infos from DB which are for production + var url = ServiceUrls.ListAllCordonelFwPackagesUrl(); + var requestResponse = LocalWebRequest.GetRequest(url, 8000, out var httpStatus); + if (httpStatus == HttpStatusCode.OK && !string.IsNullOrEmpty(requestResponse)) + { + var fwPackInfo = JsonConvert.DeserializeObject>(requestResponse); + + if (fwPackInfo != null) + { + foreach (var fw in fwPackInfo.Where(fw => (fw.CurrentForProd || !isForProduction) && + fw.Name.Contains(fwVersion))) + { + fwPackageFileId = fw.FileClusterStoreId; + return true; + } + } + } + } + catch (Exception e) + { + errorMsg = e.Message; + } + return false; + } + + /// + /// Download the FW files from database including all binaries of each app and the application description file + /// + /// + /// + /// + /// + /// + /// - Initial. + /// + public static Boolean GetFwPackageFromDb(Int32 fwPackageFileId, List fwUpdatePackageFiles, + out String errorMsg) + { + errorMsg = ""; + if (fwPackageFileId <= 0 || fwUpdatePackageFiles == null) + { + return false; + } + try + { + // Get the files from DB containing the application binaries and the package description file + var url = ServiceUrls.DownloadFileParts(); + url += $"{fwPackageFileId}&readContent=true"; + var requestResponse = LocalWebRequest.GetRequest(url, 8000, out var httpStatus); + if (httpStatus == HttpStatusCode.OK && !string.IsNullOrEmpty(requestResponse)) + { + var files = JsonConvert.DeserializeObject>(requestResponse); + fwUpdatePackageFiles.AddRange(files); + return true; + } + } + catch (Exception e) + { + errorMsg = e.Message; + } + + return false; + } + #endregion + #region Actions /// @@ -1316,9 +1425,139 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile return ValidateLoadedFiles(); } + /// + /// Load a FW update package containing the binaries and the package description file. + /// + /// The FW root path is the path where the FW update packages are stored. This simplifies the load of a FW + /// completely stored to a subdirectory of this root path: + /// + /// EXAMPLE: + /// [Root path]\EMEA_R130B\rowproduct_xyz.txt (package description file, mandatory is "product" and ".txt") + /// \configuration.json + /// \binfile00_0537_xyz.bin (package description file, mandatory is "binfile" and ".bin") + /// \binfile01_0070_xyz.bin + /// \... + /// \binfile18_130B_xyz.bin + /// [Root path]\NA_R2006 \naproduct_xyz.txt (package description file, mandatory is "product" and ".txt") + /// \configuration.json + /// \binfile00_0533_xyz.bin (package description file, mandatory is "binfile" and ".bin") + /// \binfile01_0068_xyz.bin + /// \... + /// \binfile18_2006_xyz.bin + /// + /// + /// + /// search string to specify the release package like "R1.3.0B", will search for a + /// subdirectory containing "R130B" in path name + /// output of all files + /// true if package file exists and could be parsed + /// + /// - Initial. + /// + /// + /// - Returns bool. + /// + public static Boolean LoadFwUpdatePackage(String fwRootPath, String releaseName, List fwUpdatePackage) + { + if (fwUpdatePackage == null || string.IsNullOrEmpty(fwRootPath)) + return false; + + try + { + if (!ValidateFwSubDirectory(fwRootPath, releaseName, out var fileNames)) + return false; + + foreach (var fileName in fileNames.Where(f => !f.Contains(".json"))) + { + var file = new FilePart + { + FileName = Path.GetFileName(fileName) + }; + var rawFileContent = new List(File.ReadAllBytes(fileName)); + file.FileContent = new Byte[rawFileContent.Count]; + file.FileContent = rawFileContent.ToArray(); + + fwUpdatePackage.Add(file); + } + + return true; + + } + catch (Exception e) + { + Console.WriteLine(e.Message); + return false; + } + } /// - /// Load all binary files from from obj, + /// Common routine to get the filenames of the files contained in a root directory subdirectory. + /// + /// The FW root path is the path where the FW update packages are stored. This simplifies the load of a FW + /// completely stored to a subdirectory of this root path: + /// + /// EXAMPLE: + /// [Root path]\EMEA_R130B\rowproduct_xyz.txt (package description file, mandatory is "product" and ".txt") + /// \configuration.json + /// \binfile00_0537_xyz.bin (package description file, mandatory is "binfile" and ".bin") + /// \binfile01_0070_xyz.bin + /// \... + /// \binfile18_130B_xyz.bin + /// [Root path]\NA_R2006 \naproduct_xyz.txt (package description file, mandatory is "product" and ".txt") + /// \configuration.json + /// \binfile00_0533_xyz.bin (package description file, mandatory is "binfile" and ".bin") + /// \binfile01_0068_xyz.bin + /// \... + /// \binfile18_2006_xyz.bin + /// + /// + /// + /// search string to specify the release package like "R1.3.0B", will search for a + /// subdirectory containing "R130B" in path name + /// output of all file names found in the subdirectory with absolute path + /// false if path not found + /// + /// - Initial. + /// + private static Boolean ValidateFwSubDirectory(String fwRootPath, String releaseName, out String[] filePathName) + { + filePathName = null; + + if (string.IsNullOrEmpty(fwRootPath)) + return false; + try + { + // Get list of directories to select the correct based on the release name + var fwReleaseDirectories = Directory.GetDirectories(fwRootPath); + + // Clean FW release name from e.g. R1.3.0B to R130B as this is part of the folder + var releaseFolder = releaseName.Replace(".", ""); + + var fwReleaseDirectory = ""; + foreach (var directory in fwReleaseDirectories.Where(d => d.Contains(releaseFolder))) + { + fwReleaseDirectory = directory; + } + + if (string.IsNullOrEmpty(fwReleaseDirectory)) + return false; + + filePathName = Directory.GetFiles(fwReleaseDirectory); + + if (filePathName.Length == 0) + return false; + + return true; + } + catch (Exception e) + { + Console.WriteLine(e.Message); + return false; + } + } + + /// + /// Load all binary files from obj, /// this has to be a tested combination of concatenated applications /// /// to binary files @@ -1436,7 +1675,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile strVersion = "0.00"; UInt32 version; - if (appId == 0x18) //FLEXNETVERSION + if (appId == FlexnetVersionAppId) //FLEXNETVERSION { strVersion = GenesisMeter.BuildFlexnetFwVersion(out version, null, binData[FileAppVersionIndex + 1], @@ -1934,7 +2173,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile _genesisMeter.TransmitProtocol.SetResponseTimeout(2000); do { - returnValue = _genesisMeter.WriteRegister(Register.System.TriggerFwUpgrade, 1); + returnValue = _genesisMeter.WriteRegister(Register.System.TriggerFwUpgrade, true); if (!returnValue) { @@ -2020,6 +2259,74 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile #region PackageFile + /// + /// Load a FW update package description file. + /// + /// The filters to find the path in the root path is the region and FW release version + /// "EMEA" or "NA" + /// "R130B" or "R1.3.0B" + /// additional naming is allowed (e.g. "EMEA_R13F3_replaces_R1107_R1108") + /// + /// The filters to accept the file is: + /// "product" and + /// ".txt" + /// additional naming is allowed (e.g. "rowproduct_R130B.txt") + /// + /// The FW root path is the path where the FW update packages are stored. + /// All files needed to be stored directly in the main folder of the FW version: + /// + /// EXAMPLE: + /// [Root path]\EMEA_R130B\rowproduct_xyz.txt (package description file, mandatory is "product" and ".txt") + /// \configuration.json + /// \binfile00_0537_xyz.bin (package description file, mandatory is "binfile" and ".bin") + /// \binfile01_0070_xyz.bin + /// \... + /// \binfile18_130B_xyz.bin + /// [Root path]\NA_R2006 \naproduct_xyz.txt (package description file, mandatory is "product" and ".txt") + /// \configuration.json + /// \binfile00_0533_xyz.bin (package description file, mandatory is "binfile" and ".bin") + /// \binfile01_0068_xyz.bin + /// \... + /// \binfile18_2006_xyz.bin + /// + /// + /// + /// search string to specify the release package like "R1.3.0B", will search for a + /// subdirectory containing "R130B" in path name + /// + /// true if package file exists and could be parsed + /// + /// - Initial. + /// + /// + /// - Return changed to bool. + /// + public static Boolean LoadPackageFile(String fwRootPath, String releaseName, out String packageFile) + { + packageFile = ""; + if (string.IsNullOrEmpty(fwRootPath) || string.IsNullOrEmpty(releaseName)) + return false; + + try + { + if (!ValidateFwSubDirectory(fwRootPath, releaseName, out var fileNames)) + return false; + + foreach (var fileName in fileNames.Where(f => f.Contains("product") && f.Contains(".txt"))) + { + packageFile = File.ReadAllText(fileName); + } + + return true; + + } + catch (Exception e) + { + Console.WriteLine(e.Message); + return false; + } + } + /// /// Load package control file - ADF (application description file) /// @@ -2092,15 +2399,14 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile foreach (var fileApp in FileApps) { // convert version from 0x1107 to "11.07" - var strVersion = fileApp.AppId == 0x18 ? - $"{(fileApp.Version & 0xFF00) >> 8:X2}.{fileApp.Version & 0x00FF:X2}" + var strVersion = fileApp.AppId == FlexnetVersionAppId ? + $"{(fileApp.Version & 0xFF00) >> 8:X2}.{fileApp.Version & 0x00FF:X2}" : fileApp.StrVersion; // find a line which contains all required information validAppsCtr += packageFileLines.Count(line => line.Contains($"{StrPackageFileAppId}") && line.Contains($"{ConvertAppIdToString(fileApp.AppId)}") && - (line.Contains($"{StrPackageFileAppCrc}") || - line.Contains($"{StrPackageFileAppCrc16}")) && + line.Contains($"{StrPackageFileAppCrc}") && line.Contains($"{ConvertCrcToString(fileApp.Crc)}") && line.Contains($"{StrPackageFileAppVersion}") && line.Contains($"{strVersion}")); @@ -2117,6 +2423,139 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile return validAppsCtr == FileApps.Count; } + /// + /// Convert a hexadecimal string to an integer number + /// + /// + /// + /// true if successfully converted + /// + /// - Initial. + /// + public static Boolean HexStringToInteger(String hexString, ref T intNumber) + { + var type = typeof(T); + + // Clean string to allow explicit hex signs as ASCII + var strCleanedToHexSigns = Regex.Replace(hexString, "[^0-9,A-F,a-f]", ""); + + if (type == typeof(UInt64)) + { + if (ulong.TryParse(strCleanedToHexSigns, NumberStyles.HexNumber, new CultureInfo("en"), + out var uint64Number)) + { + intNumber = (T)Convert.ChangeType(uint64Number, type); + } + else + { + return false; + } + } + // Convert for all numbers from Byte to Int64 + if (!long.TryParse(strCleanedToHexSigns, NumberStyles.HexNumber, new CultureInfo("en"), out var int64Number)) + return false; + + intNumber = (T)Convert.ChangeType(int64Number, type); + return true; + } + /// + /// Extract tall applications found in the package description file. + /// + /// + /// + /// + /// - Initial. + /// + public static void GetPackageFileApplications(String packageDescriptionFile, List apps) + { + try + { + var packageFileLines = packageDescriptionFile.Split('\n'); + foreach (var line in packageFileLines) + { + if (!line.Contains(StrPackageFileAppId) || + !line.Contains(StrPackageFileAppCrc) || + !line.Contains(StrPackageFileAppVersion)) continue; + + var appIsValid = true; + var app = new FileApplications("package description file content - unnamed app"); + + // Example line: "Id 0x0F, CRC16 0xA3A6, size 25164 bytes, version 3.02\r\n" + var lineFields = line.Split(','); + foreach (var lineField in lineFields) + { + var fieldsWithNullFields = lineField.Split(' '); + var fields = new List(); + fields.AddRange(fieldsWithNullFields.Where(str => !string.IsNullOrEmpty(str))); + if (fields[0].Equals(StrPackageFileAppId)) + { + appIsValid = HexStringToInteger(fields[1], ref app.AppId); + } + // Avoid assignment of new CRC32 (UInt32) as the app.crc variable is too small to hold it (UInt16) + if (fields[0].Contains(StrPackageFileAppCrc) && !fields[0].Contains(StrPackageFileAppCrc32)) + { + appIsValid &= HexStringToInteger(fields[1], ref app.Crc); + } + // Convert all versions except the FLEXNETVERSION which will keep its hex outline + if (fields[0].Equals(StrPackageFileAppVersion) && app.AppId != FlexnetVersionAppId ) + { + Byte msb = 0; + Byte lsb = 0; + var subFieldsMsbLsb = fields[1].Split('.'); + appIsValid &= HexStringToInteger(subFieldsMsbLsb[0], ref msb); + appIsValid &= HexStringToInteger(subFieldsMsbLsb[1], ref lsb); + app.StrVersion = GenesisMeter.BuildFwVersion(out app.Version, msb, lsb); + appIsValid &= !string.IsNullOrEmpty(app.StrVersion); + + } + // Convert the FLEXNETVERSION which will keep its hex outline + if (fields[0].Equals(StrPackageFileAppVersion) && app.AppId == FlexnetVersionAppId ) + { + app.StrVersion = GenesisMeter.BuildFlexnetFwVersion(out app.Version, fields[1]); + appIsValid &= !string.IsNullOrEmpty(app.StrVersion); + } + } + + //app.AppId; + if (appIsValid) + apps.Add(app); + } + } + catch (Exception) + { + //ignore + } + } + + /// + /// Extract the maximum core revision from the package description file. + /// + /// + /// nullable core revision as Int32? + /// + /// - Initial. + /// + public static Int32? GetCoreRevisionMax(String packageDescriptionFile) + { + try + { + var packageFileLines = packageDescriptionFile.Split('\n'); + var strCoreMax = packageFileLines.First(line => line.Contains(StrCoreRevisionMaxId) && + line.Contains(StrCoreRevisionCordonelId)); + + if (!string.IsNullOrEmpty(strCoreMax)) + { + return ExtractVersionFromString(strCoreMax); + } + } + catch (Exception) + { + // ignored + } + + return null; + } + /// /// Checks if the core version is in range of required minimum to maximum version. /// The package file has to be read in advance as this contains the min/max. diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFwUpdateCapability.cs b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFwUpdateCapability.cs index 3c100b3f..3fffcaa4 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFwUpdateCapability.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFwUpdateCapability.cs @@ -23,7 +23,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// - Removed upgrade permission 0 check. /// - public static Boolean CheckMetrology(MeterFwUpdate meterFwUpdate, GenesisMeter currentGenesis) + public static Boolean CheckMetrology(MeterFwUpdate meterFwUpdate, IGenesisMeter currentGenesis) { if (meterFwUpdate == null || currentGenesis == null) return false; diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterLutFile.cs b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterLutFile.cs index ebdabbed..c5869695 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterLutFile.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterLutFile.cs @@ -17,7 +17,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile public const String StrLutFileInvalidCrc = "0x8000"; /// - /// Disk number and name name of meter LUT file + /// Disk number and name of meter LUT file /// public const String StrLutMeterFileName = "1\\mettbl"; diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterLutUpdate.cs b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterLutUpdate.cs index 3000643d..8d0ac8c3 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterLutUpdate.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterLutUpdate.cs @@ -52,7 +52,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile private Int32 _updateProcedureRetryCtr; - private GenesisMeter _genesisMeter; + private IGenesisMeter _genesisMeter; private MeterFile _meterFile; // Text for caller to inform about actual process being carried out @@ -138,7 +138,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// - Initial /// - public MeterLutUpdate(GenesisMeter genesisMeter) + public MeterLutUpdate(IGenesisMeter genesisMeter) { if (genesisMeter == null) return; @@ -163,7 +163,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// - Initial /// - public void AssignGenesis(GenesisMeter genesisMeter) + public void AssignGenesis(IGenesisMeter genesisMeter) { _genesisMeter = genesisMeter; _actualOperation = ""; diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterPowerCorrectionFile.cs b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterPowerCorrectionFile.cs index 1f2c55ca..823a50ec 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterPowerCorrectionFile.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterPowerCorrectionFile.cs @@ -21,7 +21,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile public const String StrMeterPowCorrFileName = "1\\powcorr"; - private readonly GenesisMeter _currentGenesis; + private readonly IGenesisMeter _currentGenesis; private readonly MeterFile _meterFile; // position of data in binary data of meter powcorr file @@ -101,7 +101,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// - Initial. /// - public MeterPowerCorrectionFile(GenesisMeter currentGenesis) + public MeterPowerCorrectionFile(IGenesisMeter currentGenesis) { _currentGenesis = currentGenesis; _meterFile = new MeterFile(_currentGenesis); diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterPwdFile.cs b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterPwdFile.cs index 06157f61..05324978 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterPwdFile.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterPwdFile.cs @@ -14,7 +14,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile { // The FwUpdateSw references this string public const String StrPasswordFileName = "0\\password"; - private readonly GenesisMeter _genesisMeter; + private readonly IGenesisMeter _genesisMeter; private readonly MeterFile _meterFile; //seven passwords are needed for Level 1, 2, 4, 5, 6, 7, Level 3 will be generated //out of the ProcessorUID. @@ -45,7 +45,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// - Initial. /// - public MeterPwdFile(GenesisMeter genesisMeter) + public MeterPwdFile(IGenesisMeter genesisMeter) { _genesisMeter = genesisMeter; _meterFile = new MeterFile(_genesisMeter); diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterResetPsu.cs b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterResetPsu.cs index c1d3df31..2a29ebca 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterResetPsu.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterResetPsu.cs @@ -2,6 +2,7 @@ using System.Linq; using System.Text; using System.Threading; +using Xylem.Common.CommonCore.Consts; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.Consts; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile.Properties; @@ -40,11 +41,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile // upgrade file for FLEXNETVERSION private Byte[] _upgradeFile; - // FLEXNETVERSION application Id - private const Byte FlexnetVersionAppId = 0x18; - // upgrade control file content to force an update of exclusively FLEXNETVERSION - private static readonly String UpgradeCtrlFile = $"{FlexnetVersionAppId:X2}" + + private static readonly String UpgradeCtrlFile = $"{MeterFwUpdate.FlexnetVersionAppId:X2}" + MeterFwUpdate.StrInstallAppCtrlFilePost; /// @@ -53,7 +51,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile public event EventHandler OnProcessUpdate; //disk and name of lookup file - private static readonly String StrFlexnetUpgradeFileName = $"1\\upg{FlexnetVersionAppId:X2}"; + private static readonly String StrFlexnetUpgradeFileName = $"1\\upg{MeterFwUpdate.FlexnetVersionAppId:X2}"; //update reties for files private const Int32 FileWriteRetries = 1; @@ -62,10 +60,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile private const Int32 TriggerWriteRetries = 2; //time to wait until next trial of communication during reboot - private const Int32 RebootWaitTimeMs = 500; + private const Int32 RebootWaitTimeMs = 250; //reboot wait cycles to be multiplied with reboot wait time for maximum overall time if unsuccessful - private const Int32 RebootWaitCycles = 60; + private const Int32 RebootWaitCycles = 4 * 90; //retry of entire update procedure private const Int32 UpdateProcedureRetries = 1; @@ -79,7 +77,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile private Int32 _processRetryCtr; - private GenesisMeter _genesisMeter; + private IGenesisMeter _genesisMeter; private MeterFile _meterFile; // Text for caller to inform about actual process being carried out @@ -153,7 +151,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// - Initial /// - public MeterResetPsu(GenesisMeter genesisMeter) + public MeterResetPsu(IGenesisMeter genesisMeter) { if (genesisMeter == null) return; @@ -167,7 +165,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// - Initial /// - public void AssignGenesis(GenesisMeter genesisMeter) + public void AssignGenesis(IGenesisMeter genesisMeter) { _genesisMeter = genesisMeter; _actualOperation = ""; @@ -261,12 +259,27 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// Update meter lookup table /// + /// /// /// /// - Initial /// - public Boolean MeterResetPsuExecute() + /// + /// - Initial MockGenesis support. + /// + /// + /// - Check reboot counter to verify reboot being done. + /// + /// + /// - CancellationToken. + /// + public Boolean MeterResetPsuExecute(CancellationToken cancellationToken = default(CancellationToken)) { + var statusReturn = _genesisMeter.RebootGenesis(); + // Status return "Unknown" is from the real Genesis + if (StatusReturn.Unknown != statusReturn) + return StatusReturn.Okay == statusReturn; + if (!ResetPreparation()) { return false; @@ -277,10 +290,24 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile ErrorMessage = ""; _meterResetPsuState = MeterResetPsuState.StartInitial; _backupMeterResetPsuState = MeterResetPsuState.Idle; + var registerName = "CUSTOMER_RebootCount"; + var rebootCountBeforeReboot = RegisterConverter.ByteArrayToValue( + _genesisMeter.ReadRegister(registerName)); while (_meterResetPsuState != MeterResetPsuState.Idle && !StopUpdateProcess) { + if (cancellationToken.IsCancellationRequested) + StopUpdateProcess = true; MeterResetPsuStateMachine(); } + var rebootCountAfterReboot = RegisterConverter.ByteArrayToValue( + _genesisMeter.ReadRegister(registerName)); + + // The reboot counter will only be increased if reboot executed + if (rebootCountAfterReboot == rebootCountBeforeReboot) + { + return false; + } + return ExitPreparation(true); } @@ -469,7 +496,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// Store configurations before reset, because reboot will use the values - /// of the non volatile memory. + /// of the non-volatile memory. /// /// /// @@ -508,7 +535,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile var strVersion = ""; UInt32 version = 0; UInt16 fileAppCrc = 0; - foreach (var app in _genesisMeter.MeterAppListVersion.Where(app => app.AppId == FlexnetVersionAppId)) + foreach (var app in _genesisMeter.MeterAppListVersion.Where(app => app.AppId == MeterFwUpdate.FlexnetVersionAppId)) { strVersion = app.StrVersion; fileAppCrc = app.Crc; @@ -676,7 +703,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile if (string.IsNullOrEmpty(pcbId)) { - var overallProcessCtrPercent = 100.0 * rebootCtr / RebootWaitCycles ; + var overallProcessCtrPercent = 100.0 * rebootCtr / RebootWaitCycles; OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs("reboot", overallProcessCtrPercent)); Thread.Sleep(RebootWaitTimeMs); } diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisFile/Properties/Resources.de.resx b/Common/Hardware/WaterMeter/Genesis/GenesisFile/Properties/Resources.de.resx index bea1a4f8..fbdf1424 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisFile/Properties/Resources.de.resx +++ b/Common/Hardware/WaterMeter/Genesis/GenesisFile/Properties/Resources.de.resx @@ -130,7 +130,7 @@ Sende Aktualisierungsdateien - Sende Initialisierungsdatei für Aktualisierung + Sende Neustartkonfigurationsdatei Lösche Aktualisierungsdatei diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisFile/app.config b/Common/Hardware/WaterMeter/Genesis/GenesisFile/app.config index e936cc13..b52a6a13 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisFile/app.config +++ b/Common/Hardware/WaterMeter/Genesis/GenesisFile/app.config @@ -3,9 +3,9 @@ - - + + - \ No newline at end of file + diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatus.cs b/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatus.cs index 1ac957a0..75b3a16e 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatus.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatus.cs @@ -3,96 +3,25 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisStatus { /// - /// Status of Cordonel like: - /// - Battery drainage, - /// - Production date of electronics, - /// - Due date for production, - /// - Remaining life time, - /// - Special permissions for production capability check for - /// - Battery Drainage in %, - /// - Remaining Life Time in years, - /// - Production Due Date as DateTime. + /// Status of Cordonel calculated out of the Cordonel readouts /// public class GenesisStatus { /// - /// Data base primary key - /// - public Int32 Id { get; set; } - - /// - /// Order number - /// - public Int32? OrderNumber { get; set; } - - /// - /// PcbId. - /// - public String PcbId { get; set; } - - /// - /// Skip radio parameter check - /// - public Boolean SkipRadioParametersCheck { get; set; } - - /// - /// Override FW version. Normally the FW will be assigned to the latest released version - /// and taken from the data base. Here special versions can be used for FW tests. - /// null means take the current released version - /// - public Int32? OverrideFwCheck { get; set; } - - /// - /// override the Lut version to check the look-up-table installation as this device may be used for development. - /// null means take the current released version - /// - public Int32? OverrideLutCheck { get; set; } - - /// - /// Internally used to signal that production and shipping is proved and validated. - /// - public Boolean ProductionAccepted { get; set; } - - /// - /// Date and time of production of electronics. - /// - public DateTime KitronProductionDate { get; set; } - - /// - /// Last date until production has to be finished, can be extended by special permission - /// - public DateTime ProductionDueDate { get; set; } - - /// - /// Remaining life time for Cordonel in years based on battery drainage. + /// Remaining lifetime for Cordonel in years based on battery drainage. /// public Double RemainingLifeTimeYears { get; set; } /// - /// Exceeded life time of all batteries in seconds. + /// Exceeded lifetime of all batteries in seconds. /// public UInt64 ExceededLifeTime_s { get; set; } - /// - /// Required life time in years for assembly, is dependent on region and special permission. - /// - public Double RequiredLifeTimeYearsAssembly { get; set; } - - /// - /// Required life time in years for shipping, is dependent on region and special permission. - /// - public Double RequiredLifeTimeYearsShipping { get; set; } - /// /// Battery drainage in percent. /// public Double DrainedBatteryLoadPercent { get; set; } - /// - /// Maximum drained Battery load in percent. - /// - public Double MaxDrainedBatteryLoadPercent { get; set; } - /// /// Number of batteries attached to Cordonel. /// @@ -103,35 +32,42 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisStatus /// public UInt64 InitialBatteryLoad_mAh { get; set; } + /// + /// Quiescent current used for alternative calculation of threshold for + /// maximum remaining battery load given by Cordonel requirements. + /// If this values and the + /// is set, this has a higher priority as the normal threshold. + /// + public Double? QuiescentCurrent_uA { get; set; } + + /// + ///Additional allowed load for production used for alternative calculation of + /// threshold for maximum remaining battery load given by Cordonel requirements. + /// If this values and the + /// is set, this has a higher priority as the normal threshold. + /// + public Double? EstimatedProductionBatteryLoadPercent { get; set; } + /// /// Drained capacity of all batteries in uAs. /// public UInt64 DrainedBatteryLoad_uAs { get; set; } + + /// + /// Alternative calculation of required battery load in percent based on quiescent + /// current multiplied by operational time and supplement for production. + /// + public Double? AlternativeRequiredBatteryLoadPercent { get; internal set; } + + /// + /// Battery assembly time based on the POWERMON_TotalUsedSeconds and the current time in UTC. + /// + public DateTime? BatteryAssemblyDateTimeUtc { get; internal set; } /// - /// Comment for approval and permissions reasons: - /// e.g. "On customer requirement for test purposes the life time isn't of importance". + /// Calculation of storage months based on assembly time and UtcNow. /// - public String ApprovalComment { get; set; } - - /// - /// Name of approver for special permissions. - /// - public String ApproverName { get; set; } - - /// - /// Date of approval. - /// - public DateTime ApprovalDate { get; set; } - - /// - /// Uniontown limits - /// - public Double UNTLimit { get; internal set; } - - /// - /// Uniontown status - /// - public Boolean UNTStatus { get; internal set; } + public Double? StorageMonths { get; internal set; } + } } diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatus.csproj b/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatus.csproj index cc389b4d..4fdcf185 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatus.csproj +++ b/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatus.csproj @@ -9,9 +9,10 @@ Properties Xylem.Common.Hardware.WaterMeter.Genesis.GenesisStatus Xylem.Common.Hardware.WaterMeter.Genesis.GenesisStatus - v4.0 + v4.8.1 512 true + true @@ -21,6 +22,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -29,9 +31,11 @@ TRACE prompt 4 + false bin\Debug-local IIS-CUST\ + false @@ -50,9 +54,6 @@ - - CordonelRequirements.cs - @@ -62,10 +63,22 @@ {9EB1F659-6F73-4F65-BCAB-4114FD94F5FC} CommonCore.Configuration + + {8befd3ac-bb21-4b62-8d9a-cf8cbfd439eb} + LaaPackages.Features.Cordonel + + + {6D2777BB-7A88-466D-A49B-3266F9BF0160} + ProductionOrderCore + {A33E3C6D-EAAE-4A20-A0EE-F9E6922FD029} SoftwareAccessHelper + + {8203abb8-38e5-472e-a742-33f38b7a74a6} + WaterMeterCore + {04201E95-90A0-4B73-A72F-379739B2A3AE} GenesisCore diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatus.v3.ncrunchproject b/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatus.v3.ncrunchproject new file mode 100644 index 00000000..cf22dfa9 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatus.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatusHandler.cs b/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatusHandler.cs index 31051a49..c56ba52b 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatusHandler.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisStatus/GenesisStatusHandler.cs @@ -1,14 +1,19 @@ using System; +using System.Collections.Generic; +using System.Net; +using LaaPackages.Features.Cordonel.Models; using Newtonsoft.Json; using Xylem.Common.CommonCore.Configuration; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore; using Xylem.Common.Hardware.WaterMeter.Genesis.Registers; using Xylem.Common.Logic.SoftwareAccessHelper; +using Xylem.Common.Logic.ProductionOrderCore.TestResults; namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisStatus { /// /// Handler for the production status check. This will be feed by the DB. + /// The base is the standard requirement or the special requirement. /// - Calculation of drained battery, /// - Assembly capability check, /// - Shipping capability check. @@ -16,83 +21,268 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisStatus public static class GenesisStatusHandler { /// - /// Get all production infos for skip process checks or limits for production like: + /// Average days per month based on 365.25 [Days/Year] / 12 [Months/Year] = 30.4375 + /// + public const Double DAYS_PER_MONTH = 30.4375d; + + /// + /// Average seconds per month + /// + public const Double SECONDS_PER_MONTH = 3600 * 24 * DAYS_PER_MONTH; + + /// + /// Months from seconds + /// + public const Double MONTHS_FROM_SECONDS = 1.0d / SECONDS_PER_MONTH; + + /// + /// Get all production infos out of the "CordonelRequirements" which can be "StandardRequirements" or + /// "SpecialRequirements". The call of "CordonelRequirements" will automatically select the active + /// requirement with priority to the "SpecialRequirement". /// - Battery drained percentage upper limit, /// - Production due date for a special register, - /// - Required life time for assembly line, - /// - Required life time for shipping line. + /// - Required lifetime for assembly line, + /// - Required lifetime for shipping line. /// /// - /// - /// + /// + /// /// true if successfully executed /// /// - Initial. /// /// - /// - Clone all properties coming from data base to reference (deep clone). + /// - Clone all properties coming from database to reference (deep clone). /// - public static Boolean GetProductionSkipAndLifeTimeInfoFromDb(String pcbId, Int32 orderNumber, - GenesisStatus productionStatus) + /// + /// - Changed from "ProductionSkipAndLifeTimeInfo" to "CordonelRequirements". + /// + /// + /// - Overwrite production "ProductionOrderNr" if null with "OuterProductionOrderNr" which is standard for + /// standard requirements as those are neither PcbId based nor order number based. + /// + public static Boolean GetCordonelRequirementInfoFromDb(String pcbId, CordonelRequirements prodRequirements, + out String errorMsg) { - if (string.IsNullOrEmpty(pcbId) || productionStatus == null) + errorMsg = ""; + if (null == prodRequirements || string.IsNullOrEmpty(pcbId)) { return false; } - GenesisStatus status; try { - var url = ServiceUrls.GetProductionSkipAndLifeTimeInfoServiceUrl(); - url += $"{pcbId}&orderNumber={orderNumber}"; - var response = LocalWebRequest.GetRequest(url, 2000); - status = JsonConvert.DeserializeObject(response); - if (status == null) + var url = ServiceUrls.GetCordonelRequirementInfoServiceUrl(); + url += pcbId; + var response = LocalWebRequest.GetRequest(url, 30000, out var httpStatus); + if (httpStatus == HttpStatusCode.OK && !string.IsNullOrEmpty(response)) { - return false; + var requirements = JsonConvert.DeserializeObject(response); + var type = typeof(CordonelRequirements); + foreach (var prop in type.GetProperties()) + { + if (prop.CanWrite) + prop.SetValue(prodRequirements, prop.GetValue(requirements, null), null); + } + + // For standard requirements the order number has to be set as those are neither PcbId based + // nor order number based + if (prodRequirements.ProductionOrderNr == null) + prodRequirements.ProductionOrderNr = prodRequirements.OuterProductionOrderNr; + return true; } } - catch (Exception ) + catch (Exception e) + { + errorMsg = e.Message; + return false; + } + + return false; + } + + public static Boolean GetCordonelRequirementInfoFromDbByFANr(String fanr, CordonelRequirements prodRequirements, out string errorMsg) + { + errorMsg = ""; + if (null == prodRequirements || string.IsNullOrEmpty(fanr)) { return false; } - var type = typeof(GenesisStatus); - foreach (var prop in type.GetProperties()) + try { - try + var url = ServiceUrls.GetCordonelRequirementByFANrInfoServiceUrl(fanr); + var response = LocalWebRequest.GetRequest(url, 30000, out var httpStatus); + if (httpStatus == HttpStatusCode.OK && !string.IsNullOrEmpty(response)) { - if( prop.CanWrite) - prop.SetValue(productionStatus, prop.GetValue(status, null), null); - } - catch (Exception) - { - // nothing to do, go ahead + var requirements = JsonConvert.DeserializeObject(response); + var type = typeof(CordonelRequirements); + foreach (var prop in type.GetProperties()) + { + if (prop.CanWrite) + prop.SetValue(prodRequirements, prop.GetValue(requirements, null), null); + } + + // For standard requirements the order number has to be set as those are neither PcbId based + // nor order number based + if (prodRequirements.ProductionOrderNr == null) + prodRequirements.ProductionOrderNr = prodRequirements.OuterProductionOrderNr; + return true; } } + catch (Exception e) + { + errorMsg = e.Message; + return false; + } - return true; + return false; + } + + public static Boolean GetCordonelRequirementInfoFromDbByMeterSize(int size, CordonelRequirements prodRequirements, out string errorMsg) + { + errorMsg = ""; + + try + { + var url = ServiceUrls.GetCordonelRequirementByMeterSizeInfoServiceUrl(size); + var response = LocalWebRequest.GetRequest(url, 30000, out var httpStatus); + if (httpStatus == HttpStatusCode.OK && !string.IsNullOrEmpty(response)) + { + var requirements = JsonConvert.DeserializeObject(response); + var type = typeof(CordonelRequirements); + foreach (var prop in type.GetProperties()) + { + if (prop.CanWrite) + prop.SetValue(prodRequirements, prop.GetValue(requirements, null), null); + } + + // For standard requirements the order number has to be set as those are neither PcbId based + // nor order number based + if (prodRequirements.ProductionOrderNr == null) + prodRequirements.ProductionOrderNr = prodRequirements.OuterProductionOrderNr; + return true; + } + } + catch (Exception e) + { + errorMsg = e.Message; + return false; + } + + return false; } /// - /// Read and calculate life time information. + /// Get the calibration results for a meter from a test-bench calibration. + /// + /// + /// + /// + /// + /// + /// - Initial. + /// + public static Boolean GetCalibrationResultsFromDb(String pcbId, CalibrationResults calibResults, + out String errorMsg) + { + errorMsg = ""; + if (null == calibResults || string.IsNullOrEmpty(pcbId)) + { + return false; + } + + try + { + var url = ServiceUrls.GetGenesisCalibrationResultsUrl(); + url += pcbId; + var requestResponse = LocalWebRequest.GetRequest(url, 30000, out var httpStatus); + if (httpStatus == HttpStatusCode.OK && !string.IsNullOrEmpty(requestResponse)) + { + var calibRes = JsonConvert.DeserializeObject(requestResponse); + // ClassAccess.CopyProperties(calibResults, calibRes); + var type = typeof(CalibrationResults); + foreach (var prop in type.GetProperties()) + { + if (prop.CanWrite) + prop.SetValue(calibResults, prop.GetValue(calibRes, null), null); + } + return true; + } + } + catch (Exception e) + { + errorMsg = e.Message; + return false; + } + + return false; + } + + /// + /// Get the state of executed flow tests for a meter from a test-bench run. + /// + /// + /// + /// + /// + /// + /// - Initial. + /// + public static Boolean GetFlowTestStateFromDb(String pcbId, List testBenchState, out String errorMsg) + { + errorMsg = ""; + if (testBenchState == null || string.IsNullOrEmpty(pcbId)) + { + return false; + } + + try + { + var url = ServiceUrls.MeterInfoForTestBench() + pcbId; + var requestResponse = LocalWebRequest.GetRequest(url, 30000, out var httpStatus); + if (httpStatus == HttpStatusCode.OK && !string.IsNullOrEmpty(requestResponse)) + { + var state = JsonConvert.DeserializeObject(requestResponse); + testBenchState.AddRange(state); + return true; + } + } + catch (Exception e) + { + errorMsg = e.Message; + return false; + } + + return false; + } + + /// + /// Read and calculate lifetime information. /// /// /// + /// /// /// /// - Initial. /// - public static Boolean BuildLifeTimeInformation(GenesisMeter currentGenesis, GenesisStatus status) + /// + /// - errorMsg. + /// + public static Boolean BuildLifeTimeInformation(IGenesisMeter currentGenesis, GenesisStatus status, out String errorMsg) { Boolean retVal; - if (currentGenesis == null || status == null) return false; + errorMsg = ""; + if (currentGenesis == null || status == null) + return false; // read information from genesis try { - if (!currentGenesis.IsLoggedOn) currentGenesis.Login(); - + if (!currentGenesis.IsLoggedOn) + currentGenesis.Login(); + status.ExceededLifeTime_s = RegisterConverter.ByteArrayToValue( currentGenesis.ReadRegister(Register.Powermon.BatteryExceededSeconds)); status.DrainedBatteryLoad_uAs = RegisterConverter.ByteArrayToValue( @@ -106,15 +296,16 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisStatus retVal = CalculateLifeTime(status); } - catch (Exception) + catch (Exception e) { - retVal = false; + errorMsg = e.Message; + return false; } return retVal; } /// - /// Calculation of life time values. + /// Calculation of lifetime values. /// /// /// true if all calculations could be executed @@ -124,44 +315,63 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisStatus /// /// - Uniontown limits UNT. /// + /// + /// - Alternative calculation based on quiescent current and production supplement instead of UNT limits. + /// + /// + /// - Battery assembly time calculation added. + /// + /// + /// - Exit if essential inputs missing. + /// + /// + /// - Calculate storage months. + /// public static Boolean CalculateLifeTime(GenesisStatus status) { - var retVal = true; + // Mark as false if the basic inputs are missed + if (status == null || + status.InitialBatteryLoad_mAh == 0 || + status.BatteryQuantity == 0 || + status.DrainedBatteryLoad_uAs == 0 || + status.ExceededLifeTime_s == 0) + { + return false; + } + // Calculate the initial overall battery load of all batteries in uAs as the drained load uses this unit. - var initialBatteryLoad_uAs = 1000 * 3600 * status.InitialBatteryLoad_mAh * (UInt64)status.BatteryQuantity; + var initialBatteryLoad_uAs = 1000.0 * 3600.0 * status.InitialBatteryLoad_mAh * status.BatteryQuantity; // Relation of drained to initial load, set the battery to fully unloaded for failed check to force a recalculation - var drainedBatteryLoad_rel = 1.0; - if (initialBatteryLoad_uAs != 0) - { - drainedBatteryLoad_rel = (Double)status.DrainedBatteryLoad_uAs / initialBatteryLoad_uAs; - } - else - { - retVal = false; - } - status.DrainedBatteryLoadPercent = drainedBatteryLoad_rel * 100; - - // The estimated life time uses the drained load over the actual exceeded life time and assumes, that further on - // an identical load will be consumed over the remaining life cycle. The initial load will be multiplied with the - // drained load relation. Set the estimated time to the exceeded time to force a recalculation on failed input. - var estimatedLifeTime_s = (Double)status.ExceededLifeTime_s; - if (drainedBatteryLoad_rel != 0.0) - { - estimatedLifeTime_s = status.ExceededLifeTime_s / drainedBatteryLoad_rel; - } - else - { - retVal = false; - } + var drainedBatteryLoad_rel = status.DrainedBatteryLoad_uAs / initialBatteryLoad_uAs; + status.DrainedBatteryLoadPercent = drainedBatteryLoad_rel * 100.0; + // The estimated lifetime uses the drained load over the actual exceeded lifetime and assumes, that further on + // an identical load will be consumed over the remaining life cycle. + var estimatedLifeTime_s = status.ExceededLifeTime_s / drainedBatteryLoad_rel; var remainingLifetime_s = estimatedLifeTime_s - status.ExceededLifeTime_s; - // convert the seconds to years - status.RemainingLifeTimeYears = remainingLifetime_s / 3600 / 24 / 365.25; + status.RemainingLifeTimeYears = remainingLifetime_s / 3600.0 / 24.0 / 365.25; - status.UNTLimit = 1368000000 + (status.ExceededLifeTime_s * 77.7); - status.UNTStatus = status.UNTLimit >= status.DrainedBatteryLoad_uAs; - return retVal; + // Calculate an alternative threshold for remaining battery load based on the quiescent current and a supplement + // for production purpose. Those values can be assigned in the Cordonel requirements. + if (status.QuiescentCurrent_uA != null && + status.QuiescentCurrent_uA > 0 && + status.EstimatedProductionBatteryLoadPercent != null) + { + status.AlternativeRequiredBatteryLoadPercent = + // The additional free power for production purposes + (Double)status.EstimatedProductionBatteryLoadPercent + + // The power consumption based on the actual lifetime and consumed current in relation to absolute load + status.ExceededLifeTime_s * (Double)status.QuiescentCurrent_uA / initialBatteryLoad_uAs * 100.0; + } + + // Calculate battery assembly time + var actualDate = DateTime.UtcNow; + status.BatteryAssemblyDateTimeUtc = actualDate.AddSeconds(-(Double)status.ExceededLifeTime_s); + var timeDifference = actualDate - status.BatteryAssemblyDateTimeUtc; + // DaysPerMonth = 365.25 [Days/Year] / 12 [Months/Year] = 30.4375 + status.StorageMonths = timeDifference.GetValueOrDefault().TotalSeconds * MONTHS_FROM_SECONDS; + return true; } } } diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisStatus/packages.config b/Common/Hardware/WaterMeter/Genesis/GenesisStatus/packages.config index bf477414..e48cba92 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisStatus/packages.config +++ b/Common/Hardware/WaterMeter/Genesis/GenesisStatus/packages.config @@ -1,5 +1,5 @@  - - + + \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile00_0498_20210712163214982000.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile00_0498_20210712163214982000.bin new file mode 100644 index 00000000..7ba1ab9d Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile00_0498_20210712163214982000.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile01_0067_20210712163214982000.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile01_0067_20210712163214982000.bin new file mode 100644 index 00000000..bc7f4461 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile01_0067_20210712163214982000.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile04_0219_20210712163214982000.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile04_0219_20210712163214982000.bin new file mode 100644 index 00000000..9df6e928 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile04_0219_20210712163214982000.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile08_0017_20210712163214982000.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile08_0017_20210712163214982000.bin new file mode 100644 index 00000000..e70747e6 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile08_0017_20210712163214982000.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile09_0152_20210712163214982000.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile09_0152_20210712163214982000.bin new file mode 100644 index 00000000..114858a4 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile09_0152_20210712163214982000.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile0F_0287_20210712163214982000.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile0F_0287_20210712163214982000.bin new file mode 100644 index 00000000..491fbb8c Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile0F_0287_20210712163214982000.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile10_0476_20210712163214982000.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile10_0476_20210712163214982000.bin new file mode 100644 index 00000000..9e7f62ab Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile10_0476_20210712163214982000.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile11_0070_20210712163214982000.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile11_0070_20210712163214982000.bin new file mode 100644 index 00000000..aba8e0ef Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile11_0070_20210712163214982000.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile12_0107_20210712163214982000.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile12_0107_20210712163214982000.bin new file mode 100644 index 00000000..a9d0553e Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile12_0107_20210712163214982000.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile14_0198_20210712163214982000.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile14_0198_20210712163214982000.bin new file mode 100644 index 00000000..24818470 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile14_0198_20210712163214982000.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile15_0053_20210712163214982000.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile15_0053_20210712163214982000.bin new file mode 100644 index 00000000..4756cd5d Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile15_0053_20210712163214982000.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile18_1107_20210712163214982000.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile18_1107_20210712163214982000.bin new file mode 100644 index 00000000..100fb495 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/binfile18_1107_20210712163214982000.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/configuration.json b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/configuration.json new file mode 100644 index 00000000..d2daeafe --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/configuration.json @@ -0,0 +1,16726 @@ +{ + "CUSTOMER": { + "id": 9, + "version": { + "first": 1, + "last": 152 + }, + "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": 152 + }, + "statictype": "dynamic" + } + ] + }, + "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": 152 + }, + "statictype": "dynamic" + } + ] + }, + "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": 152 + }, + "statictype": "dynamic" + } + ] + }, + "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": 152 + }, + "statictype": "dynamic" + } + ] + }, + "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": 152 + }, + "statictype": "dynamic" + } + ] + }, + "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": 152 + }, + "statictype": "dynamic" + } + ] + }, + "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": 152 + }, + "statictype": "dynamic" + } + ] + }, + "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": 152 + }, + "statictype": "dynamic" + } + ] + }, + "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": 152 + }, + "statictype": "dynamic" + } + ] + }, + "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": 152 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "statictype": "static" + } + ] + }, + "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", + "version": { + "first": 61, + "last": 110 + }, + "values": { + "default": 639590, + "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": "Flow rate above which broken pipe alarm is set in 1/256 l/h", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 639590, + "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": "Flow rate above which broken pipe alarm is set in 1/256 l/h", + "version": { + "first": 119, + "last": 132 + }, + "values": { + "default": 639590, + "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": "Flow rate above which broken pipe alarm is set in 1/256 l/h", + "version": { + "first": 133, + "last": 152 + }, + "values": { + "default": 639999, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "values": { + "default": 360, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + } + ] + }, + "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 measurements in 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 measurements in 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 measurements in reverse flow required to set reverse flow alarm", + "version": { + "first": 143, + "last": 152 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "statictype": "dynamic" + } + ] + }, + "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": 152 + }, + "values": { + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 152 + }, + "values": { + "default": 180, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + } + ] + }, + "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", + "version": { + "first": 80, + "last": 110 + }, + "values": { + "default": 12800, + "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": "Flow rate above which leak alarm can be set in 1/256 l/h", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 12800, + "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": "Flow rate above which leak alarm can be set in 1/256 l/h", + "version": { + "first": 119, + "last": 132 + }, + "values": { + "default": 5529, + "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": "Flow rate above which leak alarm can be set in 1/256 l/h", + "version": { + "first": 133, + "last": 152 + }, + "values": { + "default": 6399, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "values": { + "default": 181440000 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 800 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 0, + "maximum": 4294967295 + }, + "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": 152 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "values": { + "default": 1600000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "values": { + "default": 30000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "statictype": "dynamic" + } + ] + }, + "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": 152 + }, + "statictype": "static" + } + ] + }, + "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": 152 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Time meter was determined to have been installed. 0 means not installed", + "version": { + "first": 147, + "last": 152 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 152 + }, + "statictype": "dynamic" + } + ] + }, + "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": 152 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "REBOOT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "REBOOT_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "LOW_BATTERY": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "LOW_BATTERY_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "VERY_LOW_BATTERY": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "VERY_LOW_BATTERY_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "CONFIG_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "CONFIG_ERROR_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "EMPTY_PIPE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "EMPTY_PIPE_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "MAGNETIC_TAMPER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "MAGNETIC_TAMPER_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + }, + "REVERSE_FLOW": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 12 + }, + "REVERSE_FLOW_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 13 + }, + "SUSPECT_LEAK": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 14 + }, + "SUSPECT_LEAK_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 15 + }, + "BROKEN_PIPE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 16 + }, + "BROKEN_PIPE_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 17 + }, + "LOW_PRESSURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 18 + }, + "LOW_PRESSURE_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 19 + }, + "HIGH_PRESSURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 20 + }, + "HIGH_PRESSURE_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 21 + }, + "LOW_TEMPERATURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 22 + }, + "LOW_TEMPERATURE_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 23 + }, + "HIGH_TEMPERATURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 24 + }, + "HIGH_TEMPERATURE_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 25 + }, + "RADIO_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 26 + }, + "RADIO_ERROR_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 27 + }, + "METROLOGY_PARAMS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 28 + }, + "METROLOGY_PARAMS_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 29 + }, + "METROLOGY_MEASURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 30 + }, + "METROLOGY_MEASURE_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 31 + }, + "UNALLOCATED_6": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 32 + }, + "UNALLOCATED_6_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 33 + }, + "UNALLOCATED_7": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 34 + }, + "UNALLOCATED_7_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 35 + }, + "UNALLOCATED_8": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 36 + }, + "UNALLOCATED_8_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 37 + }, + "UNALLOCATED_9": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 38 + }, + "UNALLOCATED_9_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 39 + }, + "UNALLOCATED_10": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 40 + }, + "UNALLOCATED_10_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 41 + }, + "UNALLOCATED_11": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 42 + }, + "UNALLOCATED_11_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 43 + }, + "UNALLOCATED_12": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 44 + }, + "UNALLOCATED_12_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 45 + }, + "UNALLOCATED_13": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 46 + }, + "UNALLOCATED_13_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 47 + }, + "UNALLOCATED_14": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 48 + }, + "UNALLOCATED_14_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 49 + }, + "UNALLOCATED_15": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 50 + }, + "UNALLOCATED_15_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 51 + }, + "UNALLOCATED_16": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 52 + }, + "UNALLOCATED_16_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 53 + }, + "UNALLOCATED_17": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 54 + }, + "UNALLOCATED_17_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 55 + }, + "UNALLOCATED_18": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 56 + }, + "UNALLOCATED_18_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 57 + }, + "UNALLOCATED_19": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 58 + }, + "UNALLOCATED_19_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 59 + }, + "UNALLOCATED_20": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 60 + }, + "UNALLOCATED_20_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 61 + }, + "UNALLOCATED_21": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 62 + }, + "UNALLOCATED_21_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 63 + }, + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 64 + }, + "LOCALE_UNDEFINED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 65 + }, + "NO_SUCH_ALARM": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 66 + }, + "OUT_OF_RANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 67 + }, + "NOT_IMPLEMENTED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 68 + }, + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 69 + }, + "DID_NOT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 70 + }, + "STORE_PENDING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 71 + } + } + }, + "FUNCTEST": { + "id": 10, + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "statictype": null + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "BAD_TEST": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "NO_RESULT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + } + } + }, + "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": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "INVALID_SUBREASON": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "INVALID_BAUDRATE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "INVALID_BUFFERSIZE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "CRCFAILURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "UNRECOGNISEDCMD": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "FRAMING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "OVERFLOW": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "PACKETTIMEOUT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "INVALIDESCAPE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "TRAINING_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + }, + "NOBREAK": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 12 + } + } + }, + "SENSUSRADIO": { + "id": 16, + "version": { + "first": 100, + "last": 477 + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 3600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 7, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 433, + "minimum": 433, + "maximum": 868 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": -32768, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 127 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": -32768, + "maximum": 32767 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 25, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 360, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 2500, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 180, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 160, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 50, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 477 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 15 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1000 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 3 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 207, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 29, + "minimum": 0, + "maximum": 250 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "EncryptionKey": { + "id": 44, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "statictype": "static" + } + ] + }, + "Authentification": { + "id": 45, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "CustomerText": { + "id": 47, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "Tfx_Structure": { + "id": 54, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "statictype": "dynamic" + } + ] + }, + "Dewa_Structure": { + "id": 55, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 127 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + } + ] + }, + "StoreConfiguration": { + "id": 66, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 477 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 412, + "last": 477 + }, + "values": { + "default": 4320000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 412, + "last": 477 + }, + "values": { + "default": 1000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 477 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 477 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 477 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 477 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "NO_CHANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + } + } + }, + "CONFIGEXCHANGE": { + "id": 4, + "version": { + "first": 3, + "last": 219 + }, + "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": 219 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 8 + }, + "statictype": "dynamic" + } + ] + }, + "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": 219 + }, + "statictype": "dynamic" + } + ] + }, + "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": 219 + }, + "statictype": "dynamic" + } + ] + }, + "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": 219 + }, + "statictype": "dynamic" + } + ] + }, + "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": 219 + }, + "statictype": "dynamic" + } + ] + }, + "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": 219 + }, + "statictype": "dynamic" + } + ] + }, + "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": 219 + }, + "statictype": "dynamic" + } + ] + }, + "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": 219 + }, + "statictype": "dynamic" + } + ] + }, + "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": 219 + }, + "statictype": "dynamic" + } + ] + }, + "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": 219 + }, + "statictype": "dynamic" + } + ] + }, + "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": 219 + }, + "statictype": "dynamic" + } + ] + }, + "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": 219 + }, + "statictype": "static" + } + ] + }, + "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": 219 + }, + "statictype": "static" + } + ] + }, + "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": 219 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "LOCKED_OUT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "AUTHENTICATION_FAILURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "ACCESS_DENIED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "IN_USE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "SIZES_DONT_MATCH": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "CANT_READ_CONFIG_FILE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "USER_NOT_KNOWN": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "CANT_CREATE_CONFIG_FILE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "STORE_DIDNT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "STORE_CORRUPT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "EXPECTED_WRITE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + }, + "EXPECTED_READ": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 12 + }, + "STOP_CYCLING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 13 + }, + "TOO_MANY_OPEN": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 14 + }, + "NEVER_OPENED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 15 + }, + "FILE_PROTECTED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 16 + }, + "PARTIAL_RECALL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 17 + }, + "DEFAULT_PASSWORD_USED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 18 + } + } + }, + "NFC": { + "id": 21, + "version": { + "first": 1, + "last": 53 + }, + "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": 53 + }, + "statictype": "dynamic" + } + ] + }, + "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": 53 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "NDEF_WRITE_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "NDEF_VERIFY_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "NDEF_UPDATE_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "RMA_WRITE_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "RMA_VERIFY_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "RMA_BAD_ENTRY": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "INIT_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "NDEF_CONFIG_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "RMA_CONFIG_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "NDEF_START_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "RMA_START_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + } + } + }, + "SYSTEM": { + "id": 0, + "version": { + "first": 141, + "last": 498 + }, + "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": 498 + }, + "statictype": "dynamic" + } + ] + }, + "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": 498 + }, + "statictype": "dynamic" + } + ] + }, + "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": 498 + }, + "values": { + "default": "" + }, + "statictype": "static" + } + ] + }, + "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": 498 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 498 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 498 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 498 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 498 + }, + "statictype": "dynamic" + } + ] + }, + "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": 498 + }, + "statictype": "dynamic" + } + ] + }, + "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": 498 + }, + "statictype": "static" + } + ] + }, + "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": 498 + }, + "statictype": "dynamic" + } + ] + }, + "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": 498 + }, + "statictype": "dynamic" + } + ] + }, + "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": 498 + }, + "statictype": "static" + } + ] + }, + "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": 498 + }, + "statictype": "dynamic" + } + ] + }, + "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": 498 + }, + "statictype": "static" + } + ] + } + }, + "status": { + "OK": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "ZERO_APPS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "NO_MEMORY": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "NOT_IMPLEMENTED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "BLOCK_NOT_FOUND": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "NO_SUCH_VAR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "NO_CLIB": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "KEY_FAILURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "NO_SLOTS_FREE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "VECTOR_OUT_OF_RANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "BAD_VECTOR_RELEASE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "DRIVER_BUSY": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + }, + "OUT_OF_RANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 12 + }, + "CANT_CANCEL_TICK": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 13 + }, + "ID_OUT_OF_RANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 14 + }, + "HANDLE_OUT_OF_RANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 15 + }, + "INCAPABLE_HARDWARE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 16 + }, + "ALREADY_OPEN": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 17 + }, + "STRING_TOO_LONG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 18 + }, + "CORRUPT_CONFIGURATION": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 19 + }, + "TIMEOUT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 20 + }, + "NO_PRIVILEGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 21 + }, + "DEVICE_DORMANT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 22 + }, + "MEDIA_FAILURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 23 + }, + "BUFFER_OVERFLOW": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 24 + }, + "UPGRADE_SYNTAX_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 25 + }, + "UPGRADE_DEPENDENCY_NOT_MET": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 26 + }, + "UPGRADE_MISSING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 27 + }, + "UPGRADE_FRAGMENTED_BY_CLIB": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 28 + }, + "TRUNCATED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 29 + }, + "INVALID_HEADER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 30 + }, + "WONT_DELETE_CLIB": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 31 + }, + "BAD_REGISTER_VALUE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 32 + }, + "NO_CHANGE_MADE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 33 + }, + "NOT_ATOMIC": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 34 + }, + "CALENDAR_CHANGED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 35 + }, + "WORM_FIELD": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 36 + }, + "CONVERSION_UNSUPPORTED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 37 + }, + "CPU_PERMISSION_FAULT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 38 + }, + "CPU_SOFTWARE_FAULT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 39 + }, + "CPU_DECODE_FAULT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 40 + }, + "CPU_ADDRESS_ACCESS_FAULT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 41 + }, + "CPU_UNCAUGHT_FAULT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 42 + }, + "ACCURACY_LOST": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 43 + }, + "EXIT_FAILURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 44 + }, + "CANT_CANCEL_CALLBACK": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 45 + }, + "RECOVERED_SPACE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 46 + }, + "DRIVE_FULL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 47 + }, + "NO_FILE_HANDLES_AVAILABLE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 48 + }, + "EXCESSIVE_RESTARTS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 49 + }, + "MPU_SETUP_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 50 + }, + "DEVICE_NOT_OPEN": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 51 + }, + "NO_RESPONSE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 52 + } + } + }, + "METROLOGYASST": { + "id": 18, + "version": { + "first": 4, + "last": 107 + }, + "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": 107 + }, + "statictype": "static" + } + ] + }, + "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": 107 + }, + "statictype": "dynamic" + } + ] + }, + "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": 107 + }, + "values": { + "default": 32000, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 107 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 7 + }, + "statictype": "static" + } + ] + }, + "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": 4294967295 + }, + "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": 4294967295 + }, + "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": 107 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 107 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 8 + }, + "statictype": "static" + } + ] + }, + "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": 107 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 4 + }, + "statictype": "static" + } + ] + }, + "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": 107 + }, + "statictype": "static" + } + ] + }, + "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 – Celcius, 1 – 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 – Celcius, 1 – Fahrenheit.", + "version": { + "first": 82, + "last": 107 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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 – Mpa, 1 – 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 – Mpa, 1 – PSI.", + "version": { + "first": 82, + "last": 107 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 107 + }, + "values": { + "default": 60000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 107 + }, + "values": { + "default": 0, + "minimum": -2000000, + "maximum": 2000000 + }, + "statictype": "static" + } + ] + }, + "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": 107 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 107 + }, + "statictype": "dynamic" + } + ] + }, + "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": 107 + }, + "statictype": "dynamic" + } + ] + }, + "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": 107 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "dynamic" + } + ] + }, + "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": 107 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "dynamic" + } + ] + }, + "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": 107 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 107 + }, + "values": { + "minimum": 0, + "maximum": 7 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "DID_NOT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "PENDING_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + } + } + }, + "LOGGER": { + "id": 8, + "version": { + "first": 1, + "last": 17 + }, + "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": 17 + }, + "values": { + "default": 4096, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 17 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 17 + }, + "statictype": "dynamic" + } + ] + }, + "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": 17 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "RESTARTED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "BLOCK_LISTING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "PENDING_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "DID_NOT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + } + } + }, + "TESTMANAGER": { + "id": 98, + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": null + }, + "statictype": null + } + ] + } + }, + "status": { + "FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "READ_ONLY_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "BUSY": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "STRING_TOO_LONG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "FOPEN_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "FSEEK_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "FWRITE_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "FCLOSE_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "MALFORMED_FILENAME": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "UNKNOWN_ACTION": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "FILEREMOVE_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + }, + "FREAD_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 12 + } + } + }, + "PERIODICLOG": { + "id": 17, + "version": { + "first": 1, + "last": 70 + }, + "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": 70 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 70 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "status": { + "FOPEN": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "STRING_TOO_LONG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "FILES_IN_USE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + } + } + }, + "POWERMON": { + "id": 1, + "version": { + "first": 17, + "last": 67 + }, + "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": 67 + }, + "statictype": "dynamic" + } + ] + }, + "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": 67 + }, + "values": { + "default": "Tadiran" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 67 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 67 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 67 + }, + "values": { + "default": 36, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 67 + }, + "values": { + "default": 28, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 67 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 67 + }, + "statictype": "dynamic" + } + ] + }, + "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": 67 + }, + "statictype": "dynamic" + } + ] + }, + "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": 67 + }, + "values": { + "default": 473040000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 67 + }, + "values": { + "default": 19000, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 67 + }, + "statictype": "dynamic" + } + ] + }, + "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": 67 + }, + "values": { + "default": 96, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + } + }, + "status": { + "TABLE_FULL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "OUT_OF_RANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "STOP_CYCLING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "TEMPERATURE_LIMIT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "BATTERY_STATUS_CHANGED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "BATTERY_CRITICAL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "PENDING_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "DID_NOT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + } + } + }, + "GENESISFLOW": { + "id": 15, + "version": { + "first": 7, + "last": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 204 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 204 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 204 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": "WO", + "lvl4": "NA", + "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": 268, + "last": 295 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "WO", + "lvl4": "NA", + "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": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "WO", + "lvl4": "NA", + "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": 500, + "last": 508 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "WO", + "lvl4": "NA", + "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": 601, + "last": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "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": 295 + }, + "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": 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": 508 + }, + "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": 605 + }, + "values": { + "default": 137438, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + } + }, + "status": { + "BAD_TEST": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "DID_NOT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "STORE_PENDING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "STORE_BUFFER_SIZE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "STRING_TOO_LONG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "BAD_DISPLAY_MODE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "GLASS_TOO_LONG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "SLOT_NOT_YOURS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "SUBLIST_TOO_LONG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "NO_TEMP_SENSOR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "UNDER_TEMP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + }, + "LOW_TEMP_WARNING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 12 + }, + "HIGH_TEMP_WARNING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 13 + }, + "OVER_TEMP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 14 + }, + "MISMATCHING_LSB": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 15 + }, + "OUT_OF_RANGE_PWDIFF": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 16 + }, + "OUT_OF_RANGE_AMPLITUDE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 17 + }, + "OUT_OF_RANGE_TOF": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 18 + }, + "OUT_OF_RANGE_DTOF": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 19 + }, + "TOF_TIMEOUT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 20 + }, + "CAL_CHANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 21 + }, + "OUT_OF_RANGE_INTERVAL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 22 + }, + "VALIDATE_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 23 + }, + "OUT_OF_RANGE_TEMP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 24 + }, + "NOT_READY": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 25 + }, + "METROLOGY_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 26 + }, + "GP30_ID_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 27 + }, + "GP30_FLAG_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 28 + }, + "GP30_TIMEOUT_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 29 + }, + "GP30_REQUEST_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 30 + }, + "GP30_SEQ_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 31 + }, + "VALUE_SEALED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 32 + }, + "IN_TEST_MODE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 33 + }, + "UNKNOWN_STATE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 34 + }, + "DISPLAY_INIT_SUCCEEDED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 35 + }, + "DISPLAY_INIT_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 36 + }, + "GP30_INIT_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 37 + }, + "START_TIMER_SUCCEEDED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 38 + }, + "START_TIMER_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 39 + }, + "VOLUME_STORE_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 40 + }, + "EMPTY_PIPE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 41 + }, + "PARAMETER_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 42 + }, + "GP30_INTERNAL_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 43 + }, + "GLASS_TOO_SHORT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 44 + }, + "STORE_CAL_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 45 + }, + "STORE_CONF_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 46 + }, + "MODE_CHANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 47 + }, + "BAD_POW10": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 48 + }, + "BAD_DECIMAL_SEPARATOR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 49 + }, + "BAD_UNITS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 50 + }, + "BAD_ICONS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 51 + }, + "BAD_THOUSAND_SEPARATOR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 52 + }, + "NEW_LOCALE_REJECTED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 53 + }, + "SET_ACCUMULATORS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 54 + }, + "SEAL_OPENED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 55 + }, + "CALIBRATION_RECALL_INCOMPLETE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 56 + }, + "BAD_AMR_SETTINGS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 57 + }, + "SUSPECT_CYCLE_SKIP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 58 + } + } + }, + "IRDA": { + "id": 20, + "version": { + "first": 10, + "last": 198 + }, + "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": 198 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 198 + }, + "values": { + "default": 3, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 198 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 198 + }, + "statictype": "dynamic" + } + ] + }, + "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": 53 + }, + "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": 198 + }, + "values": { + "default": 8, + "minimum": 0, + "maximum": 9 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 198 + }, + "values": { + "default": 0, + "minimum": -9, + "maximum": 0 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 198 + }, + "values": { + "default": 268, + "minimum": 0, + "maximum": 268 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "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": 161, + "last": 198 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 198 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 198 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 198 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "BAD_LENGTH": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "OUT_OF_RANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "PENDING_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "DID_NOT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "TOO_MANY_BYTES": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + } + } + }, + "NA2WALARMS": { + "id": 23, + "version": { + "first": 41, + "last": 98 + }, + "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": 98 + }, + "statictype": "dynamic" + } + ] + }, + "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": 98 + }, + "values": { + "default": 561047, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "status": { + "SENSOR_INVALID": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "ALARM_INVALID": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "UNIMPLEMENTED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "UNCONFIGURED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "CONFIG_INVALID": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "NO_LATEST": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "FIXED_TYPE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "PREDEF_SET": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "USERDEF_VOLUME_SET": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "USERDEF_TEMPERATURE_SET": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "USERDEF_PRESSURE_SET": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + }, + "PREDEF_CLEAR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 12 + }, + "USERDEF_VOLUME_CLEAR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 13 + }, + "USERDEF_TEMPERATURE_CLEAR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 14 + }, + "USERDEF_PRESSURE_CLEAR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 15 + }, + "DID_NOT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 16 + }, + "STORE_PENDING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 17 + }, + "PREDEF_BACKUP_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 18 + }, + "PREDEF_RESTORE_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 19 + }, + "USERDEF_BACKUP_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 20 + }, + "USERDEF_RESTORE_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 21 + }, + "USERDEF_UNSUPPORTED_TYPE_FOR_SENSOR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 22 + } + } + }, + "NA2WLOGGER": { + "id": 22, + "version": { + "first": 1, + "last": 195 + }, + "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": 195 + }, + "statictype": "dynamic" + } + ] + }, + "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": 195 + }, + "statictype": "static" + } + ] + } + } + }, + "FLEXNETVERSION": { + "id": 24, + "version": { + "first": 1, + "last": 9999 + } + }, + "FLEXNETSERIAL": { + "id": 26, + "version": { + "first": 1, + "last": 17 + }, + "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": "Lorem Ipsum", + "version": { + "first": 2, + "last": 17 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem Ipsum", + "version": { + "first": 2, + "last": 17 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "TOO_MANY_APPS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + } + } + } +} diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/rowproduct_433.txt b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/rowproduct_433.txt new file mode 100644 index 00000000..e2874157 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1107_433MHz/rowproduct_433.txt @@ -0,0 +1,39 @@ +Release summary for product 1.69 + + Block ./Zero/objects/zero + Id 0x00, CRC 0x3F95, size 36868 bytes, version 4.98 + + Block ../../Applications/PowerMon/powermon + Id 0x01, CRC 0x9ACE, size 3068 bytes, version 0.67 + + Block ../../Applications/ConfigExchange/configex + Id 0x04, CRC 0xF967, size 8036 bytes, version 2.19 + + Block ../../Applications/Logger/logger + Id 0x08, CRC 0xDC48, size 3972 bytes, version 0.17 + + Block ../../Applications/PeriodicLogging/periodiclog + Id 0x11, CRC 0x92E5, size 12540 bytes, version 0.70 + + Block ../../Applications/Communications/SensusRFRadio/SensusRF_433 + Id 0x10, CRC 0x731F, size 79504 bytes, version 4.76 + + Block ../../Applications/Metrology/Water/GenesisFlow/genesisflow + Id 0x0F, CRC 0x8228, size 23300 bytes, version 2.87 + + Block ../../Applications/Customer/GenesisDefault/customer + Id 0x09, CRC 0xE3CF, size 6104 bytes, version 1.52 + + Block ../../Applications/MetrologyAssistant/assistant + Id 0x12, CRC 0xF798, size 7728 bytes, version 1.07 + + Block ../../Applications/Communications/IrDA/irda + Id 0x14, CRC 0x8376, size 23144 bytes, version 1.98 + + Block ../../Applications/Communications/NFC/nfc + Id 0x15, CRC 0xB3D8, size 6424 bytes, version 0.53 + + Block ../../Applications/FlexNetVersion/flexnetversion + Id 0x18, CRC 0xB848, size 116 bytes, version 11.07 +Minimum supported core revision: "Cordonel 1.62" +Maximum supported core revision: "Cordonel 1.69" diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile00_0517_20220717221233950345.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile00_0517_20220717221233950345.bin new file mode 100644 index 00000000..b31aced4 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile00_0517_20220717221233950345.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile01_0068_20220717221233950345.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile01_0068_20220717221233950345.bin new file mode 100644 index 00000000..a7166801 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile01_0068_20220717221233950345.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile04_0226_20220717221233950345.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile04_0226_20220717221233950345.bin new file mode 100644 index 00000000..428ec674 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile04_0226_20220717221233950345.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile08_0018_20220717221233950345.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile08_0018_20220717221233950345.bin new file mode 100644 index 00000000..6ff6b89e Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile08_0018_20220717221233950345.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile09_0155_20220717221233950345.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile09_0155_20220717221233950345.bin new file mode 100644 index 00000000..bba30162 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile09_0155_20220717221233950345.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile0F_0302_20220717221233950345.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile0F_0302_20220717221233950345.bin new file mode 100644 index 00000000..a6f8ae65 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile0F_0302_20220717221233950345.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile10_0493_20220717221233950345.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile10_0493_20220717221233950345.bin new file mode 100644 index 00000000..b272973f Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile10_0493_20220717221233950345.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile11_0073_20220717221233950345.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile11_0073_20220717221233950345.bin new file mode 100644 index 00000000..f05a76ee Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile11_0073_20220717221233950345.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile12_0111_20220717221233950345.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile12_0111_20220717221233950345.bin new file mode 100644 index 00000000..52bc3565 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile12_0111_20220717221233950345.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile14_0206_20220717221233950345.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile14_0206_20220717221233950345.bin new file mode 100644 index 00000000..d1b13f5e Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile14_0206_20220717221233950345.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile15_0057_20220717221233950345.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile15_0057_20220717221233950345.bin new file mode 100644 index 00000000..cde75512 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile15_0057_20220717221233950345.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile18_1247_20220717221233950345.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile18_1247_20220717221233950345.bin new file mode 100644 index 00000000..61656b5e Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/binfile18_1247_20220717221233950345.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/configuration.json b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/configuration.json new file mode 100644 index 00000000..6c6066aa --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/configuration.json @@ -0,0 +1,16920 @@ +{ + "CUSTOMER": { + "id": 9, + "version": { + "first": 1, + "last": 155 + }, + "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": 155 + }, + "statictype": "dynamic" + } + ] + }, + "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": 155 + }, + "statictype": "dynamic" + } + ] + }, + "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": 155 + }, + "statictype": "dynamic" + } + ] + }, + "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": 155 + }, + "statictype": "dynamic" + } + ] + }, + "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": 155 + }, + "statictype": "dynamic" + } + ] + }, + "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": 155 + }, + "statictype": "dynamic" + } + ] + }, + "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": 155 + }, + "statictype": "dynamic" + } + ] + }, + "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": 155 + }, + "statictype": "dynamic" + } + ] + }, + "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": 155 + }, + "statictype": "dynamic" + } + ] + }, + "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": 155 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "statictype": "static" + } + ] + }, + "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", + "version": { + "first": 61, + "last": 110 + }, + "values": { + "default": 639590, + "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": "Flow rate above which broken pipe alarm is set in 1/256 l/h", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 639590, + "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": "Flow rate above which broken pipe alarm is set in 1/256 l/h", + "version": { + "first": 119, + "last": 132 + }, + "values": { + "default": 639590, + "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": "Flow rate above which broken pipe alarm is set in 1/256 l/h", + "version": { + "first": 133, + "last": 155 + }, + "values": { + "default": 639999, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "values": { + "default": 360, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + } + ] + }, + "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 measurements in 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 measurements in 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 measurements in reverse flow required to set reverse flow alarm", + "version": { + "first": 143, + "last": 155 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "statictype": "dynamic" + } + ] + }, + "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": 155 + }, + "values": { + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 155 + }, + "values": { + "default": 180, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + } + ] + }, + "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", + "version": { + "first": 80, + "last": 110 + }, + "values": { + "default": 12800, + "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": "Flow rate above which leak alarm can be set in 1/256 l/h", + "version": { + "first": 111, + "last": 118 + }, + "values": { + "default": 12800, + "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": "Flow rate above which leak alarm can be set in 1/256 l/h", + "version": { + "first": 119, + "last": 132 + }, + "values": { + "default": 5529, + "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": "Flow rate above which leak alarm can be set in 1/256 l/h", + "version": { + "first": 133, + "last": 155 + }, + "values": { + "default": 6399, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "values": { + "default": 181440000 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 800 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 0, + "maximum": 4294967295 + }, + "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": 155 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "values": { + "default": 1600000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "values": { + "default": 30000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "statictype": "dynamic" + } + ] + }, + "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": 155 + }, + "statictype": "static" + } + ] + }, + "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": 155 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Time meter was determined to have been installed. 0 means not installed", + "version": { + "first": 147, + "last": 155 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 155 + }, + "statictype": "dynamic" + } + ] + }, + "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": 155 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "REBOOT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "REBOOT_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "LOW_BATTERY": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "LOW_BATTERY_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "VERY_LOW_BATTERY": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "VERY_LOW_BATTERY_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "CONFIG_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "CONFIG_ERROR_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "EMPTY_PIPE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "EMPTY_PIPE_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "MAGNETIC_TAMPER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "MAGNETIC_TAMPER_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + }, + "REVERSE_FLOW": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 12 + }, + "REVERSE_FLOW_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 13 + }, + "SUSPECT_LEAK": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 14 + }, + "SUSPECT_LEAK_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 15 + }, + "BROKEN_PIPE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 16 + }, + "BROKEN_PIPE_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 17 + }, + "LOW_PRESSURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 18 + }, + "LOW_PRESSURE_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 19 + }, + "HIGH_PRESSURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 20 + }, + "HIGH_PRESSURE_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 21 + }, + "LOW_TEMPERATURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 22 + }, + "LOW_TEMPERATURE_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 23 + }, + "HIGH_TEMPERATURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 24 + }, + "HIGH_TEMPERATURE_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 25 + }, + "RADIO_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 26 + }, + "RADIO_ERROR_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 27 + }, + "METROLOGY_PARAMS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 28 + }, + "METROLOGY_PARAMS_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 29 + }, + "METROLOGY_MEASURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 30 + }, + "METROLOGY_MEASURE_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 31 + }, + "UNALLOCATED_6": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 32 + }, + "UNALLOCATED_6_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 33 + }, + "UNALLOCATED_7": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 34 + }, + "UNALLOCATED_7_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 35 + }, + "UNALLOCATED_8": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 36 + }, + "UNALLOCATED_8_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 37 + }, + "UNALLOCATED_9": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 38 + }, + "UNALLOCATED_9_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 39 + }, + "UNALLOCATED_10": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 40 + }, + "UNALLOCATED_10_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 41 + }, + "UNALLOCATED_11": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 42 + }, + "UNALLOCATED_11_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 43 + }, + "UNALLOCATED_12": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 44 + }, + "UNALLOCATED_12_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 45 + }, + "UNALLOCATED_13": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 46 + }, + "UNALLOCATED_13_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 47 + }, + "UNALLOCATED_14": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 48 + }, + "UNALLOCATED_14_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 49 + }, + "UNALLOCATED_15": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 50 + }, + "UNALLOCATED_15_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 51 + }, + "UNALLOCATED_16": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 52 + }, + "UNALLOCATED_16_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 53 + }, + "UNALLOCATED_17": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 54 + }, + "UNALLOCATED_17_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 55 + }, + "UNALLOCATED_18": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 56 + }, + "UNALLOCATED_18_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 57 + }, + "UNALLOCATED_19": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 58 + }, + "UNALLOCATED_19_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 59 + }, + "UNALLOCATED_20": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 60 + }, + "UNALLOCATED_20_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 61 + }, + "UNALLOCATED_21": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 62 + }, + "UNALLOCATED_21_STOP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 63 + }, + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 64 + }, + "LOCALE_UNDEFINED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 65 + }, + "NO_SUCH_ALARM": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 66 + }, + "OUT_OF_RANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 67 + }, + "NOT_IMPLEMENTED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 68 + }, + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 69 + }, + "DID_NOT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 70 + }, + "STORE_PENDING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 71 + } + } + }, + "FUNCTEST": { + "id": 10, + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": 1003 + }, + "statictype": null + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "BAD_TEST": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "NO_RESULT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + } + } + }, + "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": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "INVALID_SUBREASON": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "INVALID_BAUDRATE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "INVALID_BUFFERSIZE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "CRCFAILURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "UNRECOGNISEDCMD": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "FRAMING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "OVERFLOW": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "PACKETTIMEOUT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "INVALIDESCAPE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "TRAINING_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + }, + "NOBREAK": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 12 + } + } + }, + "SENSUSRADIO": { + "id": 16, + "version": { + "first": 100, + "last": 493 + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 3600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 7, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 433, + "minimum": 433, + "maximum": 868 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": -32768, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 127 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": -32768, + "maximum": 32767 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 25, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 360, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 2500, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 180, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 160, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 50, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 493 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 15 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1000 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 3 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 207, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 29, + "minimum": 0, + "maximum": 250 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "EncryptionKey": { + "id": 44, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "statictype": "static" + } + ] + }, + "Authentification": { + "id": 45, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "CustomerText": { + "id": 47, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "Tfx_Structure": { + "id": 54, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "statictype": "dynamic" + } + ] + }, + "Dewa_Structure": { + "id": 55, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 127 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + } + ] + }, + "StoreConfiguration": { + "id": 66, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 100, + "last": 493 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 412, + "last": 493 + }, + "values": { + "default": 4320000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem ipsum", + "version": { + "first": 412, + "last": 493 + }, + "values": { + "default": 1000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 493 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 493 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 493 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 493 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "PressureCalibration": { + "id": 74, + "details": [ + { + "type": "int16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 483, + "last": 493 + }, + "values": { + "default": 0, + "minimum": -128, + "maximum": 127 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "TfxSecondaryChannelInfo_1": { + "id": 75, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 482, + "last": 493 + }, + "values": { + "default": 0, + "minimum": -128, + "maximum": 127 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "TfxSecondaryChannelInfo_2": { + "id": 76, + "details": [ + { + "type": "int32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Lorem ipsum", + "version": { + "first": 482, + "last": 493 + }, + "values": { + "default": 0, + "minimum": -128, + "maximum": 127 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "NO_CHANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + } + } + }, + "CONFIGEXCHANGE": { + "id": 4, + "version": { + "first": 3, + "last": 226 + }, + "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": 226 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 8 + }, + "statictype": "dynamic" + } + ] + }, + "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": 226 + }, + "statictype": "dynamic" + } + ] + }, + "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": 226 + }, + "statictype": "dynamic" + } + ] + }, + "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": 226 + }, + "statictype": "dynamic" + } + ] + }, + "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": 226 + }, + "statictype": "dynamic" + } + ] + }, + "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": 226 + }, + "statictype": "dynamic" + } + ] + }, + "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": 226 + }, + "statictype": "dynamic" + } + ] + }, + "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": 226 + }, + "statictype": "dynamic" + } + ] + }, + "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": 226 + }, + "statictype": "dynamic" + } + ] + }, + "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": 226 + }, + "statictype": "dynamic" + } + ] + }, + "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": 226 + }, + "statictype": "dynamic" + } + ] + }, + "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": 226 + }, + "statictype": "static" + } + ] + }, + "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": 226 + }, + "statictype": "static" + } + ] + }, + "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": 226 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "LOCKED_OUT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "AUTHENTICATION_FAILURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "ACCESS_DENIED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "IN_USE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "SIZES_DONT_MATCH": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "CANT_READ_CONFIG_FILE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "USER_NOT_KNOWN": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "CANT_CREATE_CONFIG_FILE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "STORE_DIDNT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "STORE_CORRUPT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "EXPECTED_WRITE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + }, + "EXPECTED_READ": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 12 + }, + "STOP_CYCLING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 13 + }, + "TOO_MANY_OPEN": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 14 + }, + "NEVER_OPENED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 15 + }, + "FILE_PROTECTED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 16 + }, + "PARTIAL_RECALL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 17 + }, + "DEFAULT_PASSWORD_USED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 18 + } + } + }, + "NFC": { + "id": 21, + "version": { + "first": 1, + "last": 57 + }, + "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": 57 + }, + "statictype": "dynamic" + } + ] + }, + "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": 57 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "NDEF_WRITE_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "NDEF_VERIFY_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "NDEF_UPDATE_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "RMA_WRITE_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "RMA_VERIFY_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "RMA_BAD_ENTRY": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "INIT_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "NDEF_CONFIG_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "RMA_CONFIG_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "NDEF_START_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "RMA_START_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + } + } + }, + "SYSTEM": { + "id": 0, + "version": { + "first": 141, + "last": 517 + }, + "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": 517 + }, + "statictype": "dynamic" + } + ] + }, + "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": 517 + }, + "statictype": "dynamic" + } + ] + }, + "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": 517 + }, + "values": { + "default": "" + }, + "statictype": "static" + } + ] + }, + "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": 517 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 517 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 517 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 517 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 517 + }, + "statictype": "dynamic" + } + ] + }, + "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": 517 + }, + "statictype": "dynamic" + } + ] + }, + "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": 517 + }, + "statictype": "static" + } + ] + }, + "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": 517 + }, + "statictype": "dynamic" + } + ] + }, + "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": 517 + }, + "statictype": "dynamic" + } + ] + }, + "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": 517 + }, + "statictype": "static" + } + ] + }, + "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": 517 + }, + "statictype": "dynamic" + } + ] + }, + "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": 517 + }, + "statictype": "static" + } + ] + } + }, + "status": { + "OK": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "ZERO_APPS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "NO_MEMORY": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "NOT_IMPLEMENTED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "BLOCK_NOT_FOUND": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "NO_SUCH_VAR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "NO_CLIB": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "KEY_FAILURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "NO_SLOTS_FREE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "VECTOR_OUT_OF_RANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "BAD_VECTOR_RELEASE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "DRIVER_BUSY": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + }, + "OUT_OF_RANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 12 + }, + "CANT_CANCEL_TICK": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 13 + }, + "ID_OUT_OF_RANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 14 + }, + "HANDLE_OUT_OF_RANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 15 + }, + "INCAPABLE_HARDWARE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 16 + }, + "ALREADY_OPEN": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 17 + }, + "STRING_TOO_LONG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 18 + }, + "CORRUPT_CONFIGURATION": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 19 + }, + "TIMEOUT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 20 + }, + "NO_PRIVILEGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 21 + }, + "DEVICE_DORMANT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 22 + }, + "MEDIA_FAILURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 23 + }, + "BUFFER_OVERFLOW": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 24 + }, + "UPGRADE_SYNTAX_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 25 + }, + "UPGRADE_DEPENDENCY_NOT_MET": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 26 + }, + "UPGRADE_MISSING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 27 + }, + "UPGRADE_FRAGMENTED_BY_CLIB": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 28 + }, + "TRUNCATED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 29 + }, + "INVALID_HEADER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 30 + }, + "WONT_DELETE_CLIB": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 31 + }, + "BAD_REGISTER_VALUE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 32 + }, + "NO_CHANGE_MADE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 33 + }, + "NOT_ATOMIC": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 34 + }, + "CALENDAR_CHANGED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 35 + }, + "WORM_FIELD": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 36 + }, + "CONVERSION_UNSUPPORTED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 37 + }, + "CPU_PERMISSION_FAULT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 38 + }, + "CPU_SOFTWARE_FAULT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 39 + }, + "CPU_DECODE_FAULT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 40 + }, + "CPU_ADDRESS_ACCESS_FAULT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 41 + }, + "CPU_UNCAUGHT_FAULT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 42 + }, + "ACCURACY_LOST": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 43 + }, + "EXIT_FAILURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 44 + }, + "CANT_CANCEL_CALLBACK": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 45 + }, + "RECOVERED_SPACE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 46 + }, + "DRIVE_FULL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 47 + }, + "NO_FILE_HANDLES_AVAILABLE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 48 + }, + "EXCESSIVE_RESTARTS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 49 + }, + "MPU_SETUP_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 50 + }, + "DEVICE_NOT_OPEN": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 51 + }, + "NO_RESPONSE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 52 + } + } + }, + "METROLOGYASST": { + "id": 18, + "version": { + "first": 4, + "last": 111 + }, + "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": 111 + }, + "statictype": "static" + } + ] + }, + "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": 111 + }, + "statictype": "dynamic" + } + ] + }, + "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": 111 + }, + "values": { + "default": 32000, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 111 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 7 + }, + "statictype": "static" + } + ] + }, + "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": 4294967295 + }, + "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": 4294967295 + }, + "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": 111 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 111 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 8 + }, + "statictype": "static" + } + ] + }, + "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": 111 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 4 + }, + "statictype": "static" + } + ] + }, + "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": 111 + }, + "statictype": "static" + } + ] + }, + "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 – Celcius, 1 – 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 – Celcius, 1 – Fahrenheit.", + "version": { + "first": 82, + "last": 111 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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 – Mpa, 1 – 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 – Mpa, 1 – PSI.", + "version": { + "first": 82, + "last": 111 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 111 + }, + "values": { + "default": 60000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 111 + }, + "values": { + "default": 0, + "minimum": -2000000, + "maximum": 2000000 + }, + "statictype": "static" + } + ] + }, + "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": 111 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 111 + }, + "statictype": "dynamic" + } + ] + }, + "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": 111 + }, + "statictype": "dynamic" + } + ] + }, + "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": 111 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "dynamic" + } + ] + }, + "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": 111 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "dynamic" + } + ] + }, + "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": 111 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 111 + }, + "values": { + "minimum": 0, + "maximum": 7 + }, + "statictype": "dynamic" + } + ] + }, + "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 + }, + "statictype": "static" + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "DID_NOT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "PENDING_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + } + } + }, + "LOGGER": { + "id": 8, + "version": { + "first": 1, + "last": 18 + }, + "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": 18 + }, + "values": { + "default": 4096, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 18 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 18 + }, + "statictype": "dynamic" + } + ] + }, + "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": 18 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "RESTARTED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "BLOCK_LISTING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "PENDING_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "DID_NOT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + } + } + }, + "TESTMANAGER": { + "id": 98, + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": 36 + }, + "statictype": null + } + ] + } + }, + "status": { + "FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "READ_ONLY_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "BUSY": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "STRING_TOO_LONG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "FOPEN_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "FSEEK_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "FWRITE_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "FCLOSE_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "MALFORMED_FILENAME": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "UNKNOWN_ACTION": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "FILEREMOVE_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + }, + "FREAD_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 12 + } + } + }, + "PERIODICLOG": { + "id": 17, + "version": { + "first": 1, + "last": 73 + }, + "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": 73 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 73 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 73 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 73 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 73 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 73 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 73 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "status": { + "FOPEN": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "STRING_TOO_LONG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "FILES_IN_USE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + } + } + }, + "POWERMON": { + "id": 1, + "version": { + "first": 17, + "last": 68 + }, + "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": 68 + }, + "statictype": "dynamic" + } + ] + }, + "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": 68 + }, + "values": { + "default": "Tadiran" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 68 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 68 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 68 + }, + "values": { + "default": 36, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 68 + }, + "values": { + "default": 28, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 68 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 68 + }, + "statictype": "dynamic" + } + ] + }, + "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": 68 + }, + "statictype": "dynamic" + } + ] + }, + "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": 68 + }, + "values": { + "default": 473040000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 68 + }, + "values": { + "default": 19000, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 68 + }, + "statictype": "dynamic" + } + ] + }, + "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": 68 + }, + "values": { + "default": 96, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + } + }, + "status": { + "TABLE_FULL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "OUT_OF_RANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "STOP_CYCLING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "TEMPERATURE_LIMIT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "BATTERY_STATUS_CHANGED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "BATTERY_CRITICAL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "PENDING_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "DID_NOT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + } + } + }, + "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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 204 + }, + "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": 304 + }, + "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": 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": 204 + }, + "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": 304 + }, + "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": 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": 204 + }, + "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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": "WO", + "lvl4": "NA", + "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": 268, + "last": 304 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "WO", + "lvl4": "NA", + "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": 450, + "last": 463 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "WO", + "lvl4": "NA", + "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": 500, + "last": 509 + }, + "statictype": "dynamic" + }, + { + "type": "bool_t", + "privilege": { + "lvl1": "NA", + "lvl2": "NA", + "lvl3": "WO", + "lvl4": "NA", + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "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": 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": 304 + }, + "statictype": "dynamic" + } + ] + }, + "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": 304 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + } + }, + "status": { + "BAD_TEST": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "DID_NOT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "STORE_PENDING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "STORE_BUFFER_SIZE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "STRING_TOO_LONG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "BAD_DISPLAY_MODE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "GLASS_TOO_LONG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "SLOT_NOT_YOURS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "SUBLIST_TOO_LONG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "NO_TEMP_SENSOR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "UNDER_TEMP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + }, + "LOW_TEMP_WARNING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 12 + }, + "HIGH_TEMP_WARNING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 13 + }, + "OVER_TEMP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 14 + }, + "MISMATCHING_LSB": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 15 + }, + "OUT_OF_RANGE_PWDIFF": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 16 + }, + "OUT_OF_RANGE_AMPLITUDE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 17 + }, + "OUT_OF_RANGE_TOF": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 18 + }, + "OUT_OF_RANGE_DTOF": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 19 + }, + "TOF_TIMEOUT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 20 + }, + "CAL_CHANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 21 + }, + "OUT_OF_RANGE_INTERVAL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 22 + }, + "VALIDATE_FAIL": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 23 + }, + "OUT_OF_RANGE_TEMP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 24 + }, + "NOT_READY": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 25 + }, + "METROLOGY_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 26 + }, + "GP30_ID_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 27 + }, + "GP30_FLAG_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 28 + }, + "GP30_TIMEOUT_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 29 + }, + "GP30_REQUEST_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 30 + }, + "GP30_SEQ_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 31 + }, + "VALUE_SEALED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 32 + }, + "IN_TEST_MODE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 33 + }, + "UNKNOWN_STATE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 34 + }, + "DISPLAY_INIT_SUCCEEDED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 35 + }, + "DISPLAY_INIT_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 36 + }, + "GP30_INIT_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 37 + }, + "START_TIMER_SUCCEEDED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 38 + }, + "START_TIMER_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 39 + }, + "VOLUME_STORE_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 40 + }, + "EMPTY_PIPE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 41 + }, + "PARAMETER_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 42 + }, + "GP30_INTERNAL_ERROR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 43 + }, + "GLASS_TOO_SHORT": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 44 + }, + "STORE_CAL_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 45 + }, + "STORE_CONF_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 46 + }, + "MODE_CHANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 47 + }, + "BAD_POW10": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 48 + }, + "BAD_DECIMAL_SEPARATOR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 49 + }, + "BAD_UNITS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 50 + }, + "BAD_ICONS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 51 + }, + "BAD_THOUSAND_SEPARATOR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 52 + }, + "NEW_LOCALE_REJECTED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 53 + }, + "SET_ACCUMULATORS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 54 + }, + "SEAL_OPENED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 55 + }, + "CALIBRATION_RECALL_INCOMPLETE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 56 + }, + "BAD_AMR_SETTINGS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 57 + }, + "SUSPECT_CYCLE_SKIP": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 58 + }, + "LOOKUP_FILE_LOADED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 59 + }, + "LOOKUP_FILE_METERSIZE_CHANGED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 60 + }, + "LOOKUP_FILE_FAILURE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 61 + }, + "LOOKUP_FILE_INVALID": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 62 + }, + "LOOKUP_CRC_MISMATCH": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 63 + }, + "LOOKUP_FILE_UNKNOWN_METERSIZE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 64 + } + } + }, + "IRDA": { + "id": 20, + "version": { + "first": 10, + "last": 206 + }, + "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": 206 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 206 + }, + "values": { + "default": 3, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 206 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 206 + }, + "statictype": "dynamic" + } + ] + }, + "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": 53 + }, + "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": 206 + }, + "values": { + "default": 8, + "minimum": 0, + "maximum": 9 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 206 + }, + "values": { + "default": 0, + "minimum": -9, + "maximum": 0 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 206 + }, + "values": { + "default": 268, + "minimum": 0, + "maximum": 268 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "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": 161, + "last": 206 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 206 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 206 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 206 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "BAD_LENGTH": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "OUT_OF_RANGE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "PENDING_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "DID_NOT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "TOO_MANY_BYTES": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + } + } + }, + "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" + } + ] + }, + "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" + } + ] + } + }, + "status": { + "SENSOR_INVALID": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + }, + "ALARM_INVALID": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 2 + }, + "UNIMPLEMENTED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 3 + }, + "UNCONFIGURED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 4 + }, + "CONFIG_INVALID": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 5 + }, + "NO_LATEST": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 6 + }, + "FIXED_TYPE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 7 + }, + "PREDEF_SET": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 8 + }, + "USERDEF_VOLUME_SET": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 9 + }, + "USERDEF_TEMPERATURE_SET": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 10 + }, + "USERDEF_PRESSURE_SET": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 11 + }, + "PREDEF_CLEAR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 12 + }, + "USERDEF_VOLUME_CLEAR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 13 + }, + "USERDEF_TEMPERATURE_CLEAR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 14 + }, + "USERDEF_PRESSURE_CLEAR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 15 + }, + "DID_NOT_STORE": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 16 + }, + "STORE_PENDING": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 17 + }, + "PREDEF_BACKUP_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 18 + }, + "PREDEF_RESTORE_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 19 + }, + "USERDEF_BACKUP_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 20 + }, + "USERDEF_RESTORE_FAILED": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 21 + }, + "USERDEF_UNSUPPORTED_TYPE_FOR_SENSOR": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 22 + } + } + }, + "NA2WLOGGER": { + "id": 22, + "version": { + "first": 1, + "last": 197 + }, + "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": 197 + }, + "statictype": "dynamic" + } + ] + }, + "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": 197 + }, + "statictype": "static" + } + ] + } + } + }, + "FLEXNETVERSION": { + "id": 24, + "version": { + "first": 1, + "last": 9999 + } + }, + "FLEXNETSERIAL": { + "id": 26, + "version": { + "first": 1, + "last": 18 + }, + "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": "Lorem Ipsum", + "version": { + "first": 2, + "last": 18 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem Ipsum", + "version": { + "first": 2, + "last": 18 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 0 + }, + "TOO_MANY_APPS": { + "action": "Lorem Ipsum", + "description": "Lorem Ipsum", + "id": 1 + } + } + } +} diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/rowproduct_R1247.txt b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/rowproduct_R1247.txt new file mode 100644 index 00000000..0a4a550d --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R1247/rowproduct_R1247.txt @@ -0,0 +1,40 @@ +Release summary for product 1.71 + + Block ./Zero/objects/zero + Id 0x00, CRC 0x2325, size 37728 bytes, version 5.17 + + Block ../../Applications/PowerMon/objects/powermon + Id 0x01, CRC 0x2527, size 3068 bytes, version 0.68 + + Block ../../Applications/ConfigExchange/objects/configex + Id 0x04, CRC 0x0822, size 7904 bytes, version 2.26 + + Block ../../Applications/Logger/objects/logger + Id 0x08, CRC 0x12D4, size 3972 bytes, version 0.18 + + Block ../../Applications/PeriodicLogging/objects/periodiclog + Id 0x11, CRC 0x5E72, size 12528 bytes, version 0.73 + + Block ../../Applications/Communications/SensusRFRadio/objects/SensusRF + Id 0x10, CRC 0xFFCE, size 81820 bytes, version 4.93 + + Block ../../Applications/Metrology/Water/GenesisFlow/objects/genesisflow + Id 0x0F, CRC 0xA3A6, size 25164 bytes, version 3.02 + + Block ../../Applications/Customer/GenesisDefault/objects/customer + Id 0x09, CRC 0xAEC5, size 6148 bytes, version 1.55 + + Block ../../Applications/MetrologyAssistant/objects/assistant + Id 0x12, CRC 0xB4D5, size 7948 bytes, version 1.11 + + Block ../../Applications/Communications/IrDA/objects/irda + Id 0x14, CRC 0x2EB1, size 23324 bytes, version 2.06 + + Block ../../Applications/Communications/NFC/objects/nfc + Id 0x15, CRC 0xCE04, size 6452 bytes, version 0.57 + + Block ../../Applications/FlexNetVersion/objects/flexnetversion + Id 0x18, CRC 0xBA83, size 116 bytes, version 12.47 + +Minimum supported core revision: "Cordonel 1.62" +Maximum supported core revision: "Cordonel 1.71" diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile00_0537_20240403134558269206.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile00_0537_20240403134558269206.bin new file mode 100644 index 00000000..66e993f5 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile00_0537_20240403134558269206.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile01_0070_20240403134558269206.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile01_0070_20240403134558269206.bin new file mode 100644 index 00000000..efe5b519 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile01_0070_20240403134558269206.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile04_0238_20240403134558269206.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile04_0238_20240403134558269206.bin new file mode 100644 index 00000000..6632e355 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile04_0238_20240403134558269206.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile08_0018_20240403134558269206.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile08_0018_20240403134558269206.bin new file mode 100644 index 00000000..6ff6b89e Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile08_0018_20240403134558269206.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile09_0159_20240403134558269206.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile09_0159_20240403134558269206.bin new file mode 100644 index 00000000..43c70fef Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile09_0159_20240403134558269206.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile0F_0302_20240403134558269206.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile0F_0302_20240403134558269206.bin new file mode 100644 index 00000000..a6f8ae65 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile0F_0302_20240403134558269206.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile10_0530_20240403134558269206.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile10_0530_20240403134558269206.bin new file mode 100644 index 00000000..05db110f Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile10_0530_20240403134558269206.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile11_0075_20240403134558269206.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile11_0075_20240403134558269206.bin new file mode 100644 index 00000000..83e1fd75 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile11_0075_20240403134558269206.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile12_0113_20240403134558269206.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile12_0113_20240403134558269206.bin new file mode 100644 index 00000000..874030a5 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile12_0113_20240403134558269206.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile14_0206_20240403134558269206.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile14_0206_20240403134558269206.bin new file mode 100644 index 00000000..d1b13f5e Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile14_0206_20240403134558269206.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile15_0059_20240403134558269206.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile15_0059_20240403134558269206.bin new file mode 100644 index 00000000..926bc705 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile15_0059_20240403134558269206.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile18_130B_20240403134558269206.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile18_130B_20240403134558269206.bin new file mode 100644 index 00000000..d21f2749 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/binfile18_130B_20240403134558269206.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/configuration.json b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/configuration.json new file mode 100644 index 00000000..6451c284 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/configuration.json @@ -0,0 +1,16819 @@ +{ + "CUSTOMER": { + "id": 9, + "version": { + "first": 1, + "last": 159 + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 639999, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + } + ] + }, + "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": 159 + }, + "values": { + "default": 360, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + } + ] + }, + "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 measurements in 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 measurements in 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 measurements in reverse flow required to set reverse flow alarm", + "version": { + "first": 143, + "last": 159 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "values": { + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 159 + }, + "values": { + "default": 180, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 6399, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + } + ] + }, + "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": 159 + }, + "values": { + "default": 181440000 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 800 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 0, + "maximum": 4294967295 + }, + "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": 159 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 1600000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 30000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Time meter was determined to have been installed. 0 means not installed", + "version": { + "first": 147, + "last": 159 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": null, + "last": null + }, + "values": { + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + } + }, + "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 + } + } + }, + "FUNCTEST": { + "id": 10, + "version": { + "first": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "last": 1003 + }, + "statictype": null + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "BAD_TEST": { + "id": 1 + }, + "NO_RESULT": { + "id": 2 + } + } + }, + "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 + } + } + }, + "SENSUSRADIO": { + "id": 16, + "version": { + "first": 100, + "last": 530 + }, + "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": 530 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 3600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 7, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 433, + "minimum": 433, + "maximum": 868 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": -32768, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 127 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "UtcTimeOffset": { + "id": 11, + "details": [ + { + "type": "uint32_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", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 0, + "minimum": -32768, + "maximum": 32767 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 state (enum) regarding the firmwware update", + "version": { + "first": 100, + "last": 530 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 25, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the leakage (low flow) detection", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 360, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 2500, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the broken pipe (high flow) detection", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 180, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 160, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the maximum (high) pressure alarm", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 pressure value of the minimum (low) pressure alarm", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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)", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 50, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the maximum (high) temperature alarm", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the minimum (low) temperature alarm", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 15 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1000 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 3 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 output", + "version": { + "first": 100, + "last": 530 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 output", + "version": { + "first": 100, + "last": 530 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 207, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 29, + "minimum": 0, + "maximum": 250 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "statictype": "static" + } + ] + }, + "Authentification": { + "id": 45, + "details": [ + { + "type": "uint32_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": 530 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "CustomerText": { + "id": 47, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An array of 8 bytes of freely programmable SensusRF customer Text", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "Tfx_Structure": { + "id": 54, + "details": [ + { + "type": "uint32_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": 530 + }, + "statictype": "dynamic" + } + ] + }, + "Dewa_Structure": { + "id": 55, + "details": [ + { + "type": "uint32_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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 determins averaging periods for min and max calculations", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 127 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + } + ] + }, + "StoreConfiguration": { + "id": 66, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write this value to '1' to tell the radio application to store all data into the file system of the meter", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 4320000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 1000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "PressureCalibration": { + "id": 74, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "MMC(is uint32_t type, minimum -18, maximum 127 ok?) An uint16_t value to add an offset to the measured pressure value from -1270 to +1270 mBar for field calibration purposes", + "version": { + "first": 483, + "last": 530 + }, + "values": { + "default": 0, + "minimum": -128, + "maximum": 127 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "TfxSecondaryChannelInfo_1": { + "id": 75, + "details": [ + { + "type": "uint32_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": 530 + }, + "values": { + "default": 0, + "minimum": -128, + "maximum": 127 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "TfxSecondaryChannelInfo_2": { + "id": 76, + "details": [ + { + "type": "uint32_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": 530 + }, + "values": { + "default": 0, + "minimum": -128, + "maximum": 127 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "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 + } + } + }, + "CONFIGEXCHANGE": { + "id": 4, + "version": { + "first": 3, + "last": 238 + }, + "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": 238 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 8 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "static" + } + ] + }, + "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": 238 + }, + "statictype": "static" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + } + }, + "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 + } + } + }, + "NFC": { + "id": 21, + "version": { + "first": 1, + "last": 63 + }, + "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": 63 + }, + "statictype": "dynamic" + } + ] + }, + "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": 63 + }, + "statictype": "dynamic" + } + ] + } + }, + "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 + } + } + }, + "SYSTEM": { + "id": 0, + "version": { + "first": 141, + "last": 537 + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + }, + "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": 537 + }, + "values": { + "default": "" + }, + "statictype": "static" + } + ] + }, + "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": 537 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 537 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 537 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 537 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + }, + "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": 537 + }, + "statictype": "static" + } + ] + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + }, + "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": 537 + }, + "statictype": "static" + } + ] + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + }, + "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": 537 + }, + "statictype": "static" + } + ] + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + } + }, + "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 + } + } + }, + "METROLOGYASST": { + "id": 18, + "version": { + "first": 4, + "last": 114 + }, + "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": 114 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "default": 32000, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 7 + }, + "statictype": "static" + } + ] + }, + "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": 4294967295 + }, + "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": 4294967295 + }, + "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": 114 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 8 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 4 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "statictype": "static" + } + ] + }, + "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 – Celcius, 1 – 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 – Celcius, 1 – Fahrenheit.", + "version": { + "first": 82, + "last": 114 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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 – Mpa, 1 – 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 – Mpa, 1 – PSI.", + "version": { + "first": 82, + "last": 114 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 60000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 0, + "minimum": -2000000, + "maximum": 2000000 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "minimum": 0, + "maximum": 7 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "default": 0, + "minimum": -4000000, + "maximum": 4000000 + }, + "statictype": "static" + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "DID_NOT_STORE": { + "id": 1 + }, + "PENDING_STORE": { + "id": 2 + } + } + }, + "LOGGER": { + "id": 8, + "version": { + "first": 1, + "last": 18 + }, + "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": 18 + }, + "values": { + "default": 4096, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 18 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 18 + }, + "statictype": "dynamic" + } + ] + }, + "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": 18 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "id": 0 + }, + "RESTARTED": { + "id": 1 + }, + "BLOCK_LISTING": { + "id": 2 + }, + "PENDING_STORE": { + "id": 3 + }, + "DID_NOT_STORE": { + "id": 4 + } + } + }, + "TESTMANAGER": { + "id": 98, + "version": { + "first": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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 + } + } + }, + "PERIODICLOG": { + "id": 17, + "version": { + "first": 1, + "last": 75 + }, + "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": 75 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 75 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "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": 70 + }, + "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": 70 + }, + "statictype": "dynamic" + } + ] + }, + "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": 70 + }, + "values": { + "default": "Tadiran" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 70 + }, + "values": { + "default": 36, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "values": { + "default": 28, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 70 + }, + "statictype": "dynamic" + } + ] + }, + "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": 70 + }, + "statictype": "dynamic" + } + ] + }, + "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": 70 + }, + "values": { + "default": 473040000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 70 + }, + "values": { + "default": 19000, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "statictype": "dynamic" + } + ] + }, + "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": 70 + }, + "values": { + "default": 96, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + } + }, + "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 + } + } + }, + "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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "statictype": "dynamic" + } + ] + }, + "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": 316 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 313, + "last": 316 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 313, + "last": 316 + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 10000000 + }, + "statictype": "static" + } + ] + }, + "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": 313, + "last": 316 + }, + "values": { + "minimum": 0, + "maximum": 163840 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 313, + "last": 316 + }, + "values": { + "minimum": 0, + "maximum": 100 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 313, + "last": 316 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 316 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 316 + }, + "values": { + "minimum": 0, + "maximum": 28800 + }, + "statictype": "static" + } + ] + } + }, + "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 + } + } + }, + "IRDA": { + "id": 20, + "version": { + "first": 10, + "last": 211 + }, + "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": 211 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 211 + }, + "values": { + "default": 3, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 211 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 211 + }, + "statictype": "dynamic" + } + ] + }, + "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": 211 + }, + "values": { + "default": 8, + "minimum": 0, + "maximum": 9 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 211 + }, + "values": { + "default": 0, + "minimum": -9, + "maximum": 0 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 211 + }, + "values": { + "default": 268, + "minimum": 0, + "maximum": 268 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "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": 161, + "last": 211 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 211 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 211 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 211 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 211 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "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 + } + } + }, + "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" + } + ] + }, + "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" + } + ] + } + }, + "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": 199 + }, + "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": 199 + }, + "statictype": "dynamic" + } + ] + }, + "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": 199 + }, + "statictype": "static" + } + ] + } + }, + "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 + } + } + }, + "FLEXNETVERSION": { + "id": 24, + "version": { + "first": 1, + "last": 9999 + } + }, + "FLEXNETSERIAL": { + "id": 26, + "version": { + "first": 1, + "last": 21 + }, + "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": 21 + }, + "statictype": "dynamic" + } + ] + }, + "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": 21 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "id": 0 + }, + "TOO_MANY_APPS": { + "id": 1 + } + } + }, + "HISTOGRAM": { + "id": 27, + "version": { + "first": 1, + "last": 2 + } + } +} diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/rowproduct_R130B.txt b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/rowproduct_R130B.txt new file mode 100644 index 00000000..d8767e69 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R130B/rowproduct_R130B.txt @@ -0,0 +1,40 @@ +Release summary for product 1.78 + + Block ./Zero/objects/zero + Id 0x00, CRC16 0x39A8, size 37972 bytes, version 5.37 + + Block ../../Applications/PowerMon/objects/powermon + Id 0x01, CRC16 0xB16C, size 3112 bytes, version 0.70 + + Block ../../Applications/ConfigExchange/objects/configex + Id 0x04, CRC16 0x8290, size 7944 bytes, version 2.38 + + Block ../../Applications/Logger/objects/logger + Id 0x08, CRC16 0x12D4, size 3972 bytes, version 0.18 + + Block ../../Applications/PeriodicLogging/objects/periodiclog + Id 0x11, CRC16 0x5796, size 12412 bytes, version 0.75 + + Block ../../Applications/Communications/SensusRFRadio/objects/SensusRF + Id 0x10, CRC16 0x0704, size 93488 bytes, version 5.30 + + Block ../../Applications/Metrology/Water/GenesisFlow/objects/genesisflow + Id 0x0F, CRC16 0xA3A6, size 25164 bytes, version 3.02 + + Block ../../Applications/Customer/GenesisDefault/objects/customer + Id 0x09, CRC16 0xD56D, size 6196 bytes, version 1.59 + + Block ../../Applications/MetrologyAssistant/objects/assistant + Id 0x12, CRC16 0x9BA6, size 7948 bytes, version 1.13 + + Block ../../Applications/Communications/IrDA/objects/irda + Id 0x14, CRC16 0x2EB1, size 23324 bytes, version 2.06 + + Block ../../Applications/Communications/NFC/objects/nfc + Id 0x15, CRC16 0x43F4, size 6808 bytes, version 0.59 + + Block ../../Applications/FlexNetVersion/objects/flexnetversion + Id 0x18, CRC16 0xB2D5, size 116 bytes, version 13.0B + +Minimum supported core revision: "Cordonel 1.62" +Maximum supported core revision: "Cordonel 1.78" diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile00_0537_20240503225607266193.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile00_0537_20240503225607266193.bin new file mode 100644 index 00000000..e45377d6 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile00_0537_20240503225607266193.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile01_0070_20240503225607266193.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile01_0070_20240503225607266193.bin new file mode 100644 index 00000000..efe5b519 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile01_0070_20240503225607266193.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile04_0238_20240503225607266193.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile04_0238_20240503225607266193.bin new file mode 100644 index 00000000..6632e355 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile04_0238_20240503225607266193.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile08_0018_20240503225607266193.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile08_0018_20240503225607266193.bin new file mode 100644 index 00000000..6ff6b89e Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile08_0018_20240503225607266193.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile09_0159_20240503225607266193.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile09_0159_20240503225607266193.bin new file mode 100644 index 00000000..43c70fef Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile09_0159_20240503225607266193.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile0F_0287_20240503225607266193.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile0F_0287_20240503225607266193.bin new file mode 100644 index 00000000..491fbb8c Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile0F_0287_20240503225607266193.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile10_0525_20240503225607266193.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile10_0525_20240503225607266193.bin new file mode 100644 index 00000000..3c100891 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile10_0525_20240503225607266193.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile11_0075_20240503225607266193.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile11_0075_20240503225607266193.bin new file mode 100644 index 00000000..83e1fd75 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile11_0075_20240503225607266193.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile12_0113_20240503225607266193.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile12_0113_20240503225607266193.bin new file mode 100644 index 00000000..874030a5 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile12_0113_20240503225607266193.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile14_0206_20240503225607266193.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile14_0206_20240503225607266193.bin new file mode 100644 index 00000000..d1b13f5e Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile14_0206_20240503225607266193.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile15_0061_20240503225607266193.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile15_0061_20240503225607266193.bin new file mode 100644 index 00000000..b9b53dce Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile15_0061_20240503225607266193.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile18_13F3_20240503225607266193.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile18_13F3_20240503225607266193.bin new file mode 100644 index 00000000..37625756 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/binfile18_13F3_20240503225607266193.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/configuration.json b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/configuration.json new file mode 100644 index 00000000..6451c284 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/configuration.json @@ -0,0 +1,16819 @@ +{ + "CUSTOMER": { + "id": 9, + "version": { + "first": 1, + "last": 159 + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 639999, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + } + ] + }, + "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": 159 + }, + "values": { + "default": 360, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + } + ] + }, + "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 measurements in 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 measurements in 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 measurements in reverse flow required to set reverse flow alarm", + "version": { + "first": 143, + "last": 159 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "values": { + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 159 + }, + "values": { + "default": 180, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 6399, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + } + ] + }, + "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": 159 + }, + "values": { + "default": 181440000 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 800 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 0, + "maximum": 4294967295 + }, + "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": 159 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 1600000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 30000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "static" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Time meter was determined to have been installed. 0 means not installed", + "version": { + "first": 147, + "last": 159 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": 159 + }, + "statictype": "dynamic" + } + ] + }, + "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": null, + "last": null + }, + "values": { + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + } + }, + "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 + } + } + }, + "FUNCTEST": { + "id": 10, + "version": { + "first": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "last": 1003 + }, + "statictype": null + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "BAD_TEST": { + "id": 1 + }, + "NO_RESULT": { + "id": 2 + } + } + }, + "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 + } + } + }, + "SENSUSRADIO": { + "id": 16, + "version": { + "first": 100, + "last": 530 + }, + "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": 530 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 3600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 7, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 433, + "minimum": 433, + "maximum": 868 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": -32768, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 127 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "UtcTimeOffset": { + "id": 11, + "details": [ + { + "type": "uint32_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", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 0, + "minimum": -32768, + "maximum": 32767 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 state (enum) regarding the firmwware update", + "version": { + "first": 100, + "last": 530 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 25, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the leakage (low flow) detection", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 360, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 2500, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the broken pipe (high flow) detection", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 180, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 160, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the maximum (high) pressure alarm", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 pressure value of the minimum (low) pressure alarm", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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)", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 50, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the maximum (high) temperature alarm", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the minimum (low) temperature alarm", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 15 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1000 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 3 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 output", + "version": { + "first": 100, + "last": 530 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 output", + "version": { + "first": 100, + "last": 530 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 207, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 29, + "minimum": 0, + "maximum": 250 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "statictype": "static" + } + ] + }, + "Authentification": { + "id": 45, + "details": [ + { + "type": "uint32_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": 530 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "CustomerText": { + "id": 47, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An array of 8 bytes of freely programmable SensusRF customer Text", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "Tfx_Structure": { + "id": 54, + "details": [ + { + "type": "uint32_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": 530 + }, + "statictype": "dynamic" + } + ] + }, + "Dewa_Structure": { + "id": 55, + "details": [ + { + "type": "uint32_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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 determins averaging periods for min and max calculations", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 127 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + } + ] + }, + "StoreConfiguration": { + "id": 66, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write this value to '1' to tell the radio application to store all data into the file system of the meter", + "version": { + "first": 100, + "last": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 4320000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 1000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 530 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "PressureCalibration": { + "id": 74, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "MMC(is uint32_t type, minimum -18, maximum 127 ok?) An uint16_t value to add an offset to the measured pressure value from -1270 to +1270 mBar for field calibration purposes", + "version": { + "first": 483, + "last": 530 + }, + "values": { + "default": 0, + "minimum": -128, + "maximum": 127 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "TfxSecondaryChannelInfo_1": { + "id": 75, + "details": [ + { + "type": "uint32_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": 530 + }, + "values": { + "default": 0, + "minimum": -128, + "maximum": 127 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "TfxSecondaryChannelInfo_2": { + "id": 76, + "details": [ + { + "type": "uint32_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": 530 + }, + "values": { + "default": 0, + "minimum": -128, + "maximum": 127 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 530 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "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 + } + } + }, + "CONFIGEXCHANGE": { + "id": 4, + "version": { + "first": 3, + "last": 238 + }, + "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": 238 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 8 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + }, + "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": 238 + }, + "statictype": "static" + } + ] + }, + "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": 238 + }, + "statictype": "static" + } + ] + }, + "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": 238 + }, + "statictype": "dynamic" + } + ] + } + }, + "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 + } + } + }, + "NFC": { + "id": 21, + "version": { + "first": 1, + "last": 63 + }, + "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": 63 + }, + "statictype": "dynamic" + } + ] + }, + "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": 63 + }, + "statictype": "dynamic" + } + ] + } + }, + "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 + } + } + }, + "SYSTEM": { + "id": 0, + "version": { + "first": 141, + "last": 537 + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + }, + "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": 537 + }, + "values": { + "default": "" + }, + "statictype": "static" + } + ] + }, + "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": 537 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 537 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 537 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 537 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + }, + "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": 537 + }, + "statictype": "static" + } + ] + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + }, + "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": 537 + }, + "statictype": "static" + } + ] + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + }, + "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": 537 + }, + "statictype": "static" + } + ] + }, + "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": 537 + }, + "statictype": "dynamic" + } + ] + } + }, + "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 + } + } + }, + "METROLOGYASST": { + "id": 18, + "version": { + "first": 4, + "last": 114 + }, + "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": 114 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "default": 32000, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 7 + }, + "statictype": "static" + } + ] + }, + "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": 4294967295 + }, + "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": 4294967295 + }, + "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": 114 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 8 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 4 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "statictype": "static" + } + ] + }, + "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 – Celcius, 1 – 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 – Celcius, 1 – Fahrenheit.", + "version": { + "first": 82, + "last": 114 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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 – Mpa, 1 – 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 – Mpa, 1 – PSI.", + "version": { + "first": 82, + "last": 114 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 60000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 0, + "minimum": -2000000, + "maximum": 2000000 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "minimum": 0, + "maximum": 7 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "default": 0, + "minimum": -4000000, + "maximum": 4000000 + }, + "statictype": "static" + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "DID_NOT_STORE": { + "id": 1 + }, + "PENDING_STORE": { + "id": 2 + } + } + }, + "LOGGER": { + "id": 8, + "version": { + "first": 1, + "last": 18 + }, + "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": 18 + }, + "values": { + "default": 4096, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 18 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 18 + }, + "statictype": "dynamic" + } + ] + }, + "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": 18 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "id": 0 + }, + "RESTARTED": { + "id": 1 + }, + "BLOCK_LISTING": { + "id": 2 + }, + "PENDING_STORE": { + "id": 3 + }, + "DID_NOT_STORE": { + "id": 4 + } + } + }, + "TESTMANAGER": { + "id": 98, + "version": { + "first": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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": null, + "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 + } + } + }, + "PERIODICLOG": { + "id": 17, + "version": { + "first": 1, + "last": 75 + }, + "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": 75 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 75 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "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": 70 + }, + "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": 70 + }, + "statictype": "dynamic" + } + ] + }, + "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": 70 + }, + "values": { + "default": "Tadiran" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 70 + }, + "values": { + "default": 36, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "values": { + "default": 28, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 70 + }, + "statictype": "dynamic" + } + ] + }, + "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": 70 + }, + "statictype": "dynamic" + } + ] + }, + "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": 70 + }, + "values": { + "default": 473040000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 70 + }, + "values": { + "default": 19000, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 70 + }, + "statictype": "dynamic" + } + ] + }, + "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": 70 + }, + "values": { + "default": 96, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + } + }, + "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 + } + } + }, + "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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "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": 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": 316 + }, + "statictype": "dynamic" + } + ] + }, + "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": 316 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 313, + "last": 316 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 313, + "last": 316 + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 10000000 + }, + "statictype": "static" + } + ] + }, + "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": 313, + "last": 316 + }, + "values": { + "minimum": 0, + "maximum": 163840 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 313, + "last": 316 + }, + "values": { + "minimum": 0, + "maximum": 100 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 313, + "last": 316 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 316 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 316 + }, + "values": { + "minimum": 0, + "maximum": 28800 + }, + "statictype": "static" + } + ] + } + }, + "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 + } + } + }, + "IRDA": { + "id": 20, + "version": { + "first": 10, + "last": 211 + }, + "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": 211 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 211 + }, + "values": { + "default": 3, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 211 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 211 + }, + "statictype": "dynamic" + } + ] + }, + "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": 211 + }, + "values": { + "default": 8, + "minimum": 0, + "maximum": 9 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 211 + }, + "values": { + "default": 0, + "minimum": -9, + "maximum": 0 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 211 + }, + "values": { + "default": 268, + "minimum": 0, + "maximum": 268 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "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": 161, + "last": 211 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 211 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 211 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 211 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 211 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "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 + } + } + }, + "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" + } + ] + }, + "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" + } + ] + } + }, + "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": 199 + }, + "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": 199 + }, + "statictype": "dynamic" + } + ] + }, + "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": 199 + }, + "statictype": "static" + } + ] + } + }, + "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 + } + } + }, + "FLEXNETVERSION": { + "id": 24, + "version": { + "first": 1, + "last": 9999 + } + }, + "FLEXNETSERIAL": { + "id": 26, + "version": { + "first": 1, + "last": 21 + }, + "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": 21 + }, + "statictype": "dynamic" + } + ] + }, + "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": 21 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "id": 0 + }, + "TOO_MANY_APPS": { + "id": 1 + } + } + }, + "HISTOGRAM": { + "id": 27, + "version": { + "first": 1, + "last": 2 + } + } +} diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/rowproduct_R13F3.txt b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/rowproduct_R13F3.txt new file mode 100644 index 00000000..7857a4be --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/EMEA_R13F3_replaces_R1107_R1108/rowproduct_R13F3.txt @@ -0,0 +1,40 @@ +Release summary for product 1.78 + + Block ./Zero/objects/zero + Id 0x00, CRC16 0x3828, size 37972 bytes, version 5.37 + + Block ../../Applications/PowerMon/objects/powermon + Id 0x01, CRC16 0xB16C, size 3112 bytes, version 0.70 + + Block ../../Applications/ConfigExchange/objects/configex + Id 0x04, CRC16 0x8290, size 7944 bytes, version 2.38 + + Block ../../Applications/Logger/objects/logger + Id 0x08, CRC16 0x12D4, size 3972 bytes, version 0.18 + + Block ../../Applications/Metrology/Water/GenesisFlow/objects/genesisflow + Id 0x0F, CRC16 0x8228, size 23300 bytes, version 2.87 + + Block ../../Applications/MetrologyAssistant/objects/assistant + Id 0x12, CRC16 0x9BA6, size 7948 bytes, version 1.13 + + Block ../../Applications/Customer/GenesisDefault/objects/customer + Id 0x09, CRC16 0xD56D, size 6196 bytes, version 1.59 + + Block ../../Applications/Communications/IrDA/objects/irda + Id 0x14, CRC16 0x2EB1, size 23324 bytes, version 2.06 + + Block ../../Applications/Communications/NFC/objects/nfc + Id 0x15, CRC16 0x25B6, size 6824 bytes, version 0.61 + + Block ../../Applications/FlexNetVersion/objects/flexnetversion + Id 0x18, CRC16 0xE953, size 116 bytes, version 13.F3 + + Block ../../Applications/Communications/SensusRFRadio/objects/SensusRF + Id 0x10, CRC16 0x8261, size 93424 bytes, version 5.25 + + Block ../../Applications/PeriodicLogging/objects/periodiclog + Id 0x11, CRC16 0x5796, size 12412 bytes, version 0.75 + +Minimum supported core revision: "Cordonel 1.62" +Maximum supported core revision: "Cordonel 1.78" diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile00_0533_20231212175334957541.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile00_0533_20231212175334957541.bin new file mode 100644 index 00000000..f97fcc23 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile00_0533_20231212175334957541.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile01_0068_20231212175334957541.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile01_0068_20231212175334957541.bin new file mode 100644 index 00000000..a7166801 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile01_0068_20231212175334957541.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile04_0235_20231212175334957541.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile04_0235_20231212175334957541.bin new file mode 100644 index 00000000..d1889838 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile04_0235_20231212175334957541.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile08_0018_20231212175334957541.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile08_0018_20231212175334957541.bin new file mode 100644 index 00000000..6ff6b89e Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile08_0018_20231212175334957541.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile09_0157_20231212175334957541.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile09_0157_20231212175334957541.bin new file mode 100644 index 00000000..1a5df8ec Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile09_0157_20231212175334957541.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile0F_0315_20231212175334957541.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile0F_0315_20231212175334957541.bin new file mode 100644 index 00000000..9c99a0e6 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile0F_0315_20231212175334957541.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile12_0114_20231212175334957541.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile12_0114_20231212175334957541.bin new file mode 100644 index 00000000..3ff0363f Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile12_0114_20231212175334957541.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile14_0210_20231212175334957541.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile14_0210_20231212175334957541.bin new file mode 100644 index 00000000..5920840f Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile14_0210_20231212175334957541.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile15_0059_20231212175334957541.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile15_0059_20231212175334957541.bin new file mode 100644 index 00000000..926bc705 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile15_0059_20231212175334957541.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile16_0199_20231212175334957541.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile16_0199_20231212175334957541.bin new file mode 100644 index 00000000..64730d1e Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile16_0199_20231212175334957541.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile17_0102_20231212175334957541.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile17_0102_20231212175334957541.bin new file mode 100644 index 00000000..0b1825b6 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile17_0102_20231212175334957541.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile18_2006_20231212175334957541.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile18_2006_20231212175334957541.bin new file mode 100644 index 00000000..bf41bd8f Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile18_2006_20231212175334957541.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile1A_0020_20231212175334957541.bin b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile1A_0020_20231212175334957541.bin new file mode 100644 index 00000000..8fb45db4 Binary files /dev/null and b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/binfile1A_0020_20231212175334957541.bin differ diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/configuration.json b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/configuration.json new file mode 100644 index 00000000..7da529ae --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/configuration.json @@ -0,0 +1,16769 @@ +{ + "CUSTOMER": { + "id": 9, + "version": { + "first": 1, + "last": 156 + }, + "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": 156 + }, + "statictype": "dynamic" + } + ] + }, + "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": 157 + }, + "statictype": "dynamic" + } + ] + }, + "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": 157 + }, + "statictype": "dynamic" + } + ] + }, + "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": 157 + }, + "statictype": "dynamic" + } + ] + }, + "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": 157 + }, + "statictype": "dynamic" + } + ] + }, + "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": 157 + }, + "statictype": "dynamic" + } + ] + }, + "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": 157 + }, + "statictype": "dynamic" + } + ] + }, + "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": 157 + }, + "statictype": "dynamic" + } + ] + }, + "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": 157 + }, + "statictype": "dynamic" + } + ] + }, + "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": 157 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "values": { + "default": 4294967295, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "values": { + "default": 639999, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + } + ] + }, + "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": 157 + }, + "values": { + "default": 360, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + } + ] + }, + "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 measurements in 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 measurements in 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 measurements in reverse flow required to set reverse flow alarm", + "version": { + "first": 143, + "last": 157 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "statictype": "dynamic" + } + ] + }, + "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": 157 + }, + "values": { + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 157 + }, + "values": { + "default": 180, + "minimum": 0, + "maximum": 69632 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "values": { + "default": 6399, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "approximate" + } + ] + }, + "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": 157 + }, + "values": { + "default": 181440000 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 800 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 0, + "maximum": 4294967295 + }, + "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": 157 + }, + "values": { + "default": 20, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "values": { + "default": 1600000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "values": { + "default": 30000, + "minimum": 0, + "maximum": 2550000 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 10800 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "statictype": "dynamic" + } + ] + }, + "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": 157 + }, + "statictype": "static" + } + ] + }, + "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": 157 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Time meter was determined to have been installed. 0 means not installed", + "version": { + "first": 147, + "last": 157 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 157 + }, + "statictype": "dynamic" + } + ] + }, + "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": 157 + }, + "statictype": "dynamic" + } + ] + } + }, + "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 + } + } + }, + "FUNCTEST": { + "id": 10, + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "last": 1003 + }, + "statictype": null + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "BAD_TEST": { + "id": 1 + }, + "NO_RESULT": { + "id": 2 + } + } + }, + "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 + } + } + }, + "SENSUSRADIO": { + "id": 16, + "version": { + "first": 100, + "last": 527 + }, + "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": 527 + }, + "values": { + "default": 15, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 3600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 7, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 433, + "minimum": 433, + "maximum": 868 + }, + "statictype": "static" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": -32768, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 127 + }, + "statictype": "static" + } + ] + }, + "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": 527 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "UtcTimeOffset": { + "id": 11, + "details": [ + { + "type": "uint32_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", + "version": { + "first": 100, + "last": 527 + }, + "values": { + "default": 0, + "minimum": -32768, + "maximum": 32767 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 state (enum) regarding the firmwware update", + "version": { + "first": 100, + "last": 527 + }, + "statictype": "static" + } + ] + }, + "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": 527 + }, + "values": { + "default": 25, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the leakage (low flow) detection", + "version": { + "first": 100, + "last": 527 + }, + "values": { + "default": 360, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 2500, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the broken pipe (high flow) detection", + "version": { + "first": 100, + "last": 527 + }, + "values": { + "default": 180, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 160, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 3, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the maximum (high) pressure alarm", + "version": { + "first": 100, + "last": 527 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 pressure value of the minimum (low) pressure alarm", + "version": { + "first": 100, + "last": 527 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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", + "version": { + "first": 100, + "last": 527 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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)", + "version": { + "first": 100, + "last": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 50, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the maximum (high) temperature alarm", + "version": { + "first": 100, + "last": 527 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 value of the minimum (low) temperature alarm", + "version": { + "first": 100, + "last": 527 + }, + "values": { + "default": 600, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 2 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 15 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1000 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 3 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 output", + "version": { + "first": 100, + "last": 527 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 output", + "version": { + "first": 100, + "last": 527 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 207, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 60, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 29, + "minimum": 0, + "maximum": 250 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "dynamic" + } + ] + }, + "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": 527 + }, + "statictype": "static" + } + ] + }, + "Authentification": { + "id": 45, + "details": [ + { + "type": "uint32_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": 527 + }, + "statictype": "static" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "static" + } + ] + }, + "CustomerText": { + "id": 47, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "An array of 8 bytes of freely programmable SensusRF customer Text", + "version": { + "first": 100, + "last": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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", + "version": { + "first": 100, + "last": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 527 + }, + "values": { + "default": 19, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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", + "version": { + "first": 100, + "last": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "Tfx_Structure": { + "id": 54, + "details": [ + { + "type": "uint32_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": 527 + }, + "statictype": "dynamic" + } + ] + }, + "Dewa_Structure": { + "id": 55, + "details": [ + { + "type": "uint32_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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 527 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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 determins averaging periods for min and max calculations", + "version": { + "first": 100, + "last": 527 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 127 + }, + "statictype": "static" + } + ] + }, + "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": 527 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": 527 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 32767 + }, + "statictype": "static" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + } + ] + }, + "StoreConfiguration": { + "id": 66, + "details": [ + { + "type": "bool_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "Write this value to '1' to tell the radio application to store all data into the file system of the meter", + "version": { + "first": 100, + "last": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "dynamic" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 527 + }, + "values": { + "default": 4320000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 527 + }, + "values": { + "default": 1000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 527 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 16711935, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "PressureCalibration": { + "id": 74, + "details": [ + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "MMC(is uint32_t type, minimum -18, maximum 127 ok?) An uint16_t value to add an offset to the measured pressure value from -1270 to +1270 mBar for field calibration purposes", + "version": { + "first": 483, + "last": 527 + }, + "values": { + "default": 0, + "minimum": -128, + "maximum": 127 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "TfxSecondaryChannelInfo_1": { + "id": 75, + "details": [ + { + "type": "uint32_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": 482, + "last": 527 + }, + "values": { + "default": 0, + "minimum": -128, + "maximum": 127 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "TfxSecondaryChannelInfo_2": { + "id": 76, + "details": [ + { + "type": "uint32_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": 482, + "last": 527 + }, + "values": { + "default": 0, + "minimum": -128, + "maximum": 127 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 527 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "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 + } + } + }, + "CONFIGEXCHANGE": { + "id": 4, + "version": { + "first": 3, + "last": 236 + }, + "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": 236 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 8 + }, + "statictype": "dynamic" + } + ] + }, + "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": 236 + }, + "statictype": "dynamic" + } + ] + }, + "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": 236 + }, + "statictype": "dynamic" + } + ] + }, + "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": 236 + }, + "statictype": "dynamic" + } + ] + }, + "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": 236 + }, + "statictype": "dynamic" + } + ] + }, + "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": 236 + }, + "statictype": "dynamic" + } + ] + }, + "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": 236 + }, + "statictype": "dynamic" + } + ] + }, + "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": 236 + }, + "statictype": "dynamic" + } + ] + }, + "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": 236 + }, + "statictype": "dynamic" + } + ] + }, + "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": 236 + }, + "statictype": "dynamic" + } + ] + }, + "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": 236 + }, + "statictype": "dynamic" + } + ] + }, + "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": 236 + }, + "statictype": "static" + } + ] + }, + "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": 236 + }, + "statictype": "static" + } + ] + }, + "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": 236 + }, + "statictype": "dynamic" + } + ] + } + }, + "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 + } + } + }, + "NFC": { + "id": 21, + "version": { + "first": 1, + "last": 62 + }, + "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": 62 + }, + "statictype": "dynamic" + } + ] + }, + "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": 62 + }, + "statictype": "dynamic" + } + ] + } + }, + "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 + } + } + }, + "SYSTEM": { + "id": 0, + "version": { + "first": 141, + "last": 534 + }, + "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": 534 + }, + "statictype": "dynamic" + } + ] + }, + "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": 534 + }, + "statictype": "dynamic" + } + ] + }, + "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": 534 + }, + "values": { + "default": "" + }, + "statictype": "static" + } + ] + }, + "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": 534 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 534 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 534 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 534 + }, + "values": { + "default": "" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 534 + }, + "statictype": "dynamic" + } + ] + }, + "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": 534 + }, + "statictype": "dynamic" + } + ] + }, + "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": 534 + }, + "statictype": "static" + } + ] + }, + "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": 534 + }, + "statictype": "dynamic" + } + ] + }, + "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": 534 + }, + "statictype": "dynamic" + } + ] + }, + "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": 534 + }, + "statictype": "static" + } + ] + }, + "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": 534 + }, + "statictype": "dynamic" + } + ] + }, + "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": 534 + }, + "statictype": "static" + } + ] + }, + "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": 534 + }, + "statictype": "dynamic" + } + ] + } + }, + "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 + } + } + }, + "METROLOGYASST": { + "id": 18, + "version": { + "first": 4, + "last": 114 + }, + "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": 114 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "default": 32000, + "minimum": 1, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 7 + }, + "statictype": "static" + } + ] + }, + "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": 4294967295 + }, + "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": 4294967295 + }, + "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": 114 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 4, + "minimum": 0, + "maximum": 8 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 2, + "minimum": 0, + "maximum": 4 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "statictype": "static" + } + ] + }, + "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 – Celcius, 1 – 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 – Celcius, 1 – Fahrenheit.", + "version": { + "first": 82, + "last": 114 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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 – Mpa, 1 – 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 – Mpa, 1 – PSI.", + "version": { + "first": 82, + "last": 114 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 60000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 0, + "minimum": -2000000, + "maximum": 2000000 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 114 + }, + "values": { + "minimum": 0, + "maximum": 7 + }, + "statictype": "dynamic" + } + ] + }, + "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": 114 + }, + "values": { + "default": 0, + "minimum": -4000000, + "maximum": 4000000 + }, + "statictype": "static" + } + ] + } + }, + "status": { + "BAD_CONFIG": { + "id": 0 + }, + "DID_NOT_STORE": { + "id": 1 + }, + "PENDING_STORE": { + "id": 2 + } + } + }, + "LOGGER": { + "id": 8, + "version": { + "first": 1, + "last": 18 + }, + "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": 18 + }, + "values": { + "default": 4096, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 18 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 18 + }, + "statictype": "dynamic" + } + ] + }, + "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": 18 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "id": 0 + }, + "RESTARTED": { + "id": 1 + }, + "BLOCK_LISTING": { + "id": 2 + }, + "PENDING_STORE": { + "id": 3 + }, + "DID_NOT_STORE": { + "id": 4 + } + } + }, + "TESTMANAGER": { + "id": 98, + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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": "Lorem ipsum", + "version": { + "first": null, + "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 + } + } + }, + "PERIODICLOG": { + "id": 17, + "version": { + "first": 1, + "last": 75 + }, + "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": 75 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 201335811, + "minimum": 3, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 75 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "dynamic" + } + ] + }, + "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": 75 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "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": 69 + }, + "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": 69 + }, + "statictype": "dynamic" + } + ] + }, + "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": 69 + }, + "values": { + "default": "Tadiran" + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 69 + }, + "values": { + "default": 6, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 69 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 69 + }, + "values": { + "default": 36, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 69 + }, + "values": { + "default": 28, + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 69 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 69 + }, + "statictype": "dynamic" + } + ] + }, + "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": 69 + }, + "statictype": "dynamic" + } + ] + }, + "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": 69 + }, + "values": { + "default": 473040000, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 69 + }, + "values": { + "default": 19000, + "minimum": 0, + "maximum": 65535 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 69 + }, + "statictype": "dynamic" + } + ] + }, + "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": 69 + }, + "values": { + "default": 96, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + } + }, + "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 + } + } + }, + "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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "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": 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": 315 + }, + "statictype": "dynamic" + } + ] + }, + "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": 315 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 313, + "last": 315 + }, + "values": { + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 313, + "last": 315 + }, + "values": { + "default": 500, + "minimum": 0, + "maximum": 10000000 + }, + "statictype": "static" + } + ] + }, + "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": 313, + "last": 315 + }, + "values": { + "minimum": 0, + "maximum": 163840 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 313, + "last": 315 + }, + "values": { + "minimum": 0, + "maximum": 100 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 313, + "last": 315 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "static" + } + ] + }, + "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": 315 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 315 + }, + "values": { + "minimum": 0, + "maximum": 28800 + }, + "statictype": "static" + } + ] + } + }, + "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 + } + } + }, + "IRDA": { + "id": 20, + "version": { + "first": 10, + "last": 209 + }, + "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": 210 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 210 + }, + "values": { + "default": 3, + "minimum": 1, + "maximum": 255 + }, + "statictype": "static" + } + ] + }, + "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": 210 + }, + "values": { + "minimum": 0, + "maximum": 255 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 210 + }, + "statictype": "dynamic" + } + ] + }, + "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": 210 + }, + "values": { + "default": 8, + "minimum": 0, + "maximum": 9 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 210 + }, + "values": { + "default": 0, + "minimum": -9, + "maximum": 0 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 210 + }, + "values": { + "default": 268, + "minimum": 0, + "maximum": 268 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": "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": 161, + "last": 210 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 4294967295 + }, + "statictype": "static" + } + ] + }, + "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": 210 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 210 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 210 + }, + "statictype": "infrequentlyupdated" + } + ] + }, + "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": 210 + }, + "values": { + "default": 0, + "minimum": 0, + "maximum": 1 + }, + "statictype": "infrequentlyupdated" + } + ] + } + }, + "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 + } + } + }, + "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" + } + ] + }, + "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" + } + ] + } + }, + "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": 199 + }, + "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": 199 + }, + "statictype": "dynamic" + } + ] + }, + "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": 199 + }, + "statictype": "static" + } + ] + } + }, + "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 + } + } + }, + "FLEXNETVERSION": { + "id": 24, + "version": { + "first": 1, + "last": 9999 + } + }, + "FLEXNETSERIAL": { + "id": 26, + "version": { + "first": 1, + "last": 20 + }, + "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": "Lorem Ipsum", + "version": { + "first": 2, + "last": 20 + }, + "statictype": "dynamic" + } + ] + }, + "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": "Lorem Ipsum", + "version": { + "first": 2, + "last": 20 + }, + "statictype": "dynamic" + } + ] + } + }, + "status": { + "UNKNOWN_PARAMETER": { + "id": 0 + }, + "TOO_MANY_APPS": { + "id": 1 + } + } + } +} diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/naproduct_R2006.txt b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/naproduct_R2006.txt new file mode 100644 index 00000000..b111fb3a --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockFwExamples/NA_R2006/naproduct_R2006.txt @@ -0,0 +1,43 @@ +Release summary for product 1.75 + + Block ./Zero/objects/zero + Id 0x00, CRC16 0x43E2, size 37948 bytes, version 5.33 + + Block ../../Applications/PowerMon/objects/powermon + Id 0x01, CRC16 0x2527, size 3068 bytes, version 0.68 + + Block ../../Applications/ConfigExchange/objects/configex + Id 0x04, CRC16 0x73BF, size 7940 bytes, version 2.35 + + Block ../../Applications/Logger/objects/logger + Id 0x08, CRC16 0x12D4, size 3972 bytes, version 0.18 + + Block ../../Applications/Metrology/Water/GenesisFlow/objects/genesisflow + Id 0x0F, CRC16 0x3A55, CRC32 0xFBEE5A5E, size 25424 bytes, version 3.15 + + Block ../../Applications/MetrologyAssistant/objects/assistant + Id 0x12, CRC16 0xD466, size 7948 bytes, version 1.14 + + Block ../../Applications/Customer/GenesisDefault/objects/customer + Id 0x09, CRC16 0xDCD7, size 6468 bytes, version 1.57 + + Block ../../Applications/Communications/IrDA/objects/irda + Id 0x14, CRC16 0x2ACD, size 24108 bytes, version 2.10 + + Block ../../Applications/Communications/NFC/objects/nfc + Id 0x15, CRC16 0x43F4, size 6808 bytes, version 0.59 + + Block ../../Applications/FlexNetVersion/objects/flexnetversion + Id 0x18, CRC16 0x68A4, size 116 bytes, version 20.06 + + Block ../../Applications/Communications/FlexNetSerial/objects/flexnetserial + Id 0x1A, CRC16 0x7326, size 6180 bytes, version 0.20 + + Block ../../Applications/NA2WAlarms/objects/na2walarms + Id 0x17, CRC16 0x49D9, size 10264 bytes, version 1.02 + + Block ../../Applications/NA2WLogger/objects/NA2WLogger + Id 0x16, CRC16 0xC9EF, size 9712 bytes, version 1.99 + +Minimum supported core revision: "Cordonel 1.62" +Maximum supported core revision: "Cordonel 1.75" diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockGenesis.cs b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockGenesis.cs new file mode 100644 index 00000000..f113f773 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockGenesis.cs @@ -0,0 +1,978 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using NCrunch.Framework; +using Xylem.Common.CommonCore.Consts; +using Xylem.Common.Hardware.WaterMeter.Genesis.Applications; +using Xylem.Common.Hardware.WaterMeter.Genesis.Applications.Const; +using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig; +using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore; +using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile; +using Xylem.Common.Hardware.WaterMeter.Genesis.Registers; +using Xylem.Common.Hardware.WaterMeter.Genesis.Registers.DataTypes; +using Xylem.Common.Logic.ProductionOrderCore.TestResults; + +namespace Xylem.Common.Hardware.WaterMeter.Genesis.MockGenesis +{ + /// + /// Mock Genesis for usage to simulate an original Genesis without any hardware: + /// - The communication will use buffers program internally instead a physical port, + /// - Login, Logout and all other operations will NOT use a database call. + /// + public class MockGenesis : GenesisMeter + { + #region -------------------------------- Properties ----------------------------------------------------------- + + /// + /// The application description file (ADF) will be used to install a simulated new firmware to + /// the mock Genesis + /// + private String _packageDescriptionFile = DefaultPackageDescriptionFile; + + /// + /// The required mock firmware installation is based on the file application simulation an installation + /// based on the package description file. + /// + private List _mockFw = new List(); + + /// + /// A list of all config registers for debug. + /// + // ReSharper disable once CollectionNeverQueried.Local for DEBUG only + private readonly List _configRegisterNames = new List(); + + /// + /// A list of all FLASH registers for debug. + /// + // ReSharper disable once CollectionNeverQueried.Local for DEBUG only + private readonly List _flashRegisterNames = new List(); + + /// + /// Simulated permanent storage (FLASH memory) to keep the values set with store configuration. + /// + private readonly MeterRegisters _flashRegister = new MeterRegisters(); + + /// + /// A list of all known registers which do not return the written value. + /// EXAMPLES: + /// - SENSUSRADIO_SystemState writing 0xFF returns 0x02 + /// - XXX_StoreConfiguration writing 0x01 returns 0x00 + /// + /// The registers can be fully qualified or contain a substring like _StoreConfiguration if it always + /// returns an identical reply! + /// + /// The first value is the expected value which will be searched for and the second value is the reply! + /// Only it the first value is exact as described here the reply is going to be changed. + /// + /// + private static readonly List SpecialRegisterReplies = new List + { + // (partial) name expected value reply value + new RecoveryRegisterItem("SENSUSRADIO_SystemState", new Byte[]{0xFF}, new Byte[]{0x02}), + new RecoveryRegisterItem("_StoreCalibration", new Byte[]{0x01}, new Byte[]{0x00}), + new RecoveryRegisterItem("_StoreConfiguration", new Byte[]{0x01}, new Byte[]{0x00}) + }; + + /// + /// The root path for all mock FwPackaged. + /// + private const String RootMockFwPath = "MockFwExamples"; + + /// + /// Mock object can overwrite PcbId for test purposes and set password to null to avoid + /// usage of wrong password and lock of the device trying to log in with the wrong password + /// + public new String PcbId + { + set + { + base.PcbId = value; + ClearPassword(); + } + get => base.PcbId; + } + + /// + /// Mock object can overwrite LutCrc for test purposes + /// + public new String LutCrc + { + set => base.LutCrc = value; + get => base.LutCrc; + } + + /// + /// Mock object can overwrite StrCoreRevision for test purposes + /// + public new String StrCoreRevision + { + set => base.StrCoreRevision = value; + get => base.StrCoreRevision; + } + + /// + /// Mock object can overwrite CoreRevision for test purposes + /// + public new Int32? CoreRevision + { + set => base.CoreRevision = value; + get => base.CoreRevision; + } + + /// + /// Mock object can overwrite RadioFrequencyMhz for test purposes + /// + public new Int32? RadioFrequencyMhz + { + set => base.RadioFrequencyMhz = value; + get => base.RadioFrequencyMhz; + } + + /// + /// Mock object can overwrite InstalledFwVersion for test purposes + /// + public new UInt32? InstalledFwVersion + { + set => base.InstalledFwVersion = value; + get => base.InstalledFwVersion; + } + + /// + /// Mock object can overwrite Region for test purposes + /// + public new String Region + { + set => base.Region = value; + get => base.Region; + } + + /// + /// Mock object can overwrite MeterSize for test purposes + /// + public new String MeterSize + { + set => base.MeterSize = value; + get => base.MeterSize; + } + + /// + /// Mock object can overwrite FwVersion for test purposes + /// + public new String FwVersion + { + private set => base.FwVersion = value; + get => base.FwVersion; + } + /// + /// Mock object can overwrite login status for test purposes + /// + public new Boolean IsLoggedOn + { + set => base.IsLoggedOn = value; + get => base.IsLoggedOn; + } + + /// + /// The exec path of the assembly for debug in environment. + /// + private readonly String _assemblyExecRootPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + + /// + /// Fw package path relative to solution main folder. + /// + private readonly String _mockFwPackageRootPath; + + #endregion ----------------------------- Properties ----------------------------------------------------------- + + #region --------------------------------- Default package description file ------------------------------------ + + /// + /// This file will be used to assign the default MeterApplications as simulated installation to the Genesis + /// meter. It contains only the important information: + /// - Each line starting with "Id" is an App, + /// - the "Maximum supported core revision" will be used as CoreRevision. + /// + private const String DefaultPackageDescriptionFile = + "Id 0x00, CRC16 0x39A8, size 37972 bytes, version 5.37\r\n" + + "Id 0x01, CRC16 0xB16C, size 3112 bytes, version 0.70\r\n" + + "Id 0x04, CRC16 0x8290, size 7944 bytes, version 2.38\r\n" + + "Id 0x08, CRC16 0x12D4, size 3972 bytes, version 0.18\r\n" + + "Id 0x11, CRC16 0x5796, size 12412 bytes, version 0.75\r\n" + + "Id 0x10, CRC16 0x0704, size 93488 bytes, version 5.30\r\n" + + "Id 0x0F, CRC16 0xA3A6, size 25164 bytes, version 3.02\r\n" + + "Id 0x09, CRC16 0xD56D, size 6196 bytes, version 1.59\r\n" + + "Id 0x12, CRC16 0x9BA6, size 7948 bytes, version 1.13\r\n" + + "Id 0x14, CRC16 0x2EB1, size 23324 bytes, version 2.06\r\n" + + "Id 0x15, CRC16 0x43F4, size 6808 bytes, version 0.59\r\n" + + "Id 0x18, CRC16 0xB2D5, size 116 bytes, version 13.0B\r\n" + + "Maximum supported core revision: \"Cordonel 1.78\""; + + #endregion ------------------------------ Default package description file ------------------------------------ + + #region -------------------------------- Class handling ------------------------------------------------------- + + /// + /// Standard Ctor + /// + public MockGenesis() + { + var subFolder = Path.Combine("Hardware", "WaterMeter", "Genesis", "MockGenesis"); + var solutionPath = ""; + if (NCrunchEnvironment.NCrunchIsResident()) + { + solutionPath = NCrunchEnvironment.GetOriginalSolutionPath().Replace("Common.sln", ""); + } + else + { + if (_assemblyExecRootPath != null) + { + // We are in the Unit test folder "..\Common\Production\ProductionUiCordonel.UnitTests\bin\Debug" + // and need to go back to "..\Common" + var directoryInfo = Directory.GetParent(_assemblyExecRootPath)?.Parent?.Parent?.Parent?.Parent; + if (directoryInfo != null) + { + solutionPath = directoryInfo.FullName; + } + } + } + + _mockFwPackageRootPath = Path.Combine(solutionPath, subFolder, "MockFwExamples"); + Console.WriteLine($@"MOCK GENESIS: Search path for MockFwExamples: {_mockFwPackageRootPath}"); + } + + #endregion + + #region -------------------------------- Firmware update and modification ------------------------------------- + + /// + /// Install a new firmware to the mock with the package description file as serialized string + /// which is reduced to the important lines or alternative + /// a named FW Version string like "R1.3.0B" or "R130B" which has to be part of the MockFwExamples. + /// + /// The filters to find the path in the root path is the region and FW release version + /// "EMEA" or "NA" + /// "R130B" or "R1.3.0B" + /// additional naming is allowed (e.g. "EMEA_R13F3_replaces_R1107_R1108") + /// + /// The filters to accept the file is: + /// "product" and + /// ".txt" + /// additional naming is allowed (e.g. "rowproduct_R130B.txt") + /// + /// The FW root path is the path where the FW update packages are stored. + /// All files needed to be stored directly in the main folder of the FW version: + /// + /// EXAMPLE: + /// [Root path]\EMEA_R130B\rowproduct_xyz.txt (package description file, mandatory is "product" and ".txt") + /// \configuration.json + /// \binfile00_0537_xyz.bin (package description file, mandatory is "binfile" and ".bin") + /// \binfile01_0070_xyz.bin + /// \... + /// \binfile18_130B_xyz.bin + /// [Root path]\NA_R2006 \naproduct_xyz.txt (package description file, mandatory is "product" and ".txt") + /// \configuration.json + /// \binfile00_0533_xyz.bin (package description file, mandatory is "binfile" and ".bin") + /// \binfile01_0068_xyz.bin + /// \... + /// \binfile18_2006_xyz.bin + /// + /// + /// + /// if this is null, the description file will be installed + /// + /// - Initial + /// + /// + /// - Logout, clear FLASH, login. + /// + /// + /// - Take FW version from MockFwExamples if explicit named with the release string. + /// + /// + /// - Returns bool. + /// + public Boolean InstallNewMockFw(String packageDescriptionFile = null, String fwName = null) + { + if (fwName != null) + { + var releaseName = FwVersion.Replace(".", ""); + + if (!FwVersion.Equals(fwName) && !releaseName.Contains(fwName)) + { + //Load new rawproduct.txt or naproduct.txt and install it to MockGenesis + if (!MeterFwUpdate.LoadPackageFile(_mockFwPackageRootPath, fwName, out _packageDescriptionFile)) + return false; + } + } + else if (packageDescriptionFile != null) + { + // Set the new package file which will be parsed and used as simulation for all installed + // applications + _packageDescriptionFile = packageDescriptionFile; + } + else + { + return false; + } + + Logout(); + _flashRegister.MeterRegisterDic.Clear(); + _flashRegisterNames.Clear(); + + // Force re-generation of the meter app and config register lists + MeterAppListVersion.Clear(); + ConfigRegister.MeterRegisterDic.Clear(); + ConfigApplications.Clear(); + + // Login to build initial registers being able to use the FLASH register dictionary immediately. + Login(); + + return RebootGenesis() == StatusReturn.Okay; + } + + /// + /// Prepare the mock installed firmware by parsing the package description file. + /// + /// + /// - Initial + /// + private void ParsePackageDescriptionFile() + { + if (string.IsNullOrEmpty(_packageDescriptionFile)) + return; + + if (_mockFw == null) + _mockFw = new List(); + _mockFw.Clear(); + + MeterFwUpdate.GetPackageFileApplications(_packageDescriptionFile, _mockFw); + CoreRevision = MeterFwUpdate.GetCoreRevisionMax(_packageDescriptionFile); + if (CoreRevision != null) + StrCoreRevision = BuildFwVersionStringFromDec(CoreRevision); + } + + /// + /// Modify or erase one mock app to simulate an application error of the firmware package. + /// This will be used for test purposes to manually change installed app-properties. + /// + /// REMIND: All Apps are required to stay in MeterAppListVersion as this is a list of all Apps found in the + /// configuration.json. Does mean, for erasure just change the status to + /// ! + /// + /// + /// + /// null doesn't change actual version + /// null doesn't change actual CRC + /// + /// true if modification could be done + /// + /// - Initial + /// + public Boolean ModifyMockApp(Byte appId, UInt32? version = null, UInt16? crc = null, Boolean eraseApp = false) + { + if (MeterAppListVersion == null || + MeterAppListVersion.Count == 0 || + MeterAppListVersion.All(app => app.AppId != appId)) + return false; + + Logout(); + + foreach (var app in MeterAppListVersion.Where(app => app.AppId == appId)) + { + if (eraseApp) + { + app.IsInstalled = false; + app.Status = MeterAppState.MeterAppNotInstalled; + app.StrVersion = "0.0"; + app.Version = 0; + } + if (version != null) + { + app.Version = (UInt32)version; + app.StrVersion = BuildFwVersionStringFromDec((Int32?)version); + } + + if (crc != null) + { + app.Crc = (UInt16)crc; + } + } + return true; + } + #endregion ----------------------------- Firmware update and modification ------------------------------------- + + #region -------------------------------- Mock Genesis Initialization ------------------------------------------ + /// + /// Mock reading all applications from a predefined package description file instead from the Meter. + /// + /// + /// - Initial + /// + protected override void ReadMeterFirmwareAndAssignRegisters() + { + // Avoid overwriting of list if this already exits + if (MeterAppListVersion.Any() && MeterAppListVersion.All(f => f.Status != MeterAppState.Unknown)) + { + Logger.Warn($"Slot:{Slot} - Trying to overwride installed FW. Skipping generation of new " + + "App list and meter register dictionary"); + return; + } + + // This loads the configuration.json from the exec directory + LoadConfiguration(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location))); + + // Simulate a firmware installation using the package description file to assign applications + ParsePackageDescriptionFile(); + + // Use the _mockFw created out of the package description file and which is a file application list + if (_mockFw == null || _mockFw.Count < MeterFwUpdate.MinAppsRequiredForOperation) + { + return; + } + + //Get all existing applications from meter register dictionary + foreach (var meterApp in ConfigApplications.OrderBy(o => o.AppId)) + { + // Take all listed config apps even if not installed + var app = new MeterApplications + { + AppId = meterApp.AppId, + Version = 0, + StrVersion = "0.00", + AppName = meterApp.AppName, + Crc = 0x0000, + Status = MeterAppState.MeterAppNotInstalled, + IsInstalled = false + }; + + foreach (var fileApp in _mockFw) + { + if (fileApp.AppId == meterApp.AppId) + { + app.Version = fileApp.Version; + app.StrVersion = fileApp.StrVersion; + app.Crc = fileApp.Crc; + app.Status = MeterAppState.MeterAppUpToDate; + app.IsInstalled = true; + } + + // The FLEXNETVERSION is the overall firmware version + if (fileApp.AppId == MeterFwUpdate.FlexnetVersionAppId) + { + InstalledFwVersion = fileApp.Version; + FwVersion = fileApp.StrVersion; + } + } + + MeterAppListVersion.Add(app); + } + + try + { + // Initial list of ALL registers defined in configuration.json read from local bin directory + var tempConfigRegisters = ConfigRegister.MeterRegisterDic.ToList(); + + // Reduce registers to valid registers for a specific application with a specific version + // The old register dictionary is going to be cleared automatically calling this method. + BuildValidMeterRegisters(tempConfigRegisters); + + // Fill the meter register dictionary with defaults are stored values in simulated FLASH memory + InitConfigAndFlashRegisters(); + + // Check for SENSUSRADIO as indication for region "EMEA", else it is regin "NA" + Region = "NA"; + if (ConfigRegister.MeterRegisterDic.Any(app => app.Key.AppName.Equals("SENSUSRADIO"))) + { + var value = ConfigRegister.Get("SENSUSRADIO_FrequencyIndicator"); + if (value != null) + { + RadioFrequencyMhz = RegisterConverter.ByteArrayToValue(value); + Region = "EMEA"; + } + } + } + catch (Exception ex) + { + Logger.Error($"Slot:{Slot} - {ex.Message}"); + } + } + + /// + /// Use the app name to flash all contents: + /// - Take all values from RAM memory (config register dictionary) and copy it to FLASH memory (flash + /// register dictionary) which simulates the non-volatile memory of the Genesis. + /// + /// + /// + /// - Initial. + /// + private void FlashMemory(String appName) + { + if (_flashRegister == null || ConfigRegister == null) + { + return; + } + + // Safe all data from config to FLASH register dictionary for App. + foreach (var reg in ConfigRegister.MeterRegisterDic) + { + try + { + var regName = reg.Key.GetIdent(); + + // Filter for all registers of a specific App + if (regName.Contains(appName)) + { + // Avoid writing of NOT writable registers, only read write makes sense as others cannot be + // read back! + if (reg.Key.RegisterDetail.Privilege.Lvl8 == Access.RW && + reg.Key.DataType != typeof(Rpc)) + { + var flashData = ConfigRegister.Get(regName); + // Throws an exception if register doesn't exist, but we want to go ahead with the others + var regDef = _flashRegister.GetRegisterDefinitionByName(regName); + _flashRegister.Set(regDef, flashData); + } + } + } + catch (Exception ex) + { + Logger.Error($"Slot:{Slot} - {ex.Message}"); + } + } + } + + /// + /// Store one single parameter to flash memory to simulate FW internal change of register or the + /// "GENESISFLOW_StoreCalibration": + /// - Avoid to check of RO or WO to force an update as it would be done by the FW. + /// + /// + /// + /// - Initial. + /// + private void SingleParameterFlashMemory(String regName) + { + if (_flashRegister == null) + { + return; + } + + try + { + var flashData = ConfigRegister.Get(regName); + // Throws an exception if register doesn't exist, but we want to go ahead with the others + var regDef = _flashRegister.GetRegisterDefinitionByName(regName); + _flashRegister.Set(regDef, flashData); + } + catch (Exception ex) + { + Logger.Error($"Slot:{Slot} - {ex.Message}"); + } + } + + /// + /// Fill the meter register dictionary with the stored values of the simulated FLASH memory: + /// - If FLASH memory register dictionary doesn't exist (initial start) generate a copy of + /// the config register dictionary and fill it with default values from configuration.json, + /// - Copy ALWAYS the content of the FLASH to the config register dictionary. + /// + /// REMIND: + /// If an application has received a store configuration, the FLASH content will be overwritten + /// from default value to the actual value of the config register dictionary as this is the + /// temporary value (RAM simulation) of the Genesis. + /// + /// + /// + /// - Initial. + /// + private void InitConfigAndFlashRegisters() + { + if (_flashRegister == null || ConfigRegister == null) + { + return; + } + + _configRegisterNames.Clear(); + // If the FLASH registers do not exist, create those and fill it with default values + if (_flashRegister.MeterRegisterDic.Count == 0) + { + foreach (var reg in ConfigRegister.MeterRegisterDic) + { + var regName = reg.Key.GetIdent(); + _flashRegisterNames.Add(regName); + var regDef = ConfigRegister.GetRegisterDefinitionByName(regName); + + // First clone entire register set to avoid exception if register is not available + _flashRegister.MeterRegisterDic.TryAdd(reg.Key, null); + + // Avoid writing of NOT writable registers + if (reg.Key.RegisterDetail.Privilege.Lvl8 == Access.RW) // && reg.Key.DataType != typeof(Rpc)) + { + // Add default value to FLASH register dictionary + RegisterConverter.SetToDefault(regDef, out var value); + _flashRegister.Set(regDef, value); + } + } + + _flashRegisterNames.Sort(); + } + + // Preset at initial login after start or reboot all config registers with the FLASH register values. + // Those are set to default on initial start and after store configuration on a predefined value. + foreach (var reg in ConfigRegister.MeterRegisterDic) + { + try + { + var regName = reg.Key.GetIdent(); + _configRegisterNames.Add(regName); + var regDef = ConfigRegister.GetRegisterDefinitionByName(regName); + + // Avoid writing of NOT writable registers, only read write makes sense as others cannot be read + // back! + if (reg.Key.RegisterDetail.Privilege.Lvl8 == Access.RW) //&& reg.Key.DataType != typeof(Rpc)) + { + var flashData = _flashRegister.Get(regName); + + // Throws an exception if register doesn't exist, but we want to go ahead with the others + ConfigRegister.Set(regDef, flashData); + } + + } + catch (Exception ex) + { + Logger.Error($"Slot:{Slot} - {ex.Message}"); + } + _configRegisterNames.Sort(); + } + } + + #endregion ----------------------------- Mock Genesis Initialization ------------------------------------------ + + #region -------------------------------- Mock Genesis Simulation ---------------------------------------------- + /// + /// + /// Simulate login to mock Genesis for test purposes + /// + /// + /// - Initial. + /// + public override Boolean Login() + { + ReadMeterFirmwareAndAssignRegisters(); + IsLoggedOn = true; + return IsLoggedOn; + } + + /// + /// + /// Simulate logout to mock Genesis for test purposes + /// + /// + /// - Initial. + /// + public override Boolean Logout() + { + IsLoggedOn = false; + return IsLoggedOn; + } + + /// + /// + /// Simulate login with password to mock Genesis for test purposes + /// + /// + /// - Initial. + /// + public override Boolean Login(String password, Boolean runImmediately = true, + Boolean skipReadMeterFwAndAssignRegisters = false) + { + Password = password; + return Login(); + } + + /// + /// Mock Write Register: + /// - Optional: wait for result and validate. + /// + /// 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 + /// + /// - Initial mock implementation. + /// + /// + /// - Capture "SYSTEM_TriggerUpgrade" to force a reboot and install the FW defined in the actual FW package + /// description file. + /// - Store calibration executed on calibration registers. + /// + public override Boolean WriteRegister(String regName, T value, Boolean waitForResult = true, + Boolean checkRegister = false, UInt16 skipRetryErrorCode = CommunicationConfig.SkipRetryErrorCode) + { + try + { + var regDef = ConfigRegister.GetRegisterDefinitionByName(regName); + var data = RegisterConverter.ValueToByteArray(value); + var hideDataInLog = regDef.RegisterName.Contains("EncryptionKey") || + regDef.RegisterName.Contains("Password"); + + var rawMsg = RegisterConverter.GetRegisterRawText(regDef, data, hideDataInLog); + Logger.Info($"Slot:{Slot} - Write register({regDef.GetIdent()}), record({rawMsg})"); + + // Check for special response for predefined registers which reply with a changed + // parameter like SENSUSRADIO_SystemState set to 0xFF creates a reply of 0x02. + // This has to be done BEFORE ConfigRegister.Set! + CheckAndModifySpecialReplies(regName, data); + + // Avoid writing of NOT writable registers and out of range of register value + if (!PreRegisterWrite(regDef, data)) + return false; + + // Throws an exception if register doesn't exist + ConfigRegister.Set(regDef, data); + + // For mock simulation the write register is going to kick-off special activities + CheckSpecialActivities(regName, value); + + // If no further action like check register or read-back is required, exit here with success + if (!waitForResult && !checkRegister) + { + return true; + } + + // If register check by read back is not required we return the acknowledgment state + if (!checkRegister || regDef.RegisterDetail.Privilege.Lvl8 == Access.WO) + { + return true; + } + + var readBackData = ReadRegister(regName, data.Length, skipRetryErrorCode); + if (readBackData == null) + return false; + + // Check if register read was okay and read and written data are EQUAL + for (var i = 0; i < data.Length; i++) + { + if (readBackData[i] != data[i]) + return false; + } + + return true; + } + catch (Exception e) + { + Logger.Error($"Slot:{Slot} - {e.Message}"); + } + + return false; + } + + /// + /// Check for special activities needed to execute on register write access: + /// - Store configuration to safe all values of a single App to the simulated FLASH memory, + /// - Store calibration stores all defined register , + /// to the simulated FLASH memory, + /// - Trigger upgrade forces a reboot of the meter including a reload of all applications and regeneration of + /// all registers. + /// + /// + /// + /// + /// + /// - Initial MockGenesis simulation. + /// + private void CheckSpecialActivities(String regName, T value) + { + // Capture "StoreConfiguration" to copy config register contents of App to FLASH + var searchString = "_StoreConfiguration"; + if (regName.Contains(searchString)) + { + var appName = regName.Replace(searchString, ""); + FlashMemory(appName); + } + + // Capture "StoreCalibration" to copy config register contents of App to FLASH + searchString = "GENESISFLOW_StoreCalibration"; + if (regName.Contains(searchString)) + { + // Store single parameter to FLASH + foreach (var registerName in CalibrationResults.CalibrationRegisterNames) + SingleParameterFlashMemory(registerName); + } + + // Capture "UpgradePermissions" to copy config register contents of App to FLASH as + // SYSTEM doesn't have a "StoreConfiguration" command + searchString = "SYSTEM_UpgradePermissions"; + if (regName.Contains(searchString)) + { + SingleParameterFlashMemory(searchString); + } + + // Capture "SYSTEM_TriggerUpgrade" to force a reboot and install the actual given firmware + // package description file as FW. + searchString = "SYSTEM_TriggerUpgrade"; + if (regName.Equals(searchString) && typeof(T) == typeof(Boolean)) + { + var forceTriggerUpgrade = (Boolean)Convert.ChangeType(value, typeof(Boolean)); + if (forceTriggerUpgrade) + RebootGenesis(); + } + } + + /// + /// Check for special response for predefined registers which reply with a changed parameter like + /// SENSUSRADIO_SystemState set to 0xFF creates a reply of 0x02. This should simulate the real + /// GenesisMeter reply. + /// + /// + /// + /// + /// - Initial MockGenesis simulation. + /// + private static void CheckAndModifySpecialReplies(String regName, Byte[] data) + { + + if (SpecialRegisterReplies.Any(n => regName.Contains(n.RegisterIdent))) + { + foreach (var special in SpecialRegisterReplies.Where(special => + regName.Contains(special.RegisterIdent))) + { + var retVal = true; + + // Avoid buffer overflow + if (data.Length < special.ReadBackValue.Length) + break; + + for (var i = 0; i < special.WriteValue.Length; i++) + { + // Check the required input which forces a change of the response + if (data[i] != special.WriteValue[i]) + retVal = false; + } + + if (!retVal) + break; + + // Exchange the received value with the special reply + for (var i = 0; i < special.ReadBackValue.Length; i++) + { + data[i] = special.ReadBackValue[i]; + } + } + } + } + + /// + /// Mock Read Register and return byte array for test purposes stored in the config register dictionary. + /// + /// + /// expected length for response + /// skip retries on this error code return + /// + /// + /// - Initial mock implementation. + /// + public override Byte[] ReadRegister(String regName, Int32? expectedLength = null, + UInt16 skipRetryErrorCode = CommunicationConfig.SkipRetryErrorCode) + { + try + { + var regDef = ConfigRegister.GetRegisterDefinitionByName(regName); + var hideDataInLog = regDef.RegisterName.Contains("EncryptionKey"); + + // Avoid reading of NOT readable registers + if (regDef.RegisterDetail.Privilege.Lvl8 != Access.RW && + regDef.RegisterDetail.Privilege.Lvl8 != Access.RO) + return null; + + var result = ConfigRegister.Get(regName); + // Avoid access of not present register + if (result == null) + { + Logger.Error($"Slot:{Slot} - Read register({regDef.GetIdent()}) returns value (null)"); + return null; + } + + var rawMsg = RegisterConverter.GetRegisterRawText(regDef, result, hideDataInLog); + Logger.Info($"Slot:{Slot} - Read register({regDef.GetIdent()}), record({rawMsg})"); + + return result; + } + catch (Exception e) + { + Logger.Error($"Slot:{Slot} - {e.Message}"); + } + + return null; + } + + /// + /// The simulation of the Genesis reboot: + /// - Login to create the actual installed + /// Kill all old applications, + /// this will force a regeneration of a valid application list and config register dictionary! + /// This will include the copy of FLASH register values or defaults to the config meter dictionary. + /// + /// + /// + /// - Initial. + /// + /// + /// - Reboot count used to check for success of reboot. + /// + /// + /// - Prepared to override the Genesis reboot used in . + /// + public override StatusReturn RebootGenesis() + { + // ReLogin to build initial registers if it has not been performed in advance + ReLogin(); + + const String registerName = "CUSTOMER_RebootCount"; + var rebootCountBeforeReboot = RegisterConverter.ByteArrayToValue(ReadRegister(registerName)); + + // Simulate reboot execution by increasing the reboot count by one + rebootCountBeforeReboot++; + if (WriteRegister(registerName, rebootCountBeforeReboot)) + { + SingleParameterFlashMemory(registerName); + } + + // Kill all old applications to force a regeneration of a valid application list + // and config register dictionary! + Logout(); + FwVersion = ""; + InstalledFwVersion = 0; + Region = ""; + RadioFrequencyMhz = null; + MeterAppListVersion.Clear(); + ConfigRegister.MeterRegisterDic.Clear(); + ConfigApplications.Clear(); + + // Login to build initial registers if it has not been performed in advance + Login(); + var rebootCountAfterReboot = RegisterConverter.ByteArrayToValue(ReadRegister(registerName)); + + return rebootCountAfterReboot == rebootCountBeforeReboot ? StatusReturn.Okay : StatusReturn.Failed; + } + + /// + /// Clear the config registers to simulate an invalid load or invalid configuration.json + /// + /// + /// - Initial. + /// + public void KillConfigRegisters() + { + ConfigRegister.MeterRegisterDic.Clear(); + } + + #endregion ----------------------------- Mock Genesis simulation ---------------------------------------------- + } +} diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockGenesis.csproj b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockGenesis.csproj new file mode 100644 index 00000000..1a8138db --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockGenesis.csproj @@ -0,0 +1,94 @@ + + + + + Debug + AnyCPU + {D7A7E1FF-D024-407F-B30D-4C519CFA7BF1} + Library + Properties + Xylem.Common.Hardware.WaterMeter.Genesis.MockGenesis + Xylem.Common.Hardware.WaterMeter.Genesis.MockGenesis + v4.8.1 + 512 + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\packages\NCrunch.Framework.5.11.0\lib\net35\NCrunch.Framework.dll + + + ..\..\..\..\packages\NLog.5.2.2\lib\net46\NLog.dll + + + + + + + + + + + + + + + + + + + {1B02C79E-0B19-43E2-8F6B-71EF0C786C97} + CommonCore + + + {6D2777BB-7A88-466D-A49B-3266F9BF0160} + ProductionOrderCore + + + {26AFCF1E-1287-48B8-A506-32B1E8A0DD0E} + WaterMeterRegisters + + + {315e94b8-b82f-4b25-b5bd-297df3bc1d54} + Applications + + + {F013A56B-7BE6-4852-9CD8-B971CD1ADD0C} + GenesisConfig + + + {04201E95-90A0-4B73-A72F-379739B2A3AE} + GenesisCore + + + {2C6378C6-6BA1-4CEE-8992-8404D8369A90} + GenesisFile + + + {F4AAF7E6-7333-4284-B735-E32DEB076C64} + Registers + + + + + + + \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockGenesis.v3.ncrunchproject b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockGenesis.v3.ncrunchproject new file mode 100644 index 00000000..cf22dfa9 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockGenesis.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/EMEA_DN00_RawParamsExampleFailed CSD.json b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/EMEA_DN00_RawParamsExampleFailed CSD.json new file mode 100644 index 00000000..9eff6769 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/EMEA_DN00_RawParamsExampleFailed CSD.json @@ -0,0 +1,103 @@ +[ + //Content missing CSD parameters to force a failure for register-restorer + { + "RegisterName": "SENSUSRADIO_RadioAddress", + "RegisterValue": "GI6fMA==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_EncryptionKey", + "RegisterValue": "Dp+sxqDh7xw7J6SbrCFlNQ==", + "Source": 0 + }, + { + "RegisterName": "GENESISFLOW_MeterSize", + "RegisterValue": "AAAAAQ==", + "Source": 0 + }, + { + "RegisterName": "GENESISFLOW_DisplayUnits", + "RegisterValue": "AAAAAA==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_FlowUnits", + "RegisterValue": "AAAABA==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_FrequencyIndicator", + "RegisterValue": "AAABsQ==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_PulseMode", + "RegisterValue": "AAAABQ==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_PulseLength", + "RegisterValue": "AAAACA==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_PressurePresent", + "RegisterValue": "AAAAAA==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_TemperatureUnits", + "RegisterValue": "AAAAAA==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_PressureRate", + "RegisterValue": "AAAAAA==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_PressureUnits", + "RegisterValue": "AAAAAA==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_PulseWeight", + "RegisterValue": "ADDUAA==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_MbusState", + "RegisterValue": "AAAABw==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_OmTxInterval", + "RegisterValue": "AAAOEA==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_TxInterval", + "RegisterValue": "AAAADw==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_WakeupInterval", + "RegisterValue": "AAAAAw==", + "Source": 0 + }, + { + "RegisterName": "SENSUSRADIO_LatInterval", + "RegisterValue": "AAAAAw==", + "Source": 0 + }, + { + "RegisterName": "GENESISFLOW_DisplayPow10", + "RegisterValue": "/f///w==", + "Source": 0 + }, + { + "RegisterName": "METROLOGYASST_FlowPoint", + "RegisterValue": "AgAAAA==", + "Source": 0 + } +] \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/EMEA_DN50_RawParamsExample.json b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/EMEA_DN50_RawParamsExample.json new file mode 100644 index 00000000..9a652317 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/EMEA_DN50_RawParamsExample.json @@ -0,0 +1 @@ +[{"RegisterName":"SENSUSRADIO_RadioAddress","RegisterValue":"GI6fMA==","Source":0},{"RegisterName":"SENSUSRADIO_EncryptionKey","RegisterValue":"Dp+sxqDh7xw7J6SbrCFlNQ==","Source":0},{"RegisterName":"GENESISFLOW_MeterSize","RegisterValue":"AAAAAQ==","Source":0},{"RegisterName":"GENESISFLOW_DisplayUnits","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_FlowUnits","RegisterValue":"AAAABA==","Source":0},{"RegisterName":"SENSUSRADIO_FrequencyIndicator","RegisterValue":"AAABsQ==","Source":0},{"RegisterName":"METROLOGYASST_PulseMode","RegisterValue":"AAAABQ==","Source":0},{"RegisterName":"METROLOGYASST_PulseLength","RegisterValue":"AAAACA==","Source":0},{"RegisterName":"METROLOGYASST_PressurePresent","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_TemperatureUnits","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_PressureRate","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_PressureUnits","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_PulseWeight","RegisterValue":"ADDUAA==","Source":0},{"RegisterName":"SENSUSRADIO_MbusState","RegisterValue":"AAAABw==","Source":0},{"RegisterName":"SENSUSRADIO_OmTxInterval","RegisterValue":"AAAOEA==","Source":0},{"RegisterName":"SENSUSRADIO_TxInterval","RegisterValue":"AAAADw==","Source":0},{"RegisterName":"SENSUSRADIO_WakeupInterval","RegisterValue":"AAAAAw==","Source":0},{"RegisterName":"SENSUSRADIO_LatInterval","RegisterValue":"AAAAAw==","Source":0},{"RegisterName":"GENESISFLOW_DisplayPow10","RegisterValue":"/f///w==","Source":0},{"RegisterName":"METROLOGYASST_FlowPoint","RegisterValue":"AgAAAA==","Source":0},{"RegisterName":"CUSTOMER_AlarmEnableMask","RegisterValue":"AACAUw==","Source":1},{"RegisterName":"CUSTOMER_AlarmBroadcastMask","RegisterValue":"AAAf3A==","Source":1},{"RegisterName":"CUSTOMER_AlarmVisualMask","RegisterValue":"AAAf3A==","Source":1},{"RegisterName":"CUSTOMER_LeakTimeThreshold","RegisterValue":"AABOwA==","Source":1},{"RegisterName":"CUSTOMER_ExcessFlowTimeThreshold","RegisterValue":"AAAABQ==","Source":1},{"RegisterName":"CUSTOMER_ReverseFlowTimeThreshold","RegisterValue":"AAAHCA==","Source":1},{"RegisterName":"CUSTOMER_TemperatureHighThreshold","RegisterValue":"AAAB9A==","Source":1},{"RegisterName":"CUSTOMER_TemperatureHighDelay","RegisterValue":"AAABLA==","Source":1},{"RegisterName":"CUSTOMER_TemperatureLowThreshold","RegisterValue":"AAAAFA==","Source":1},{"RegisterName":"CUSTOMER_TemperatureLowDelay","RegisterValue":"AAABLA==","Source":1},{"RegisterName":"CUSTOMER_PressureHighThreshold","RegisterValue":"ABhqAA==","Source":1},{"RegisterName":"CUSTOMER_PressureHighDelay","RegisterValue":"AAABLA==","Source":1},{"RegisterName":"CUSTOMER_PressureLowThreshold","RegisterValue":"AAB1MA==","Source":1},{"RegisterName":"CUSTOMER_PressureLowDelay","RegisterValue":"AAABLA==","Source":1},{"RegisterName":"METROLOGYASST_TemperatureUnits","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"METROLOGYASST_PressureOffset","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"PERIODICLOG_DataLogContents","RegisterValue":"DAAkAw==","Source":1},{"RegisterName":"PERIODICLOG_DataLogPeriod","RegisterValue":"AAAAPA==","Source":1},{"RegisterName":"PERIODICLOG_AverageFlowPeriod","RegisterValue":"AAU=","Source":1},{"RegisterName":"SENSUSRADIO_AverageFlowPeriod","RegisterValue":"AAU=","Source":1},{"RegisterName":"PERIODICLOG_PeriodicLogLifeTimeCounter","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"SENSUSRADIO_MetroRadioLifeTimeCounter","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"PERIODICLOG_FixedDateReadingContents","RegisterValue":"DAAkAw==","Source":1},{"RegisterName":"PERIODICLOG_FixedDateDayOfMonth","RegisterValue":"AAAAAQ==","Source":1},{"RegisterName":"POWERMON_WarnFromClamp","RegisterValue":"JZgGAA==","Source":1},{"RegisterName":"SYSTEM_UpgradePermissions","RegisterValue":"AAAA/g==","Source":1},{"RegisterName":"POWERMON_BatteryQuantity","RegisterValue":"AAAAAg==","Source":1},{"RegisterName":"GENESISFLOW_SampleRate","RegisterValue":"AAI=","Source":1},{"RegisterName":"GENESISFLOW_LedMode","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"GENESISFLOW_HardErrorLimit","RegisterValue":"AAQ=","Source":1},{"RegisterName":"IRDA_PulseReportRate","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"IRDA_AdapterPresenceLimit","RegisterValue":"AAM=","Source":1},{"RegisterName":"SENSUSRADIO_OTAControlFlags","RegisterValue":"AAA=","Source":1},{"RegisterName":"CUSTOMER_RebootCount","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"GENESISFLOW_LowFlowMaxPeriod","RegisterValue":"ADwAAA==","Source":1},{"RegisterName":"GENESISFLOW_LowFlowThreshold","RegisterValue":"AAAAyA==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidAmplitude","RegisterValue":"rwAAAA==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidDeltaToF","RegisterValue":"AAPGXg==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidToF","RegisterValue":"AXl8ww==","Source":1},{"RegisterName":"GENESISFLOW_MeterSize","RegisterValue":"AAAAAQ==","Source":1},{"RegisterName":"GENESISFLOW_MinValidAmplitude","RegisterValue":"JYAAAA==","Source":1},{"RegisterName":"GENESISFLOW_MinValidToF","RegisterValue":"ANG3Fw==","Source":1},{"RegisterName":"GENESISFLOW_Timeout","RegisterValue":"AAE=","Source":1},{"RegisterName":"CUSTOMER_LeakFlowThreshold","RegisterValue":"AAF3AA==","Source":1},{"RegisterName":"CUSTOMER_ExcessFlowVolumeThreshold","RegisterValue":"AMNQAA==","Source":1},{"RegisterName":"CUSTOMER_AppArrangement","RegisterValue":"AAE=","Source":1},{"RegisterName":"METROLOGYASST_PressureUnits","RegisterValue":"AAA=","Source":1},{"RegisterName":"CUSTOMER_Locale","RegisterValue":"AAAA0A==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidAmplitude","RegisterValue":"rwAAAA==","Source":1},{"RegisterName":"SENSUSRADIO_HistoricalAlarmsDays","RegisterValue":"AAAAWg==","Source":1},{"RegisterName":"SENSUSRADIO_OmTxInterval","RegisterValue":"AAADhA==","Source":1},{"RegisterName":"GENESISFLOW_ForwardArrow","RegisterValue":"AAAAAQ==","Source":1},{"RegisterName":"SENSUSRADIO_EncryptionKey","RegisterValue":"8L/KE0jHXszHydwgWg0KHQ==","Source":1},{"RegisterName":"GENESISFLOW_ArrowThreshold","RegisterValue":"HoSA","Source":1},{"RegisterName":"GENESISFLOW_StartHit","RegisterValue":"AAAABg==","Source":1},{"RegisterName":"CUSTOMER_InstallationTime","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"METROLOGYASST_PressureRate","RegisterValue":"AADqYA==","Source":1},{"RegisterName":"GENESISFLOW_MaxDeltaToFDeviation","RegisterValue":"AAGtfw==","Source":1},{"RegisterName":"SENSUSRADIO_TemperatureMeasurePeriod","RegisterValue":"AAAAPA==","Source":1}] \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/EMEA_DN80_RawParamsExample.json b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/EMEA_DN80_RawParamsExample.json new file mode 100644 index 00000000..768dec3d --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/EMEA_DN80_RawParamsExample.json @@ -0,0 +1 @@ +[{"RegisterName":"SENSUSRADIO_RadioAddress","RegisterValue":"F/YNAg==","Source":0},{"RegisterName":"SENSUSRADIO_EncryptionKey","RegisterValue":"Dp+sxqDh7xw7J6SbrCFlNQ==","Source":0},{"RegisterName":"SENSUSRADIO_PowerLevel","RegisterValue":"AAAALQ==","Source":0},{"RegisterName":"SENSUSRADIO_PowerLevelOption","RegisterValue":"AAAALw==","Source":0},{"RegisterName":"SENSUSRADIO_ImpedanceCodeNew","RegisterValue":"AAALLQ==","Source":0},{"RegisterName":"SENSUSRADIO_ImpedanceCodeOption","RegisterValue":"AAALLw==","Source":0},{"RegisterName":"GENESISFLOW_MeterSize","RegisterValue":"AAAAAw==","Source":0},{"RegisterName":"GENESISFLOW_DisplayUnits","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_FlowUnits","RegisterValue":"AAAABA==","Source":0},{"RegisterName":"SENSUSRADIO_FrequencyIndicator","RegisterValue":"AAADZA==","Source":0},{"RegisterName":"METROLOGYASST_PulseMode","RegisterValue":"AAAABQ==","Source":0},{"RegisterName":"METROLOGYASST_PulseLength","RegisterValue":"AAAACA==","Source":0},{"RegisterName":"METROLOGYASST_PressurePresent","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_TemperatureUnits","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_PressureRate","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_PressureUnits","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"GENESISFLOW_ForwardArrow","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_PulseWeight","RegisterValue":"ADDUAA==","Source":0},{"RegisterName":"SENSUSRADIO_MbusState","RegisterValue":"AAAABw==","Source":0},{"RegisterName":"SENSUSRADIO_OmTxInterval","RegisterValue":"AAAOEA==","Source":0},{"RegisterName":"SENSUSRADIO_TxInterval","RegisterValue":"AAAADw==","Source":0},{"RegisterName":"SENSUSRADIO_WakeupInterval","RegisterValue":"AAAAAw==","Source":0},{"RegisterName":"SENSUSRADIO_LatInterval","RegisterValue":"AAAAAw==","Source":0},{"RegisterName":"GENESISFLOW_DisplayPow10","RegisterValue":"/f///w==","Source":0},{"RegisterName":"METROLOGYASST_FlowPoint","RegisterValue":"AwAAAA==","Source":0},{"RegisterName":"CUSTOMER_AlarmEnableMask","RegisterValue":"AACAUw==","Source":1},{"RegisterName":"CUSTOMER_AlarmBroadcastMask","RegisterValue":"AAAf3A==","Source":1},{"RegisterName":"CUSTOMER_AlarmVisualMask","RegisterValue":"AAAf3A==","Source":1},{"RegisterName":"CUSTOMER_LeakTimeThreshold","RegisterValue":"AABOwA==","Source":1},{"RegisterName":"CUSTOMER_ExcessFlowTimeThreshold","RegisterValue":"AAAABQ==","Source":1},{"RegisterName":"CUSTOMER_ReverseFlowTimeThreshold","RegisterValue":"AAAHCA==","Source":1},{"RegisterName":"CUSTOMER_TemperatureHighThreshold","RegisterValue":"AAAB9A==","Source":1},{"RegisterName":"CUSTOMER_TemperatureHighDelay","RegisterValue":"AAABLA==","Source":1},{"RegisterName":"CUSTOMER_TemperatureLowThreshold","RegisterValue":"AAAAFA==","Source":1},{"RegisterName":"CUSTOMER_TemperatureLowDelay","RegisterValue":"AAABLA==","Source":1},{"RegisterName":"CUSTOMER_PressureHighThreshold","RegisterValue":"ABhqAA==","Source":1},{"RegisterName":"CUSTOMER_PressureHighDelay","RegisterValue":"AAABLA==","Source":1},{"RegisterName":"CUSTOMER_PressureLowThreshold","RegisterValue":"AAB1MA==","Source":1},{"RegisterName":"CUSTOMER_PressureLowDelay","RegisterValue":"AAABLA==","Source":1},{"RegisterName":"METROLOGYASST_TemperatureUnits","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"METROLOGYASST_PressureOffset","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"PERIODICLOG_DataLogContents","RegisterValue":"DAAkAw==","Source":1},{"RegisterName":"PERIODICLOG_DataLogPeriod","RegisterValue":"AAAAPA==","Source":1},{"RegisterName":"PERIODICLOG_AverageFlowPeriod","RegisterValue":"AAU=","Source":1},{"RegisterName":"SENSUSRADIO_AverageFlowPeriod","RegisterValue":"AAU=","Source":1},{"RegisterName":"PERIODICLOG_PeriodicLogLifeTimeCounter","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"SENSUSRADIO_MetroRadioLifeTimeCounter","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"PERIODICLOG_FixedDateReadingContents","RegisterValue":"DAAkAw==","Source":1},{"RegisterName":"PERIODICLOG_FixedDateDayOfMonth","RegisterValue":"AAAAAQ==","Source":1},{"RegisterName":"POWERMON_WarnFromClamp","RegisterValue":"JZgGAA==","Source":1},{"RegisterName":"SYSTEM_UpgradePermissions","RegisterValue":"AAAA/g==","Source":1},{"RegisterName":"POWERMON_BatteryQuantity","RegisterValue":"AAAAAg==","Source":1},{"RegisterName":"GENESISFLOW_SampleRate","RegisterValue":"AAI=","Source":1},{"RegisterName":"GENESISFLOW_ForwardArrow","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"GENESISFLOW_LedMode","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"GENESISFLOW_HardErrorLimit","RegisterValue":"AAQ=","Source":1},{"RegisterName":"IRDA_PulseReportRate","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"IRDA_AdapterPresenceLimit","RegisterValue":"AAM=","Source":1},{"RegisterName":"SENSUSRADIO_HistoricalAlarmsDays","RegisterValue":"AB0=","Source":1},{"RegisterName":"SENSUSRADIO_OTAControlFlags","RegisterValue":"AAA=","Source":1},{"RegisterName":"CUSTOMER_RebootCount","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"GENESISFLOW_LowFlowMaxPeriod","RegisterValue":"ADwAAA==","Source":1},{"RegisterName":"GENESISFLOW_LowFlowThreshold","RegisterValue":"AAACJg==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidAmplitude","RegisterValue":"rwAAAA==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidDeltaToF","RegisterValue":"AAeMuw==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidToF","RegisterValue":"Alv60g==","Source":1},{"RegisterName":"GENESISFLOW_MeterSize","RegisterValue":"AAAAAw==","Source":1},{"RegisterName":"GENESISFLOW_MinValidAmplitude","RegisterValue":"JYAAAA==","Source":1},{"RegisterName":"GENESISFLOW_MinValidToF","RegisterValue":"AU+LWA==","Source":1},{"RegisterName":"GENESISFLOW_Timeout","RegisterValue":"AAE=","Source":1},{"RegisterName":"CUSTOMER_AppArrangement","RegisterValue":"AAE=","Source":1},{"RegisterName":"METROLOGYASST_PressureUnits","RegisterValue":"AAA=","Source":1},{"RegisterName":"CUSTOMER_Locale","RegisterValue":"AAAA0A==","Source":1},{"RegisterName":"CUSTOMER_ExcessFlowVolumeThreshold","RegisterValue":"AVXMAA==","Source":1},{"RegisterName":"CUSTOMER_LeakFlowThreshold","RegisterValue":"AANrAA==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidAmplitude","RegisterValue":"rwAAAA==","Source":1},{"RegisterName":"GENESISFLOW_ArrowThreshold","RegisterValue":"AB6EgA==","Source":1},{"RegisterName":"GENESISFLOW_MaxDeltaToFDeviation","RegisterValue":"AAGtfw==","Source":1},{"RegisterName":"GENESISFLOW_MaxDeltaToFRange","RegisterValue":"AAIY3g==","Source":1},{"RegisterName":"GENESISFLOW_MaxTempRange","RegisterValue":"AAAgAA==","Source":1},{"RegisterName":"GENESISFLOW_StartHit","RegisterValue":"AAAABg==","Source":1},{"RegisterName":"CUSTOMER_InstallationTime","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"METROLOGYASST_PressureRate","RegisterValue":"AADqYA==","Source":1},{"RegisterName":"GENESISFLOW_DisplayLeadingZeros","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"SENSUSRADIO_TemperatureMeasurePeriod","RegisterValue":"AAAAPA==","Source":1}] \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/NA_US2_RawParamsExample.json b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/NA_US2_RawParamsExample.json new file mode 100644 index 00000000..8bcb942e --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/MockRawParamsExamples/NA_US2_RawParamsExample.json @@ -0,0 +1 @@ +[{"RegisterName":"GENESISFLOW_MeterSize","RegisterValue":"AAAACw==","Source":0},{"RegisterName":"GENESISFLOW_DisplayUnits","RegisterValue":"AAAAAg==","Source":0},{"RegisterName":"METROLOGYASST_FlowUnits","RegisterValue":"AAAABg==","Source":0},{"RegisterName":"METROLOGYASST_PulseMode","RegisterValue":"AAAABQ==","Source":0},{"RegisterName":"METROLOGYASST_PulseLength","RegisterValue":"AAAACA==","Source":0},{"RegisterName":"METROLOGYASST_PressurePresent","RegisterValue":"AAAAAQ==","Source":0},{"RegisterName":"METROLOGYASST_TemperatureUnits","RegisterValue":"AAAAAQ==","Source":0},{"RegisterName":"METROLOGYASST_PressureRate","RegisterValue":"AADqYA==","Source":0},{"RegisterName":"METROLOGYASST_PressureUnits","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"GENESISFLOW_ForwardArrow","RegisterValue":"AAAAAA==","Source":0},{"RegisterName":"METROLOGYASST_PulseWeight","RegisterValue":"ABJ7ww==","Source":0},{"RegisterName":"GENESISFLOW_DisplayPow10","RegisterValue":"/////w==","Source":0},{"RegisterName":"METROLOGYASST_FlowPoint","RegisterValue":"AwAAAA==","Source":0},{"RegisterName":"CUSTOMER_AlarmEnableMask","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"GENESISFLOW_LowFlowThreshold","RegisterValue":"AAAAyA==","Source":1},{"RegisterName":"GENESISFLOW_LowFlowMaxPeriod","RegisterValue":"ADwAAA==","Source":1},{"RegisterName":"GENESISFLOW_Timeout","RegisterValue":"AAE=","Source":1},{"RegisterName":"GENESISFLOW_MinValidToF","RegisterValue":"ANG3Fw==","Source":1},{"RegisterName":"GENESISFLOW_MinValidAmplitude","RegisterValue":"JYAAAA==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidToF","RegisterValue":"AXl8ww==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidDeltaToF","RegisterValue":"ABxPvg==","Source":1},{"RegisterName":"GENESISFLOW_MaxValidAmplitude","RegisterValue":"rwAAAA==","Source":1},{"RegisterName":"CUSTOMER_PressureLowDelay","RegisterValue":"AAAAPA==","Source":1},{"RegisterName":"CUSTOMER_PressureLowThreshold","RegisterValue":"AAOpgA==","Source":1},{"RegisterName":"CUSTOMER_PressureHighDelay","RegisterValue":"AAAAPA==","Source":1},{"RegisterName":"CUSTOMER_PressureHighThreshold","RegisterValue":"ABUOoA==","Source":1},{"RegisterName":"CUSTOMER_TemperatureLowDelay","RegisterValue":"AAAAPA==","Source":1},{"RegisterName":"CUSTOMER_TemperatureLowThreshold","RegisterValue":"AAAAFA==","Source":1},{"RegisterName":"CUSTOMER_TemperatureHighDelay","RegisterValue":"AAAAPA==","Source":1},{"RegisterName":"CUSTOMER_TemperatureHighThreshold","RegisterValue":"AAABDg==","Source":1},{"RegisterName":"CUSTOMER_ExcessFlowVolumeThreshold","RegisterValue":"APQkAA==","Source":1},{"RegisterName":"CUSTOMER_ExcessFlowTimeThreshold","RegisterValue":"AAAABQ==","Source":1},{"RegisterName":"CUSTOMER_LeakTimeThreshold","RegisterValue":"AAAQ4A==","Source":1},{"RegisterName":"CUSTOMER_LeakFlowThreshold","RegisterValue":"AAF3AA==","Source":1},{"RegisterName":"GENESISFLOW_LedMode","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"GENESISFLOW_ForwardArrow","RegisterValue":"AAAAAQ==","Source":1},{"RegisterName":"GENESISFLOW_SampleRate","RegisterValue":"AAI=","Source":1},{"RegisterName":"POWERMON_BatteryQuantity","RegisterValue":"AAAAAg==","Source":1},{"RegisterName":"SYSTEM_UpgradePermissions","RegisterValue":"AAAA/w==","Source":1},{"RegisterName":"POWERMON_WarnFromClamp","RegisterValue":"JZgGAA==","Source":1},{"RegisterName":"METROLOGYASST_TemperatureUnits","RegisterValue":"AAAAAQ==","Source":1},{"RegisterName":"CUSTOMER_ReverseFlowTimeThreshold","RegisterValue":"AAAAPA==","Source":1},{"RegisterName":"CUSTOMER_AlarmVisualMask","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"CUSTOMER_AlarmBroadcastMask","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"IRDA_AdapterPresenceLimit","RegisterValue":"AAM=","Source":1},{"RegisterName":"CUSTOMER_RebootCount","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"METROLOGYASST_PressureUnits","RegisterValue":"AAE=","Source":1},{"RegisterName":"GENESISFLOW_ArrowThreshold","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"METROLOGYASST_PressureRate","RegisterValue":"AADqYA==","Source":1},{"RegisterName":"CUSTOMER_InstallationTime","RegisterValue":"AAAAAA==","Source":1},{"RegisterName":"GENESISFLOW_MaxDeltaToFRange","RegisterValue":"AAIY3g==","Source":1},{"RegisterName":"GENESISFLOW_MaxDeltaToFDeviation","RegisterValue":"AAGtfw==","Source":1},{"RegisterName":"GENESISFLOW_StartHit","RegisterValue":"AAAABg==","Source":1},{"RegisterName":"METROLOGYASST_PulseEvenDistribution","RegisterValue":"AA==","Source":1}] \ No newline at end of file diff --git a/Common/OmniPlus/InspectionUI.Abstraction/Properties/AssemblyInfo.cs b/Common/Hardware/WaterMeter/Genesis/MockGenesis/Properties/AssemblyInfo.cs similarity index 80% rename from Common/OmniPlus/InspectionUI.Abstraction/Properties/AssemblyInfo.cs rename to Common/Hardware/WaterMeter/Genesis/MockGenesis/Properties/AssemblyInfo.cs index dc89425b..650ecee5 100644 --- a/Common/OmniPlus/InspectionUI.Abstraction/Properties/AssemblyInfo.cs +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/Properties/AssemblyInfo.cs @@ -5,12 +5,12 @@ using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("InspectionUI.Abstraction")] +[assembly: AssemblyTitle("Xylem.Common.Hardware.WaterMeter.Genesis.MockGenesis")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("InspectionUI.Abstraction")] -[assembly: AssemblyCopyright("Copyright © 2024")] +[assembly: AssemblyCompany("Xylem")] +[assembly: AssemblyProduct("MockGenesis")] +[assembly: AssemblyCopyright("Copyright © Xylem 2024")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -20,7 +20,7 @@ using System.Runtime.InteropServices; [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("c6bfac88-5647-4131-90b1-4d6265e08348")] +[assembly: Guid("d7a7e1ff-d024-407f-b30d-4c519cfa7bf1")] // Version information for an assembly consists of the following four values: // diff --git a/Common/Hardware/WaterMeter/Genesis/MockGenesis/packages.config b/Common/Hardware/WaterMeter/Genesis/MockGenesis/packages.config new file mode 100644 index 00000000..7020c04f --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/MockGenesis/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/Registers/DataTypes/UInt48.cs b/Common/Hardware/WaterMeter/Genesis/Registers/DataTypes/UInt48.cs new file mode 100644 index 00000000..821c7505 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/Registers/DataTypes/UInt48.cs @@ -0,0 +1,8 @@ +using System; + +namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers.DataTypes +{ + public struct UInt48 + { + } +} diff --git a/Common/Hardware/WaterMeter/Genesis/Registers/DataTypes/UInt72.cs b/Common/Hardware/WaterMeter/Genesis/Registers/DataTypes/UInt72.cs new file mode 100644 index 00000000..acd378b2 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/Registers/DataTypes/UInt72.cs @@ -0,0 +1,8 @@ +using System; + +namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers.DataTypes +{ + public struct UInt72 + { + } +} diff --git a/Common/Hardware/WaterMeter/Genesis/Registers/DataTypes/UInt88.cs b/Common/Hardware/WaterMeter/Genesis/Registers/DataTypes/UInt88.cs new file mode 100644 index 00000000..20733cd7 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/Registers/DataTypes/UInt88.cs @@ -0,0 +1,8 @@ +using System; + +namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers.DataTypes +{ + public struct UInt88 + { + } +} diff --git a/Common/Hardware/WaterMeter/Genesis/Registers/Json/JsonVersionsConverter.cs b/Common/Hardware/WaterMeter/Genesis/Registers/Json/JsonVersionsConverter.cs new file mode 100644 index 00000000..0c178cc6 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/Registers/Json/JsonVersionsConverter.cs @@ -0,0 +1,33 @@ +namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers.Json +{ + using Newtonsoft.Json; + using Newtonsoft.Json.Linq; + + using System; + + public class JsonVersionsConverter : JsonConverter + { + public override FwVersion ReadJson(JsonReader reader, Type objectType, FwVersion existingValue, Boolean hasExistingValue, JsonSerializer serializer) + { + var jobject = JToken.Load(reader); + + if (jobject.Type != JTokenType.Object) + { + if (int.TryParse($"{jobject}", out var version)) + { + return new FwVersion + { + First = version + }; + } + } + + return jobject.ToObject(); + } + + public override void WriteJson(JsonWriter writer, FwVersion value, JsonSerializer serializer) + { + throw new NotImplementedException(); + } + } +} diff --git a/Common/Hardware/WaterMeter/Genesis/Registers/MeterRegisters.cs b/Common/Hardware/WaterMeter/Genesis/Registers/MeterRegisters.cs index 767d329c..643be59d 100644 --- a/Common/Hardware/WaterMeter/Genesis/Registers/MeterRegisters.cs +++ b/Common/Hardware/WaterMeter/Genesis/Registers/MeterRegisters.cs @@ -122,6 +122,11 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers } } + /// + /// Unimplemented + /// + /// + /// public IEnumerator GetEnumerator() { throw new NotImplementedException(); diff --git a/LaaProductionWeb/LaaProductionWeb.Resources/UITranslations.Designer.cs b/Common/Hardware/WaterMeter/Genesis/Registers/Properties/Resources.Designer.cs similarity index 67% rename from LaaProductionWeb/LaaProductionWeb.Resources/UITranslations.Designer.cs rename to Common/Hardware/WaterMeter/Genesis/Registers/Properties/Resources.Designer.cs index 6eeec07d..16618f9e 100644 --- a/LaaProductionWeb/LaaProductionWeb.Resources/UITranslations.Designer.cs +++ b/Common/Hardware/WaterMeter/Genesis/Registers/Properties/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace LaaProductionWeb.Resources { +namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers.Properties { using System; @@ -22,24 +22,24 @@ namespace LaaProductionWeb.Resources { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class UITranslations { + internal class Resources { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal UITranslations() { + internal Resources() { } /// /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - public static global::System.Resources.ResourceManager ResourceManager { + internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LaaProductionWeb.Resources.UITranslations", typeof(UITranslations).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Xylem.Common.Hardware.WaterMeter.Genesis.Registers.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; @@ -51,7 +51,7 @@ namespace LaaProductionWeb.Resources { /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - public static global::System.Globalization.CultureInfo Culture { + internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } @@ -61,20 +61,29 @@ namespace LaaProductionWeb.Resources { } /// - /// Looks up a localized string similar to Die in der Datenbank zugewiesene Id. Nicht änderbar!. + /// Looks up a localized string similar to ERROR: Register data type unknown. /// - public static string CordonelStandardRequirement_Id_Description { + internal static string StrRegisterDataTypeUnknown { get { - return ResourceManager.GetString("CordonelStandardRequirement_Id_Description", resourceCulture); + return ResourceManager.GetString("StrRegisterDataTypeUnknown", resourceCulture); } } /// - /// Looks up a localized string similar to ID. + /// Looks up a localized string similar to ERROR: Register value is out of range. /// - public static string CordonelStandardRequirement_Id_Name { + internal static string StrRegisterValueOutOfRange { get { - return ResourceManager.GetString("CordonelStandardRequirement_Id_Name", resourceCulture); + return ResourceManager.GetString("StrRegisterValueOutOfRange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WARNING: Register value is set to default. + /// + internal static string StrSetRegisterToDefault { + get { + return ResourceManager.GetString("StrSetRegisterToDefault", resourceCulture); } } } diff --git a/Common/modbus_master_csharp/docs/dummy_file.txt b/Common/Hardware/WaterMeter/Genesis/Registers/Properties/Resources.de.Designer.cs similarity index 100% rename from Common/modbus_master_csharp/docs/dummy_file.txt rename to Common/Hardware/WaterMeter/Genesis/Registers/Properties/Resources.de.Designer.cs diff --git a/Common/Hardware/WaterMeter/Genesis/Registers/Properties/Resources.de.resx b/Common/Hardware/WaterMeter/Genesis/Registers/Properties/Resources.de.resx new file mode 100644 index 00000000..36a2b24e --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/Registers/Properties/Resources.de.resx @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + WARNUNG: Registerwert auf Standardwert gesetzt + + + FEHLER: Registerwert außerhalb des zulässigen Bereiches + + + FEHLER: Registerdatentyp ist unbekannt! + + \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/Registers/Properties/Resources.resx b/Common/Hardware/WaterMeter/Genesis/Registers/Properties/Resources.resx new file mode 100644 index 00000000..0e66da42 --- /dev/null +++ b/Common/Hardware/WaterMeter/Genesis/Registers/Properties/Resources.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + WARNING: Register value is set to default + + + ERROR: Register value is out of range + + + ERROR: Register data type unknown + + \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/Registers/RegisterCheck.cs b/Common/Hardware/WaterMeter/Genesis/Registers/RegisterCheck.cs index cf8ac8f1..db8dc96d 100644 --- a/Common/Hardware/WaterMeter/Genesis/Registers/RegisterCheck.cs +++ b/Common/Hardware/WaterMeter/Genesis/Registers/RegisterCheck.cs @@ -1,142 +1,264 @@ using System; using Xylem.Common.Hardware.WaterMeter.Genesis.Registers.DataTypes; +using Xylem.Common.CommonCore.Consts; +using Xylem.Common.Hardware.WaterMeter.Genesis.Registers.Properties; namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers { + /// + /// Check the register value for Out Of Boundaries (min, max) and optional if set to Default . + /// public static class RegisterCheck { - private static String OutOfRangeMsg(Boolean isMin, String value, String range, String name) + private enum RangeCheck { - return isMin ? $" Register {name} value ({value}) is to small - minimum is ({range})" : - $" Register {name} value ({value}) is to large - maximum is ({range})"; + MinimumExceeded, + MaximumExceeded, + DefaultValue, + NotConvertible + }; + private static String OutOfRangeMsg(RangeCheck rangeCheck, String value, String range, String name) + { + var msg = ""; + switch (rangeCheck) + { + case RangeCheck.DefaultValue: + msg = $"{Resources.StrSetRegisterToDefault} {name}: ({value})"; + break; + case RangeCheck.MaximumExceeded: + msg = $"{Resources.StrRegisterValueOutOfRange} {name}: ({value}) - Maximum ({range})"; + break; + case RangeCheck.MinimumExceeded: + msg = $"{Resources.StrRegisterValueOutOfRange} {name}: ({value}) - Minimum ({range})"; + break; + case RangeCheck.NotConvertible: + msg = $"{Resources.StrRegisterDataTypeUnknown} {name}"; + break; + } + return msg; + } /// /// Check the registers for ot of range (below minimum or above maximum) and return empty string /// if impossible to check (unset limits) or in range. /// - /// + /// /// - /// empty string for in range or unset limits or out of range message + /// feedback message + /// forces a warning if value is set to default + /// + /// if default and check for this is required + /// if the value is in range or has no range defined + /// if value exceeds the limits + /// /// /// - Init. /// /// /// - Modified with try catch block. /// - public static String CheckRange(RegisterDefinition reg, Byte[] value) + /// + /// - Returns warning on default, else error or okay. + /// + /// + /// - Ignore TimeT. + /// + public static StatusReturn CheckRange(RegisterDefinition regDef, Byte[] value, out String msg, + Boolean checkIfValueIsDefault = false) { - // for all registers without min and max a - if (!reg.Minimum.HasValue && !reg.Maximum.HasValue) + msg = ""; + // for all registers without min and max or if type is of TimeT + if ((!regDef.Minimum.HasValue && !regDef.Maximum.HasValue) || regDef.DataType == typeof(TimeT)) { - return string.Empty; + return StatusReturn.Okay; } try { - var type = reg.DataType; + var type = regDef.DataType; if (type == typeof(UInt16)) { var checkValue = RegisterConverter.ByteArrayToValue(value); - if (reg.Minimum.HasValue && checkValue < reg.Minimum.Value) + if (regDef.Minimum.HasValue && checkValue < regDef.Minimum.Value) { - return OutOfRangeMsg(true, checkValue.ToString(), reg.Minimum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MinimumExceeded, checkValue.ToString(), + regDef.Minimum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; } - if (reg.Maximum.HasValue && checkValue > reg.Maximum.Value) + if (regDef.Maximum.HasValue && checkValue > regDef.Maximum.Value) { - return OutOfRangeMsg(false, checkValue.ToString(), reg.Maximum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MaximumExceeded, checkValue.ToString(), + regDef.Maximum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; + } + if (checkIfValueIsDefault && regDef.Default.HasValue && checkValue == regDef.Default.Value) + { + msg = OutOfRangeMsg(RangeCheck.DefaultValue, checkValue.ToString(), + regDef.Default.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Warning; } } else if (type == typeof(UInt32)) { var checkValue = RegisterConverter.ByteArrayToValue(value); - if (reg.Minimum.HasValue && checkValue < reg.Minimum.Value) + if (regDef.Minimum.HasValue && checkValue < regDef.Minimum.Value) { - return OutOfRangeMsg(true, checkValue.ToString(), reg.Minimum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MinimumExceeded, checkValue.ToString(), + regDef.Minimum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; } - if (reg.Maximum.HasValue && checkValue > reg.Maximum.Value) + if (regDef.Maximum.HasValue && checkValue > regDef.Maximum.Value) { - return OutOfRangeMsg(false, checkValue.ToString(), reg.Maximum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MaximumExceeded, checkValue.ToString(), + regDef.Maximum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; + } + if (checkIfValueIsDefault && regDef.Default.HasValue && checkValue == regDef.Default.Value) + { + msg = OutOfRangeMsg(RangeCheck.DefaultValue, checkValue.ToString(), + regDef.Default.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Warning; } } else if (type == typeof(UInt64)) { var checkValue = RegisterConverter.ByteArrayToValue(value); - if (reg.Minimum.HasValue && checkValue < (UInt64)reg.Minimum.Value) + if (regDef.Minimum.HasValue && checkValue < (UInt64)regDef.Minimum.Value) { - return OutOfRangeMsg(true, checkValue.ToString(), reg.Minimum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MinimumExceeded, checkValue.ToString(), + regDef.Minimum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; } - if (reg.Maximum.HasValue && checkValue > (UInt64)reg.Maximum.Value) + if (regDef.Maximum.HasValue && checkValue > (UInt64)regDef.Maximum.Value) { - return OutOfRangeMsg(false, checkValue.ToString(), reg.Maximum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MaximumExceeded, checkValue.ToString(), + regDef.Maximum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; + } + if (checkIfValueIsDefault && regDef.Default.HasValue && 0 == checkValue.CompareTo(regDef.Default.Value)) + { + msg = OutOfRangeMsg(RangeCheck.DefaultValue, checkValue.ToString(), + regDef.Default.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Warning; } } else if (type == typeof(Int16)) { var checkValue = RegisterConverter.ByteArrayToValue(value); - if (reg.Minimum.HasValue && checkValue < reg.Minimum.Value) + if (regDef.Minimum.HasValue && checkValue < regDef.Minimum.Value) { - return OutOfRangeMsg(true, checkValue.ToString(), reg.Minimum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MinimumExceeded, checkValue.ToString(), + regDef.Minimum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; } - if (reg.Maximum.HasValue && checkValue > reg.Maximum.Value) + if (regDef.Maximum.HasValue && checkValue > regDef.Maximum.Value) { - return OutOfRangeMsg(false, checkValue.ToString(), reg.Maximum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MaximumExceeded, checkValue.ToString(), + regDef.Maximum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; + } + if (checkIfValueIsDefault && regDef.Default.HasValue && checkValue == regDef.Default.Value) + { + msg = OutOfRangeMsg(RangeCheck.DefaultValue, checkValue.ToString(), + regDef.Default.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Warning; } } else if (type == typeof(Int32)) { var checkValue = RegisterConverter.ByteArrayToValue(value); - if (reg.Minimum.HasValue && checkValue < reg.Minimum.Value) + if (regDef.Minimum.HasValue && checkValue < regDef.Minimum.Value) { - return OutOfRangeMsg(true, checkValue.ToString(), reg.Minimum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MinimumExceeded, checkValue.ToString(), + regDef.Minimum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; } - if (reg.Maximum.HasValue && checkValue > reg.Maximum.Value) + if (regDef.Maximum.HasValue && checkValue > regDef.Maximum.Value) { - return OutOfRangeMsg(false, checkValue.ToString(), reg.Maximum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MaximumExceeded, checkValue.ToString(), + regDef.Maximum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; + } + if (checkIfValueIsDefault && regDef.Default.HasValue && checkValue == regDef.Default.Value) + { + msg = OutOfRangeMsg(RangeCheck.DefaultValue, checkValue.ToString(), + regDef.Default.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Warning; } } else if (type == typeof(Int64)) { var checkValue = RegisterConverter.ByteArrayToValue(value); - if (reg.Minimum.HasValue && checkValue < reg.Minimum.Value) + if (regDef.Minimum.HasValue && checkValue < regDef.Minimum.Value) { - return OutOfRangeMsg(true, checkValue.ToString(), reg.Minimum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MinimumExceeded, checkValue.ToString(), + regDef.Minimum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; } - if (reg.Maximum.HasValue && checkValue > reg.Maximum.Value) + if (regDef.Maximum.HasValue && checkValue > regDef.Maximum.Value) { - return OutOfRangeMsg(false, checkValue.ToString(), reg.Maximum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MaximumExceeded, checkValue.ToString(), + regDef.Maximum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; + } + if (checkIfValueIsDefault && regDef.Default.HasValue && checkValue == regDef.Default.Value) + { + msg = OutOfRangeMsg(RangeCheck.DefaultValue, checkValue.ToString(), + regDef.Default.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Warning; } } else if (type == typeof(Byte) || type == typeof(Enum8)) { var checkValue = RegisterConverter.ByteArrayToValue(value); - if (reg.Minimum.HasValue && checkValue < reg.Minimum.Value) + if (regDef.Minimum.HasValue && checkValue < regDef.Minimum.Value) { - return OutOfRangeMsg(true, checkValue.ToString(), reg.Minimum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MinimumExceeded, checkValue.ToString(), + regDef.Minimum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; } - if (reg.Maximum.HasValue && checkValue > reg.Maximum.Value) + if (regDef.Maximum.HasValue && checkValue > regDef.Maximum.Value) { - return OutOfRangeMsg(false, checkValue.ToString(), reg.Maximum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MaximumExceeded, checkValue.ToString(), + regDef.Maximum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; + } + if (checkIfValueIsDefault && regDef.Default.HasValue && checkValue == regDef.Default.Value) + { + msg = OutOfRangeMsg(RangeCheck.DefaultValue, checkValue.ToString(), + regDef.Default.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Warning; } } else if (type == typeof(SByte)) { var checkValue = RegisterConverter.ByteArrayToValue(value); - if (reg.Minimum.HasValue && checkValue < reg.Minimum.Value) + if (regDef.Minimum.HasValue && checkValue < regDef.Minimum.Value) { - return OutOfRangeMsg(true, checkValue.ToString(), reg.Minimum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MinimumExceeded, checkValue.ToString(), + regDef.Minimum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; } - if (reg.Maximum.HasValue && checkValue > reg.Maximum.Value) + if (regDef.Maximum.HasValue && checkValue > regDef.Maximum.Value) { - return OutOfRangeMsg(false, checkValue.ToString(), reg.Maximum.Value.ToString(), reg.GetIdent()); + msg = OutOfRangeMsg(RangeCheck.MaximumExceeded, checkValue.ToString(), + regDef.Maximum.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Failed; + } + if (checkIfValueIsDefault && regDef.Default.HasValue && checkValue == regDef.Default.Value) + { + msg = OutOfRangeMsg(RangeCheck.DefaultValue, checkValue.ToString(), + regDef.Default.Value.ToString(), regDef.GetIdent()); + return StatusReturn.Warning; } } else if (type == typeof(Boolean)) @@ -146,17 +268,18 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers } else { - return ($"Register {reg.RegisterName} has min or max value but the data type {reg.DataType} " + - "doesn't support auto conversion"); + msg = OutOfRangeMsg(RangeCheck.NotConvertible, "", "", regDef.GetIdent()); + return StatusReturn.Failed; } } catch (Exception e) { - return e.Message; + msg = e.Message; + return StatusReturn.Failed; } - // the value is in range - return string.Empty; + // the value is in range and not on default + return StatusReturn.Okay; } } } diff --git a/Common/Hardware/WaterMeter/Genesis/Registers/RegisterConverter.cs b/Common/Hardware/WaterMeter/Genesis/Registers/RegisterConverter.cs index 92268c9a..195a529d 100644 --- a/Common/Hardware/WaterMeter/Genesis/Registers/RegisterConverter.cs +++ b/Common/Hardware/WaterMeter/Genesis/Registers/RegisterConverter.cs @@ -16,7 +16,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers /// Convert single register from Genesis and return a message of the result. The value input is a byte array /// with the LSB at the index 0 and the MSB at the highest index. A string is sorted with the first character /// at index 0, this does not need to be reversed as it is readable by default. - /// The raw value is swapped byte-wise to get a human readable value with MSB at leftmost and LSB at rightmost. + /// The raw value is swapped byte-wise to get a human-readable value with MSB at leftmost and LSB at rightmost. /// The message contains the register name, the swapped raw value and on the converted value. /// /// @@ -38,32 +38,31 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers public static String GetRegisterContentText(RegisterDefinition registerDefinition, Byte[] regRawByteArray) { String msg; - var strValueResult = "?"; - var strRawResult = "?"; - var registerName = "?"; + String registerName = "?"; try { registerName = registerDefinition.GetIdent(); // getting a result value as text of the data type e.g. UInt32 var strValue = ConvertToText(regRawByteArray, registerDefinition.DataType); - // remove non printable char of the converted result - strValueResult = Regex.Replace(strValue, @"\p{C}+", string.Empty); + // remove non-printable char of the converted result + var strValueResult = Regex.Replace(strValue, @"\p{C}+", string.Empty); // use hashed output being able to compare written and read back values + String strRawResult; if (registerName.Contains("EncryptionKey") || registerName.Contains("Password")) { - strRawResult = GetRegisterRawText(registerDefinition, regRawByteArray, true); - msg = $"{registerName} ({strRawResult})"; + strRawResult = GetRegisterRawText(registerDefinition, regRawByteArray, encryptData:true); + msg = $"{registerName}: ({strRawResult})h"; } else { strRawResult = GetRegisterRawText(registerDefinition, regRawByteArray); - msg = $"{registerName} ({strRawResult}) ({strValueResult})"; + msg = $"{registerName}: ({strRawResult})h ({strValueResult})"; } } catch (Exception) { - msg = $"{registerName} ({strRawResult}) ({strValueResult})"; + throw new ApplicationException($"Cannot convert register {registerName}"); } return msg; @@ -73,7 +72,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers /// Convert single register from Genesis and return a message of the result. The value input is a byte array /// with the LSB at the index 0 and the MSB at the highest index. A string is sorted with the first character /// at index 0, this does not need to be reversed as it is readable by default. - /// The raw value is swapped byte-wise to get a human readable value with MSB at leftmost and LSB at rightmost. + /// The raw value is swapped byte-wise to get a human-readable value with MSB at leftmost and LSB at rightmost. /// The message contains the swapped raw value. /// /// @@ -97,9 +96,12 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers // inverse the raw value to get a readable byte order MSB left and LSB last right position var tmpList = regRawByteArray.ToList(); - // reverse the list if it is not a string or the UInt96 or UInt128 which will be used as - // placeholder for a string + // reverse the list if it is not a string or the UInt48, UInt72, UInt88,UInt96 or UInt128 which + // will be used as placeholder for a string if (registerDefinition.DataType != typeof(String) && + registerDefinition.DataType != typeof(UInt48) && + registerDefinition.DataType != typeof(UInt72) && + registerDefinition.DataType != typeof(UInt88) && registerDefinition.DataType != typeof(UInt96) && registerDefinition.DataType != typeof(UInt128)) { @@ -288,18 +290,39 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers size = sizeof(Int64); } + else if (registerDefinition.DataType == typeof(UInt48)) + { + // 48 Bits / 8 Bits/Byte + size = 6; + } + + else if (registerDefinition.DataType == typeof(UInt72)) + { + // 72 Bits / 8 Bits/Byte + size = 9; + } + + else if (registerDefinition.DataType == typeof(UInt88)) + { + // 88 Bits / 8 Bits/Byte + size = 11; + } + else if (registerDefinition.DataType == typeof(UInt96)) { + // 96 Bits / 8 Bits/Byte size = 3 * 4; } else if (registerDefinition.DataType == typeof(UInt128)) { + // 128 Bits / 8 Bits/Byte size = 4 * 4; } else if (registerDefinition.DataType == typeof(String)) { + // just some value size = 6 * 4; } @@ -361,6 +384,18 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers { return ByteArrayToValue(rawByteArray).ToString(); } + if (type == typeof(UInt48)) + { + return ""; + } + if (type == typeof(UInt72)) + { + return ""; + } + if (type == typeof(UInt88)) + { + return ""; + } if (type == typeof(UInt96)) { return ""; @@ -398,8 +433,14 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers /// and the given offset in seconds. /// - String removed from first zero in string until the end to avoid ghost signs! /// + /// + /// - Return default (T) on input == null; + /// public static T ByteArrayToValue(Byte[] rawByteArray) { + if (rawByteArray == null) + return default(T); + try { Object convertedObj; @@ -421,6 +462,18 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers { convertedObj = BitConverter.ToUInt64(rawByteArray, 0); } + else if (type == typeof(UInt48)) + { + return default(T); + } + else if (type == typeof(UInt72)) + { + return default(T); + } + else if (type == typeof(UInt88)) + { + return default(T); + } else if (type == typeof(UInt96)) { return default(T); diff --git a/Common/Hardware/WaterMeter/Genesis/Registers/Registers.csproj b/Common/Hardware/WaterMeter/Genesis/Registers/Registers.csproj index 05051431..03e786d8 100644 --- a/Common/Hardware/WaterMeter/Genesis/Registers/Registers.csproj +++ b/Common/Hardware/WaterMeter/Genesis/Registers/Registers.csproj @@ -113,7 +113,10 @@ + + + @@ -121,6 +124,16 @@ + + Resources.de.resx + True + True + + + True + True + Resources.resx + @@ -136,6 +149,10 @@ + + {1B02C79E-0B19-43E2-8F6B-71EF0C786C97} + CommonCore + {2FD60CF1-45CD-4060-B8E5-4F39FBA7F1CB} ProcessExec @@ -156,6 +173,18 @@ + + + ResXFileCodeGenerator + Resources.de.Designer.cs + Designer + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Common/OmniPlus/InspectionUI/App.xaml b/Common/OmniPlus/InspectionUI/App.xaml deleted file mode 100644 index 766f7bb6..00000000 --- a/Common/OmniPlus/InspectionUI/App.xaml +++ /dev/null @@ -1,309 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Common/OmniPlus/InspectionUI/App.xaml.cs b/Common/OmniPlus/InspectionUI/App.xaml.cs deleted file mode 100644 index bb99edcc..00000000 --- a/Common/OmniPlus/InspectionUI/App.xaml.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace InspectionUI -{ - using InspectionUI.Abstraction.Interfaces; - - using System; - using System.IO; - using System.Windows; - - public partial class App : Application - { - public static readonly string CurrentDirectory = new FileInfo(typeof(App).Assembly.Location).DirectoryName; - - internal static event Action Exiting; - - internal static IAppsettings Appsettings => InspectionUI.Appsettings.Current; - - protected override void OnExit(ExitEventArgs e) - => Exiting?.Invoke(); - } -} diff --git a/Common/OmniPlus/InspectionUI/InspectionUI.csproj b/Common/OmniPlus/InspectionUI/InspectionUI.csproj deleted file mode 100644 index 58c58622..00000000 --- a/Common/OmniPlus/InspectionUI/InspectionUI.csproj +++ /dev/null @@ -1,193 +0,0 @@ - - - - - Debug - AnyCPU - {01A28A70-D5E6-4898-8C22-E64400A3B80F} - WinExe - InspectionUI - InspectionUI - v4.0 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true - true - - - - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - IDE0003;IDE0049; - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - - ..\..\packages\Microsoft.AspNet.SignalR.Client.2.4.3\lib\net40\Microsoft.AspNet.SignalR.Client.dll - - - ..\..\packages\Newtonsoft.Json.6.0.4\lib\net40\Newtonsoft.Json.dll - - - ..\..\packages\NLog.5.3.2\lib\net35\NLog.dll - - - - - - - - - - - - - 4.0 - - - - - - - - MSBuild:Compile - Designer - - - ItemsGrid.xaml - - - - - - - - OmniInspection.xaml - - - - - - - - - - - - - - - - - - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - App.xaml - Code - - - MainWindow.xaml - Code - - - Designer - MSBuild:Compile - - - - - Code - - - True - True - Resources.resx - - - True - Settings.settings - True - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - - Designer - - - - - Always - - - - - {6480CC2A-AB54-4A26-8413-D5141431C080} - Common.Hardware.WaterMeter.OmniPlus - - - {62490923-CD17-45A6-B79F-A027927C75B5} - Common.Logic.Extensions.SQL - - - {C6BFAC88-5647-4131-90B1-4D6265E08348} - InspectionUI.Abstraction - - - {8E1431E9-9B14-4BC2-8B65-47357C97B1FC} - InspectionUI.Plugins.Omni - - - {41E949AD-FBF6-47A3-AC1D-7E17AB7F1252} - InspectionUI.RemoteControl - - - - - False - .NET Framework 3.5 SP1 - false - - - - - - - - - \ No newline at end of file diff --git a/Common/OmniPlus/InspectionUI/ItemsGrid.xaml b/Common/OmniPlus/InspectionUI/ItemsGrid.xaml deleted file mode 100644 index 5d9c1912..00000000 --- a/Common/OmniPlus/InspectionUI/ItemsGrid.xaml +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Common/OmniPlus/InspectionUI/MainWindow.xaml.cs b/Common/OmniPlus/InspectionUI/MainWindow.xaml.cs deleted file mode 100644 index 18296a26..00000000 --- a/Common/OmniPlus/InspectionUI/MainWindow.xaml.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace InspectionUI -{ - using System; - using System.Windows; - - public partial class MainWindow : Window - { - public MainWindow() => this.InitializeComponent(); - } -} diff --git a/Common/OmniPlus/InspectionUI/Omni/Models/DatabaseM.cs b/Common/OmniPlus/InspectionUI/Omni/Models/DatabaseM.cs deleted file mode 100644 index a0f53990..00000000 --- a/Common/OmniPlus/InspectionUI/Omni/Models/DatabaseM.cs +++ /dev/null @@ -1,33 +0,0 @@ -namespace InspectionUI.Omni.Models -{ - using Common.Logic.Extensions.SQL; - using Common.Logic.Extensions.SQL.Interfaces; - - using System; - - internal class DataM - { - private readonly ISQLConnection mssql; - - public DataM() - { - var connectionString = Appsettings.Current["MSSQL.Auftrag"]; - this.mssql = SQLConnection.CreateSQLConnection(connectionString, this.OnSqlError); - } - - public void LoadOrderHead() - { - - } - - public void LoadTestRun() - { - throw new NotImplementedException(); - } - - public void OnSqlError(String error) - { - throw new NotImplementedException(); - } - } -} \ No newline at end of file diff --git a/Common/OmniPlus/InspectionUI/Omni/Models/OmniInspectionM.cs b/Common/OmniPlus/InspectionUI/Omni/Models/OmniInspectionM.cs deleted file mode 100644 index 5fb23c58..00000000 --- a/Common/OmniPlus/InspectionUI/Omni/Models/OmniInspectionM.cs +++ /dev/null @@ -1,26 +0,0 @@ -namespace InspectionUI.Omni.Models -{ - internal class OmniInspectionM - { - private readonly Appsettings appsettings; - private readonly DataM dataModel; - private readonly RemoteConnectionM remoteConnectionModel; - private readonly ProgrammingBatchM programmingBatchModel; - - public OmniInspectionM(Appsettings appsettings) - { - this.appsettings = appsettings; - this.dataModel = new DataM(); - this.remoteConnectionModel = new RemoteConnectionM(); - this.programmingBatchModel = new ProgrammingBatchM(); - } - - public void Initialize() - { - this.remoteConnectionModel.LoadTestBenchInfo(); - this.dataModel.LoadOrderHead(); - this.dataModel.LoadTestRun(); - this.programmingBatchModel.LoadMeters(); - } - } -} diff --git a/Common/OmniPlus/InspectionUI/Omni/Models/ProgrammingBatchM.cs b/Common/OmniPlus/InspectionUI/Omni/Models/ProgrammingBatchM.cs deleted file mode 100644 index 599de0a4..00000000 --- a/Common/OmniPlus/InspectionUI/Omni/Models/ProgrammingBatchM.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace InspectionUI.Omni.Models -{ - using System; - using Common.Hardware.WaterMeter.OmniPlus; - - internal class ProgrammingBatchM - { - private readonly ProgrammingBatch programmingBatch; - - public ProgrammingBatchM() - { - this.programmingBatch = new ProgrammingBatch(); - } - - public void LoadMeters() - { - throw new NotImplementedException(); - } - } -} diff --git a/Common/OmniPlus/InspectionUI/Omni/Models/RemoteConnectionM.cs b/Common/OmniPlus/InspectionUI/Omni/Models/RemoteConnectionM.cs deleted file mode 100644 index bf7bc5e0..00000000 --- a/Common/OmniPlus/InspectionUI/Omni/Models/RemoteConnectionM.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace InspectionUI.Omni.Models -{ - using System; - using InspectionUI.RemoteControl; - - public class RemoteConnectionM - { - private readonly RemoteConnection connection; - - public RemoteConnectionM() => this.connection = new RemoteConnection(); - - internal void LoadTestBenchInfo() - { - throw new NotImplementedException(); - } - } -} diff --git a/Common/OmniPlus/InspectionUI/Omni/ViewModels/OmniInspectionVM.cs b/Common/OmniPlus/InspectionUI/Omni/ViewModels/OmniInspectionVM.cs deleted file mode 100644 index 1bfd4821..00000000 --- a/Common/OmniPlus/InspectionUI/Omni/ViewModels/OmniInspectionVM.cs +++ /dev/null @@ -1,26 +0,0 @@ -namespace InspectionUI.Omni.ViewModels -{ - using InspectionUI.Omni.Models; - - using System; - - internal class OmniInspectionVM - { - private readonly OmniInspectionM model; - - public OmniInspectionVM() - { - this.model = new OmniInspectionM(Appsettings.Current); - } - - public String OrderNo { get; set; } - - public String PosNo { get; set; } - - public String ProductionOrderNumber { get; set; } - - public String IdentNo { get; set; } - - public String Type { get; set; } - } -} diff --git a/Common/OmniPlus/InspectionUI/Omni/Views/OmniInspection.xaml b/Common/OmniPlus/InspectionUI/Omni/Views/OmniInspection.xaml deleted file mode 100644 index cca7cd00..00000000 --- a/Common/OmniPlus/InspectionUI/Omni/Views/OmniInspection.xaml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -