DLMS-SPODES 0.87.12__py3-none-any.whl → 0.87.15__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- DLMS_SPODES/Values/EN/__init__.py +1 -1
- DLMS_SPODES/Values/EN/actors.py +8 -8
- DLMS_SPODES/Values/EN/relation_to_obis_names.py +387 -387
- DLMS_SPODES/Values/RU/__init__.py +1 -1
- DLMS_SPODES/Values/RU/actors.py +8 -8
- DLMS_SPODES/Values/RU/relation_to_obis_names.py +396 -396
- DLMS_SPODES/__init__.py +6 -6
- DLMS_SPODES/configEN.ini +126 -126
- DLMS_SPODES/config_parser.py +53 -53
- DLMS_SPODES/cosem_interface_classes/__class_init__.py +3 -3
- DLMS_SPODES/cosem_interface_classes/__init__.py +1 -1
- DLMS_SPODES/cosem_interface_classes/a_parameter.py +20 -20
- DLMS_SPODES/cosem_interface_classes/activity_calendar.py +254 -254
- DLMS_SPODES/cosem_interface_classes/arbitrator.py +105 -105
- DLMS_SPODES/cosem_interface_classes/association_ln/abstract.py +34 -34
- DLMS_SPODES/cosem_interface_classes/association_ln/authentication_mechanism_name.py +25 -25
- DLMS_SPODES/cosem_interface_classes/association_ln/mechanism_id.py +25 -25
- DLMS_SPODES/cosem_interface_classes/association_ln/method.py +5 -5
- DLMS_SPODES/cosem_interface_classes/association_ln/ver0.py +485 -485
- DLMS_SPODES/cosem_interface_classes/association_ln/ver1.py +133 -133
- DLMS_SPODES/cosem_interface_classes/association_ln/ver2.py +36 -36
- DLMS_SPODES/cosem_interface_classes/association_ln/ver3.py +4 -4
- DLMS_SPODES/cosem_interface_classes/association_sn/ver0.py +12 -12
- DLMS_SPODES/cosem_interface_classes/attr_indexes.py +12 -12
- DLMS_SPODES/cosem_interface_classes/clock.py +131 -131
- DLMS_SPODES/cosem_interface_classes/collection.py +2122 -2122
- DLMS_SPODES/cosem_interface_classes/cosem_interface_class.py +583 -583
- DLMS_SPODES/cosem_interface_classes/data.py +21 -21
- DLMS_SPODES/cosem_interface_classes/demand_register/ver0.py +59 -59
- DLMS_SPODES/cosem_interface_classes/disconnect_control.py +74 -74
- DLMS_SPODES/cosem_interface_classes/extended_register.py +27 -27
- DLMS_SPODES/cosem_interface_classes/gprs_modem_setup.py +43 -43
- DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver0.py +103 -103
- DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver1.py +40 -40
- DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver2.py +9 -9
- DLMS_SPODES/cosem_interface_classes/iec_hdlc_setup/ver0.py +11 -11
- DLMS_SPODES/cosem_interface_classes/iec_hdlc_setup/ver1.py +53 -53
- DLMS_SPODES/cosem_interface_classes/iec_local_port_setup.py +11 -11
- DLMS_SPODES/cosem_interface_classes/image_transfer/image_transfer_status.py +15 -15
- DLMS_SPODES/cosem_interface_classes/image_transfer/ver0.py +126 -126
- DLMS_SPODES/cosem_interface_classes/implementations/__init__.py +3 -3
- DLMS_SPODES/cosem_interface_classes/implementations/arbitrator.py +19 -19
- DLMS_SPODES/cosem_interface_classes/implementations/data.py +487 -487
- DLMS_SPODES/cosem_interface_classes/implementations/profile_generic.py +83 -83
- DLMS_SPODES/cosem_interface_classes/ipv4_setup.py +72 -72
- DLMS_SPODES/cosem_interface_classes/limiter.py +111 -111
- DLMS_SPODES/cosem_interface_classes/ln_pattern.py +333 -333
- DLMS_SPODES/cosem_interface_classes/modem_configuration/ver0.py +65 -65
- DLMS_SPODES/cosem_interface_classes/modem_configuration/ver1.py +39 -39
- DLMS_SPODES/cosem_interface_classes/ntp_setup/ver0.py +67 -67
- DLMS_SPODES/cosem_interface_classes/obis.py +23 -23
- DLMS_SPODES/cosem_interface_classes/overview.py +197 -197
- DLMS_SPODES/cosem_interface_classes/parameter.py +547 -547
- DLMS_SPODES/cosem_interface_classes/parameters.py +172 -172
- DLMS_SPODES/cosem_interface_classes/profile_generic/ver0.py +122 -122
- DLMS_SPODES/cosem_interface_classes/profile_generic/ver1.py +277 -277
- DLMS_SPODES/cosem_interface_classes/push_setup/ver0.py +12 -12
- DLMS_SPODES/cosem_interface_classes/push_setup/ver1.py +10 -10
- DLMS_SPODES/cosem_interface_classes/push_setup/ver2.py +166 -166
- DLMS_SPODES/cosem_interface_classes/register.py +45 -45
- DLMS_SPODES/cosem_interface_classes/register_activation/ver0.py +80 -80
- DLMS_SPODES/cosem_interface_classes/register_monitor.py +46 -46
- DLMS_SPODES/cosem_interface_classes/reports.py +70 -70
- DLMS_SPODES/cosem_interface_classes/schedule.py +176 -176
- DLMS_SPODES/cosem_interface_classes/script_table.py +87 -87
- DLMS_SPODES/cosem_interface_classes/security_setup/ver0.py +68 -68
- DLMS_SPODES/cosem_interface_classes/security_setup/ver1.py +158 -158
- DLMS_SPODES/cosem_interface_classes/single_action_schedule.py +50 -50
- DLMS_SPODES/cosem_interface_classes/special_days_table.py +84 -84
- DLMS_SPODES/cosem_interface_classes/tcp_udp_setup.py +42 -42
- DLMS_SPODES/cosem_pdu.py +93 -93
- DLMS_SPODES/enums.py +625 -625
- DLMS_SPODES/exceptions.py +106 -106
- DLMS_SPODES/firmwares.py +99 -99
- DLMS_SPODES/hdlc/frame.py +875 -875
- DLMS_SPODES/hdlc/sub_layer.py +54 -54
- DLMS_SPODES/literals.py +17 -17
- DLMS_SPODES/obis/__init__.py +1 -1
- DLMS_SPODES/obis/media_id.py +931 -931
- DLMS_SPODES/pardata.py +22 -22
- DLMS_SPODES/pdu_enums.py +98 -98
- DLMS_SPODES/relation_to_OBIS.py +465 -463
- DLMS_SPODES/settings.py +551 -551
- DLMS_SPODES/types/choices.py +142 -142
- DLMS_SPODES/types/common_data_types.py +2401 -2399
- DLMS_SPODES/types/cosem_service_types.py +109 -109
- DLMS_SPODES/types/implementations/arrays.py +25 -25
- DLMS_SPODES/types/implementations/bitstrings.py +97 -97
- DLMS_SPODES/types/implementations/double_long_usingneds.py +35 -35
- DLMS_SPODES/types/implementations/enums.py +57 -57
- DLMS_SPODES/types/implementations/integers.py +11 -11
- DLMS_SPODES/types/implementations/long_unsigneds.py +127 -127
- DLMS_SPODES/types/implementations/octet_string.py +11 -11
- DLMS_SPODES/types/implementations/structs.py +64 -64
- DLMS_SPODES/types/useful_types.py +677 -677
- {dlms_spodes-0.87.12.dist-info → dlms_spodes-0.87.15.dist-info}/METADATA +30 -30
- dlms_spodes-0.87.15.dist-info/RECORD +117 -0
- {dlms_spodes-0.87.12.dist-info → dlms_spodes-0.87.15.dist-info}/WHEEL +1 -1
- dlms_spodes-0.87.12.dist-info/RECORD +0 -117
- {dlms_spodes-0.87.12.dist-info → dlms_spodes-0.87.15.dist-info}/top_level.txt +0 -0
DLMS_SPODES/relation_to_OBIS.py
CHANGED
|
@@ -1,463 +1,465 @@
|
|
|
1
|
-
""" The OBIS identification system serves as a basis for the COSEM logical names. The system of naming COSEM objects is defined in the basic
|
|
2
|
-
principles (see Clause 4 EN 62056-62:2007), the identification of real data items is specified in IEC 62056-61. The following clauses define the
|
|
3
|
-
usage of those definitions in the COSEM environment. All codes, which are not explicitly listed, but outside the manufacturer specific range are
|
|
4
|
-
reserved for future use."""
|
|
5
|
-
from functools import lru_cache
|
|
6
|
-
from dataclasses import dataclass
|
|
7
|
-
from . import settings
|
|
8
|
-
from .types import cosem_service_types as cst
|
|
9
|
-
from .cosem_interface_classes import overview
|
|
10
|
-
from .obis import media_id
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
match settings.get_current_language():
|
|
14
|
-
case settings.Language.ENGLISH: from .Values.EN import relation_to_obis_names as rn
|
|
15
|
-
case settings.Language.RUSSIAN: from .Values.RU import relation_to_obis_names as rn
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def get_energy_names(electric_obj: int) -> str:
|
|
19
|
-
""" corresponding with Сподэс """
|
|
20
|
-
match electric_obj:
|
|
21
|
-
case 1 | 21 | 41 | 61: return "Активная энергия, импорт"
|
|
22
|
-
case 2 | 22 | 42 | 62: return "Активная энергия, экспорт"
|
|
23
|
-
case 3 | 23 | 43 | 63: return "Реактивная энергия, импорт"
|
|
24
|
-
case 4 | 24 | 44 | 64: return "Реактивная энергия, экспорт"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def get_obj_names(electric_obj: int) -> str:
|
|
28
|
-
""" corresponding with DLMS UA 1000-1 Ed. 14 7.5.1 Table 65. Value group C codes – Electricity. Range: 1..80, RU: 124..126 """
|
|
29
|
-
match electric_obj:
|
|
30
|
-
case 1 | 21 | 41 | 61: return str(media_id.ACTIVE_POWER_PLUS)
|
|
31
|
-
case 2 | 22 | 42 | 62: return str(media_id.ACTIVE_POWER_MINUS)
|
|
32
|
-
case 3 | 23 | 43 | 63: return str(media_id.REACTIVE_POWER_PLUS)
|
|
33
|
-
case 4 | 24 | 44 | 64: return str(media_id.REACTIVE_POWER_MINUS)
|
|
34
|
-
case 5 | 25 | 45 | 65: return str(media_id.REACTIVE_POWER_QI)
|
|
35
|
-
case 6 | 26 | 46 | 66: return str(media_id.REACTIVE_POWER_QII)
|
|
36
|
-
case 7 | 27 | 47 | 67: return str(media_id.REACTIVE_POWER_QIII)
|
|
37
|
-
case 8 | 28 | 48 | 68: return str(media_id.REACTIVE_POWER_QIV)
|
|
38
|
-
case 9 | 29 | 49 | 69: return str(media_id.APPARENT_POWER_PLUS)
|
|
39
|
-
case 10 | 30 | 50 | 70: return str(media_id.APPARENT_POWER_MINUS)
|
|
40
|
-
case 11 | 31 | 51 | 71: return str(media_id.CURRENT)
|
|
41
|
-
case 12 | 32 | 52 | 72: return str(media_id.VOLTAGE)
|
|
42
|
-
case 13 | 33 | 53 | 73: return str(media_id.POWER_FACTOR)
|
|
43
|
-
case 14 | 34 | 54 | 74: return str(media_id.SUPPLY_FREQUENCY)
|
|
44
|
-
case 15 | 35 | 55 | 75: return str(media_id.ACTIVE_POWER_SUM)
|
|
45
|
-
case 16 | 36 | 56 | 76: return str(media_id.ACTIVE_POWER_DIFF)
|
|
46
|
-
case 17 | 37 | 57 | 77: return str(media_id.ACTIVE_POWER_QI)
|
|
47
|
-
case 18 | 38 | 58 | 78: return str(media_id.ACTIVE_POWER_QII)
|
|
48
|
-
case 19 | 39 | 59 | 79: return str(media_id.ACTIVE_POWER_QIII)
|
|
49
|
-
case 20 | 40 | 60 | 80: return str(media_id.ACTIVE_POWER_QIV)
|
|
50
|
-
case 88: return rn.CUMULATIVE_AMPERE_SQUARED_HOURS
|
|
51
|
-
case 89: return rn.CUMULATIVE_VOLT_SQUARED_HOURS
|
|
52
|
-
case 124: return F"{rn.RU_LINEAR_VOLTAGE} {rn.L1_L2}"
|
|
53
|
-
case 125: return F"{rn.RU_LINEAR_VOLTAGE} {rn.L2_L3}"
|
|
54
|
-
case 126: return F"{rn.RU_LINEAR_VOLTAGE} {rn.L3_L1}"
|
|
55
|
-
case 128: return F"{rn.POWER_REACTIVE_FACTOR} {rn.L1}"
|
|
56
|
-
case 129: return F"{rn.POWER_REACTIVE_FACTOR} {rn.L2}"
|
|
57
|
-
case 130: return F"{rn.POWER_REACTIVE_FACTOR} {rn.L3}"
|
|
58
|
-
case 131: return F"{rn.POWER_REACTIVE_FACTOR} {rn.ALL_PHASE}"
|
|
59
|
-
case 133: return F"{rn.VOLTAGE_ASYMMETRY_COEFFICIENT}"
|
|
60
|
-
case 147: return F"{rn.RU_TOTAL_DEVIATION_TIME} {rn.FOR} {rn.VOLTAGE}"
|
|
61
|
-
case _: raise ValueError(F"getting electrical name by C group with unknown: C={electric_obj}")
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
def get_harmonics_name(classification: int) -> str:
|
|
65
|
-
""" See DLMS UA 1000-1 Ed.13 7.5.3.3 Harmonics """
|
|
66
|
-
match classification:
|
|
67
|
-
case 0: return rn.TOTAL_FUND_ALL
|
|
68
|
-
case 124: return rn.THD
|
|
69
|
-
case 125: return rn.TDD
|
|
70
|
-
case 126: return rn.ALL_HARMONICS
|
|
71
|
-
case 127: return rn.ALL_HARMONICS_TO_NOMINAL_VALUE_RATIO
|
|
72
|
-
case _ if 120 >= classification >= 1: return F"{rn.HARMONIC} {classification}"
|
|
73
|
-
case man:
|
|
74
|
-
return F"Manufacture specific {man}"
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
def get_processing_names(d: int) -> str:
|
|
78
|
-
match d:
|
|
79
|
-
case 0: return rn.BILLING_PERIOD_AVERAGE_SINCE_LAST_RESET
|
|
80
|
-
case 1: return rn.CUMULATIVE_MINIMUM_1
|
|
81
|
-
case 2: return rn.CUMULATIVE_MAXIMUM_1
|
|
82
|
-
case 3: return rn.MINIMUM_1
|
|
83
|
-
case 4: return rn.CURRENT_AVERAGE_1
|
|
84
|
-
case 5: return rn.LAST_AVERAGE_1
|
|
85
|
-
case 6: return rn.MAXIMUM_1
|
|
86
|
-
case 7: return rn.INSTANTANEOUS_VALUE
|
|
87
|
-
case 8: return rn.TIME_INTEGRAL_1
|
|
88
|
-
case 9: return rn.TIME_INTEGRAL_2
|
|
89
|
-
case 10: return rn.TIME_INTEGRAL_3
|
|
90
|
-
case 11: return rn.CUMULATIVE_MINIMUM_2
|
|
91
|
-
case 12: return rn.CUMULATIVE_MAXIMUM_2
|
|
92
|
-
case 13: return rn.MINIMUM_2
|
|
93
|
-
case 14: return rn.CURRENT_AVERAGE_2
|
|
94
|
-
case 15: return rn.LAST_AVERAGE_2
|
|
95
|
-
case 16: return rn.MAXIMUM_2
|
|
96
|
-
case 17: return rn.TIME_INTEGRAL_7
|
|
97
|
-
case 18: return rn.TIME_INTEGRAL_8
|
|
98
|
-
case 19: return rn.TIME_INTEGRAL_9
|
|
99
|
-
case 20: return rn.TIME_INTEGRAL_10
|
|
100
|
-
case 21: return rn.CUMULATIVE_MINIMUM_3
|
|
101
|
-
case 22: return rn.CUMULATIVE_MAXIMUM_3
|
|
102
|
-
case 23: return rn.MINIMUM_3
|
|
103
|
-
case 24: return rn.CURRENT_AVERAGE_3
|
|
104
|
-
case 25: return rn.LAST_AVERAGE_3
|
|
105
|
-
case 26: return rn.MAXIMUM_3
|
|
106
|
-
case 27: return rn.CURRENT_AVERAGE_5
|
|
107
|
-
case 28: return rn.CURRENT_AVERAGE_6
|
|
108
|
-
case 29: return rn.TIME_INTEGRAL_5
|
|
109
|
-
case 30: return rn.TIME_INTEGRAL_6
|
|
110
|
-
case 31: return rn.UNDER_LIMIT_THRESHOLD
|
|
111
|
-
case 32: return rn.UNDER_LIMIT_OCCURRENCE_COUNTER
|
|
112
|
-
case 33: return rn.UNDER_LIMIT_DURATION
|
|
113
|
-
case 34: return rn.UNDER_LIMIT_MAGNITUDE
|
|
114
|
-
case 35: return rn.OVER_LIMIT_THRESHOLD
|
|
115
|
-
case 36: return rn.OVER_LIMIT_OCCURRENCE_COUNTER
|
|
116
|
-
case 37: return rn.OVER_LIMIT_DURATION
|
|
117
|
-
case 38: return rn.OVER_LIMIT_MAGNITUDE
|
|
118
|
-
case 39: return rn.MISSING_THRESHOLD
|
|
119
|
-
case 40: return rn.MISSING_OCCURRENCE_COUNTER
|
|
120
|
-
case 41: return rn.MISSING_DURATION
|
|
121
|
-
case 42: return rn.MISSING_MAGNITUDE
|
|
122
|
-
case 43: return rn.TIME_THRESHOLD_FOR_UNDER_LIMIT
|
|
123
|
-
case 44: return rn.TIME_THRESHOLD_FOR_OVER_LIMIT
|
|
124
|
-
case 45: return rn.TIME_THRESHOLD_FOR_MISSING_MAGNITUDE
|
|
125
|
-
case 46: return rn.CONTRACTED_VALUE
|
|
126
|
-
case 49: return rn.AVERAGE_VALUE_FOR_RECORDING_INTERVAL_1
|
|
127
|
-
case 50: return rn.AVERAGE_VALUE_FOR_RECORDING_INTERVAL_2
|
|
128
|
-
case 51: return rn.MINIMUM_FOR_RECORDING_INTERVAL_1
|
|
129
|
-
case 52: return rn.MINIMUM_FOR_RECORDING_INTERVAL_2
|
|
130
|
-
case 53: return rn.MAXIMUM_FOR_RECORDING_INTERVAL_1
|
|
131
|
-
case 54: return rn.MAXIMUM_FOR_RECORDING_INTERVAL_2
|
|
132
|
-
case 55: return rn.TEST_AVERAGE
|
|
133
|
-
case 56: return rn.CURRENT_AVERAGE_4_FOR_HARMONICS_MEASUREMENT
|
|
134
|
-
case 58: return rn.TIME_INTEGRAL_4
|
|
135
|
-
case 128: return rn.RU_POSITIVE_DEVIATION
|
|
136
|
-
case 129: return rn.RU_NEGATIVE_DEVIATION
|
|
137
|
-
case 133: return F"{rn.RU_TOTAL_DEVIATION_TIME} {rn.BILLING_PERIOD}"
|
|
138
|
-
case 134: return rn.RU_CHANGE_LIMIT_LEVEL
|
|
139
|
-
case _: raise ValueError(F'Unknown Processing of measurement values {d}')
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
def get_rate(value: int) -> str:
|
|
143
|
-
if value == 0:
|
|
144
|
-
return rn.TOTAL
|
|
145
|
-
elif value <= 63:
|
|
146
|
-
return F", {rn.RATE} {value}"
|
|
147
|
-
elif value <= 254:
|
|
148
|
-
return F", {rn.MANUFACTURER_SPECIFIC} {value}"
|
|
149
|
-
elif value == 255:
|
|
150
|
-
return F", {rn.RESERVED}"
|
|
151
|
-
else:
|
|
152
|
-
raise ValueError(F"got group E: {value}, expect 0..255")
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
def handle_B(value: int) -> str:
|
|
156
|
-
if value == 0:
|
|
157
|
-
return ""
|
|
158
|
-
elif value <= 64:
|
|
159
|
-
return F", {rn.CHANNEL} {value}"
|
|
160
|
-
elif value <= 127:
|
|
161
|
-
return F", {rn.UTILITY_SPECIFIC} {value}"
|
|
162
|
-
elif value <= 199:
|
|
163
|
-
return F", {rn.MANUFACTURER_SPECIFIC} {value}"
|
|
164
|
-
elif value <= 255:
|
|
165
|
-
return F", {rn.RESERVED} {value}"
|
|
166
|
-
else:
|
|
167
|
-
raise ValueError(F"got group B: {value}, expect 0..255")
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
def handle_E(value: int) -> str:
|
|
171
|
-
if value == 0:
|
|
172
|
-
return ""
|
|
173
|
-
elif value <= 127:
|
|
174
|
-
return F", {rn.INSTANCE} {value}"
|
|
175
|
-
elif value <= 255:
|
|
176
|
-
return F", {rn.MANUFACTURER_SPECIFIC} {value}"
|
|
177
|
-
else:
|
|
178
|
-
raise ValueError(F"got group E: {value}, expect 0..255")
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
@lru_cache(maxsize=512)
|
|
182
|
-
def get_name(logical_name: cst.LogicalName) -> str:
|
|
183
|
-
match logical_name.a, logical_name.b, logical_name.c, logical_name.d, logical_name.e:
|
|
184
|
-
case 0, b, 0, 2, 0: return F"{rn.ACTIVE_FIRMWARE_IDENTIFIER}{handle_B(b)}"
|
|
185
|
-
case 0, b, 0, 2, 0: return F"{rn.ACTIVE_FIRMWARE_IDENTIFIER}{handle_B(b)}"
|
|
186
|
-
case 0, b, 0, 2, 1: return F"{rn.ACTIVE_FIRMWARE_VERSION}{handle_B(b)}"
|
|
187
|
-
case 0, b, 0, 2, 8: return F"{rn.ACTIVE_FIRMWARE_SIGNATURE}{handle_B(b)}"
|
|
188
|
-
case 0, b, 1, 0, e: return F"{overview.ClassID.CLOCK}{handle_B(b)}{handle_E(e)}"
|
|
189
|
-
case 0, b, 2, 0, e: return F"{overview.ClassID.MODEM_CONFIGURATION}{handle_B(b)}{handle_E(e)}"
|
|
190
|
-
case 0, b, 10, 0, 0: return F"{rn.GLOBAL_METER_RESET_SCRIPT_TABLE}{handle_B(b)}"
|
|
191
|
-
case 0, b, 10, 0, 1: return F"{rn.MDI_RESET_END_OF_BILLING_PERIOD_SCRIPT_TABLE}{handle_B(b)}"
|
|
192
|
-
case 0, b, 10, 0, 100: return F"{rn.TARIFFICATION_SCRIPT_TABLE}{handle_B(b)}"
|
|
193
|
-
case 0, b, 10, 0, 103: return F"{rn.SET_OUTPUT_SIGNALS_SCRIPT_TABLE}{handle_B(b)}"
|
|
194
|
-
case 0, b, 10, 0, 106: return F"{rn.DISCONNECT_CONTROL_SCRIPT_TABLE}{handle_B(b)}"
|
|
195
|
-
case 0, b, 10, 0, 107: return F"{rn.IMAGE_ACTIVATION_SCRIPT_TABLE}{handle_B(b)}"
|
|
196
|
-
case 0, b, 10, 0, 108: return F"{rn.PUSH_SCRIPT_TABLE}{handle_B(b)}"
|
|
197
|
-
case 0, b, 10, 0, 128: return F"{rn.RU_STOP_FRAME_SCRIPT_TABLE}{handle_B(b)}"
|
|
198
|
-
case 0, b, 11, 0, e: return F"{overview.ClassID.SPECIAL_DAYS_TABLE}{handle_B(b)}{handle_E(e)}"
|
|
199
|
-
case 0, b, 12, 0, e: return F"{overview.ClassID.SCHEDULE}{handle_B(b)}{handle_E(e)}"
|
|
200
|
-
case 0, b, 13, 0, e: return F"{overview.ClassID.ACTIVITY_CALENDAR}{handle_B(b)}{handle_E(e)}"
|
|
201
|
-
case 0, b, 14, 0, e: return F"{overview.ClassID.REGISTER_ACTIVATION}{handle_B(b)}{handle_E(e)}"
|
|
202
|
-
case 0, b, 15, 0, 0: return F"{rn.END_OF_BILLING_PERIOD_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
203
|
-
case 0, b, 15, 0, 1: return F"{rn.DISCONNECT_CONTROL_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
204
|
-
case 0, b, 15, 0, 2: return F"{rn.IMAGE_ACTIVATION_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
205
|
-
case 0, b, 15, 0, 3: return F"{rn.OUTPUT_CONTROL_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
206
|
-
case 0, b, 15, 0, 4: return F"{rn.PUSH_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
207
|
-
case 0, b, 15, 0, 5: return F"{rn.LOAD_PROFILE_CONTROL_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
208
|
-
case 0, b, 15, 0, 6: return F"{rn.M_BUS_PROFILE_CONTROL_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
209
|
-
case 0, b, 15, 0, 7: return F"{rn.FUNCTION_CONTROL_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
210
|
-
case 0, b, 16, 1, 1: return F"{rn.RU_ALARM_MONITOR_1}{handle_B(b)}"
|
|
211
|
-
case 0, b, 17, 0, 0: return F"{rn.RU_LIMITER_BY_POWER}{handle_B(b)}"
|
|
212
|
-
case 0, b, 17, 0, 1: return F"{rn.RU_LIMITER_BY_CURRENT}{handle_B(b)}"
|
|
213
|
-
case 0, b, 17, 0, 2: return F"{rn.RU_LIMITER_BY_VOLTAGE}{handle_B(b)}"
|
|
214
|
-
case 0, b, 17, 0, 3: return F"{rn.RU_LIMITER_BY_MAGNETIC}{handle_B(b)}"
|
|
215
|
-
case 0, b, 17, 0, 4: return F"{rn.RU_LIMITER_BY_DIFFERENCE_CURRENT}{handle_B(b)}"
|
|
216
|
-
case 0, b, 17, 0, 5: return F"{rn.RU_LIMITER_BY_TEMPERATURE}{handle_B(b)}"
|
|
217
|
-
case 0, b, 17, 0, e: return F"{overview.ClassID.LIMITER}{handle_B(b)}{handle_E(e)}"
|
|
218
|
-
case 0, 0, 21, 0, 1: return rn.GENERAL_DISPLAY_READOUT
|
|
219
|
-
case 0, 0, 21, 0, 2: return rn.ALTERNATE_DISPLAY_READOUT
|
|
220
|
-
case 0, 0, 22, 0, 0: return rn.RU_IEC_HDLC_SETUP_OPTO
|
|
221
|
-
case 0, 1, 22, 0, 0: return rn.RU_IEC_HDLC_SETUP_RS_485
|
|
222
|
-
case 0, 2, 22, 0, 0: return rn.RU_IEC_HDLC_SETUP_GSM
|
|
223
|
-
case 0, b, 22, 0, 0: return F"{overview.ClassID.IEC_HDLC_SETUP}{handle_B(b)}"
|
|
224
|
-
case 0, b, 25, 0, 0: return F"{overview.ClassID.TCP_UDP_SETUP}{handle_B(b)}"
|
|
225
|
-
case 0, b, 25, 1, 0: return F"{overview.ClassID.IPV4_SETUP}{handle_B(b)}"
|
|
226
|
-
case 0, b, 25, 4, 0: return F"{overview.ClassID.GPRS_MODEM_SETUP}{handle_B(b)}"
|
|
227
|
-
case 0, b, 25, 6, 0: return F"{overview.ClassID.GSM_DIAGNOSTIC}{handle_B(b)}"
|
|
228
|
-
case 0, b, 25, 9, 0: return F"{overview.ClassID.PUSH_SETUP}{handle_B(b)}"
|
|
229
|
-
case 0, b, 25, 10, 0: return F"{overview.ClassID.NTP_SETUP}{handle_B(b)}"
|
|
230
|
-
case 0, 0, 40, 0, 0: return rn.CURRENT_ASSOCIATION
|
|
231
|
-
case 0, 0, 40, 0, 1: return rn.RU_PUBLIC_CLIENT_ASSOCIATION
|
|
232
|
-
case 0, 0, 40, 0, 2: return rn.RU_METER_READER_ASSOCIATION
|
|
233
|
-
case 0, 0, 40, 0, 3: return rn.RU_UTILITY_SETTING_ASSOCIATION
|
|
234
|
-
case 0, 0, 40, 0, 4: return rn.RU_PUBLIC_CLIENT_ASSOCIATION
|
|
235
|
-
case 0, 0, 40, 0, e: return F"{overview.ClassID.ASSOCIATION_LN}{handle_E(e)}"
|
|
236
|
-
case 0, 0, 42, 0, 0: return rn.COSEM_LOGICAL_DEVICE_NAME
|
|
237
|
-
case 0, 0, 43, 0, e: return F"{overview.ClassID.SECURITY_SETUP}{handle_E(e)}"
|
|
238
|
-
case 0, b, 43, 1, e: return F"{rn.INVOCATION_COUNTER}{handle_B(b)}{handle_E(e)}"
|
|
239
|
-
case 0, 0, 44, 0, e: return F"{overview.ClassID.IMAGE_TRANSFER}{handle_E(e)}"
|
|
240
|
-
case 0, 0, 94, 7, 1: return rn.RU_SPECIFIC_PASSPORT_DATA_PROFILE
|
|
241
|
-
case 0, b, 96, 1, 0: return F"{rn.RU_DEVICE_FACTORY_NUMBER}{handle_B(b)}"
|
|
242
|
-
case 0, b, 96, 1, 1: return F"{rn.RU_DEVICE_TYPE}{handle_B(b)}"
|
|
243
|
-
case 0, b, 96, 1, 2: return F"{rn.RU_DEVICE_METROLOGICAL_VERSION}{handle_B(b)}"
|
|
244
|
-
case 0, b, 96, 1, 3: return F"{rn.RU_PRODUCER_NAME}{handle_B(b)}"
|
|
245
|
-
case 0, b, 96, 1, 4: return F"{rn.RU_DEVICE_RELEASE_DATE}{handle_B(b)}"
|
|
246
|
-
case 0, b, 96, 1, 5: return F"{rn.RU_REMOTE_CONSOLE_SERIAL_NUMBER}{handle_B(b)}"
|
|
247
|
-
case 0, b, 96, 1, 6: return F"{rn.RU_SPODES_VERSION}{handle_B(b)}"
|
|
248
|
-
case 0, b, 96, 1, 7: return F"{rn.RU_DEVICE_CONNECTION_SCHEME}{handle_B(b)}"
|
|
249
|
-
case 0, b, 96, 1, 8: return F"{rn.SPODES3_NOT_METROLOGICAL_FIRMWARE_ID}{handle_B(b)}"
|
|
250
|
-
case 0, b, 96, 1, 9: return F"{rn.RU_DEVICE_ID}{handle_B(b)}"
|
|
251
|
-
case 0, b, 96, 1, 10: return F"{rn.RU_COUNTER_POINT_DATA}{handle_B(b)}"
|
|
252
|
-
case 0, b, 96, 2, 0: return F"{rn.NUMBER_OF_CONFIGURATION_PROGRAM_CHANGES}{handle_B(b)}"
|
|
253
|
-
case 0, b, 96, 2, 1: return F"{rn.DATE_A_OF_LAST_CONFIGURATION_PROGRAM_CHANGE}{handle_B(b)}"
|
|
254
|
-
case 0, b, 96, 2, 2: return F"{rn.DATE_A_OF_LAST_TIME_SWITCH_PROGRAM_CHANGE}{handle_B(b)}"
|
|
255
|
-
case 0, b, 96, 2, 3: return F"{rn.DATE_A_OF_LAST_RIPPLE_CONTROL_RECEIVER_PROGRAM_CHANGE}{handle_B(b)}"
|
|
256
|
-
case 0, b, 96, 2, 4: return F"{rn.STATUS_OF_SECURITY_SWITCHES}{handle_B(b)}"
|
|
257
|
-
case 0, b, 96, 2, 5: return F"{rn.DATE_A_OF_LAST_CALIBRATION}{handle_B(b)}"
|
|
258
|
-
case 0, b, 96, 2, 6: return F"{rn.DATE_A_OF_NEXT_CONFIGURATION_PROGRAM_CHANGE}{handle_B(b)}"
|
|
259
|
-
case 0, b, 96, 2, 7: return F"{rn.DATE_A_OF_ACTIVATION_OF_THE_PASSIVE_CALENDAR}{handle_B(b)}"
|
|
260
|
-
case 0, b, 96, 2, 10: return F"{rn.NUMBER_OF_PROTECTED_CONFIGURATION_PROGRAM_CHANGES}{handle_B(b)}"
|
|
261
|
-
case 0, b, 96, 2, 11: return F"{rn.DATE_A_OF_LAST_PROTECTED_CONFIGURATION_PROGRAM_CHANGE}{handle_B(b)}"
|
|
262
|
-
case 0, b, 96, 2, 12: return F"{rn.DATE_A_CORRECTED_OF_LAST_CLOCK_SYNCHRONIZATION_SETTING}{handle_B(b)}"
|
|
263
|
-
case 0, b, 96, 2, 13: return F"{rn.DATE_OF_LAST_FIRMWARE_ACTIVATION}{handle_B(b)}"
|
|
264
|
-
case 0, b, 96, 3, 0: return F"{rn.I_O_CONTROL_SIGNAL_OBJECTS_GLOBAL}{handle_B(b)}"
|
|
265
|
-
case 0, b, 96, 3, 10: return F"{overview.ClassID.DISCONNECT_CONTROL}{handle_B(b)}"
|
|
266
|
-
case 0, b, 96, 3, 20: return F"{rn.RU_RELAY_LOAD_ARBITRATOR}{handle_B(b)}"
|
|
267
|
-
case 0, 0, 96, 4, 1: return rn.RU_LCD_BACKLIGHT_MODE
|
|
268
|
-
case 0, 0, 96, 4, 3: return rn.RU_LOAD_LOCK_STATUS
|
|
269
|
-
case 0, 0, 96, 5, 0: return rn.INTERNAL_OPERATING_STATUS_GLOBAL
|
|
270
|
-
case 0, 0, 96, 5, 1: return rn.INTERNAL_OPERATING_STATUS_1
|
|
271
|
-
case 0, 0, 96, 5, 2: return rn.INTERNAL_OPERATING_STATUS_2
|
|
272
|
-
case 0, 0, 96, 5, 3: return rn.INTERNAL_OPERATING_STATUS_3
|
|
273
|
-
case 0, 0, 96, 5, 4: return rn.INTERNAL_OPERATING_STATUS_4
|
|
274
|
-
case 0, 0, 96, 5, 132: return rn.SPODES3_PHASE_ALTERNATING_CONTROL
|
|
275
|
-
case 0, b, 96, 8, 0: return F"{rn.TIME_OF_OPERATION}{handle_B(b)}"
|
|
276
|
-
case 0, b, 96, 8, 10: return F"{rn.RU_DURATION_OF_FAILURE_OVERSTRAIN}{handle_B(b)}"
|
|
277
|
-
case 0, b, 96, 9, 0: return F"{rn.RU_AMBIENT_TEMPERATURE}{handle_B(b)}"
|
|
278
|
-
case 0, b, 96, 11, 0: return F"{rn.EVENTS_RELATED_TO_VOLTAGE}{handle_B(b)}"
|
|
279
|
-
case 0, b, 96, 11, 1: return F"{rn.RU_EVENTS_RELATED_TO_CURRENT}{handle_B(b)}"
|
|
280
|
-
case 0, b, 96, 11, 2: return F"{rn.RU_EVENTS_RELATED_TO_LOAD_RELAY}{handle_B(b)}"
|
|
281
|
-
case 0, b, 96, 11, 3: return F"{rn.RU_EVENTS_FOR_PROGRAMMING_DEVICE_PARAMETERS}{handle_B(b)}"
|
|
282
|
-
case 0, b, 96, 11, 4: return F"{rn.RU_EXTERNAL_IMPACT_EVENTS}{handle_B(b)}"
|
|
283
|
-
case 0, b, 96, 11, 5: return F"{rn.RU_COMMUNICATION_EVENTS}{handle_B(b)}"
|
|
284
|
-
case 0, b, 96, 11, 6: return F"{rn.RU_ACCESS_CONTROL_EVENTS}{handle_B(b)}"
|
|
285
|
-
case 0, b, 96, 11, 7: return F"{rn.RU_EVENT_CODES_FOR_THE_SELF_DIAGNOSIS_LOG}{handle_B(b)}"
|
|
286
|
-
case 0, b, 96, 11, 8: return F"{rn.RU_EVENTS_FOR_EXCEEDING_THE_REACTIVE_POWER}{handle_B(b)}"
|
|
287
|
-
case 0, b, 96, 12, 4: return F"{rn.RU_CHANNEL_NUMBER_INTERFACE}{handle_B(b)}"
|
|
288
|
-
case 0, b, 96, 12, 6: return F"{rn.COMMUNICATION_ADDRESS}{handle_B(b)}"
|
|
289
|
-
case 0, 128, 96, 12, 0: return F"{rn.KPZ_INTERFACE_LIST}"
|
|
290
|
-
case 0, b, 96, 13, 0: return F"{rn.LOCAL_CONSUMER_MESSAGE}{handle_B(b)}"
|
|
291
|
-
case 0, b, 96, 13, 1: return F"{rn.DISPLAY_CONSUMER_MESSAGE}{handle_B(b)}"
|
|
292
|
-
case 0, b, 96, 15, 0: return F"{rn.RU_RELAY_TRIGGERING_METER_FOR_OPENING}{handle_B(b)}"
|
|
293
|
-
case 0, b, 96, 20, 0: return F"{rn.METER_OPEN_EVENT_COUNTER}{handle_B(b)}"
|
|
294
|
-
case 0, b, 96, 20, 1: return F"{rn.METER_OPEN_EVENT_TIME_STAMP}{handle_B(b)}"
|
|
295
|
-
case 0, b, 96, 20, 2: return F"{rn.METER_OPEN_EVENT_DURATION}{handle_B(b)}"
|
|
296
|
-
case 0, b, 96, 20, 3: return F"{rn.METER_OPEN_EVENT_CUMULATIVE_DURATION}{handle_B(b)}"
|
|
297
|
-
case 0, b, 96, 20, 5: return F"{rn.TERMINAL_COVER_OPEN_EVENT_COUNTER}{handle_B(b)}"
|
|
298
|
-
case 0, b, 96, 20, 6: return F"{rn.TERMINAL_COVER_OPEN_EVENT_TIME_STAMP}{handle_B(b)}"
|
|
299
|
-
case 0, b, 96, 20, 7: return F"{rn.TERMINAL_COVER_OPEN_EVENT_DURATION}{handle_B(b)}"
|
|
300
|
-
case 0, b, 96, 20, 8: return F"{rn.TERMINAL_COVER_OPEN_EVENT_CUMULATIVE}{handle_B(b)}"
|
|
301
|
-
case 0, b, 96, 20, 10: return F"{rn.TILT_EVENT_COUNTER}{handle_B(b)}"
|
|
302
|
-
case 0, b, 96, 20, 11: return F"{rn.TILT_EVENT_TIME_STAMP}{handle_B(b)}"
|
|
303
|
-
case 0, b, 96, 20, 12: return F"{rn.TILT_EVENT_DURATION}{handle_B(b)}"
|
|
304
|
-
case 0, b, 96, 20, 13: return F"{rn.TILT_EVENT_CUMULATIVE_DURATION}{handle_B(b)}"
|
|
305
|
-
case 0, b, 96, 20, 15: return F"{rn.STRONG_DC_MAGNETIC_FIELD_EVENT_COUNTER}{handle_B(b)}"
|
|
306
|
-
case 0, b, 96, 20, 16: return F"{rn.STRONG_DC_MAGNETIC_FIELD_EVENT_TIME_STAMP}{handle_B(b)}"
|
|
307
|
-
case 0, b, 96, 20, 17: return F"{rn.STRONG_DC_MAGNETIC_FIELD_EVENT_DURATION}{handle_B(b)}"
|
|
308
|
-
case 0, b, 96, 20, 18: return F"{rn.STRONG_DC_MAGNETIC_FIELD_EVENT_CUMULATIVE_DURATION}{handle_B(b)}"
|
|
309
|
-
case 0, b, 96, 20, 20: return F"{rn.SUPPLY_CONTROL_SWITCH_VALVE_TAMPER_EVENT_COUNTER}{handle_B(b)}"
|
|
310
|
-
case 0, b, 96, 20, 21: return F"{rn.SUPPLY_CONTROL_SWITCH_VALVE_TAMPER_EVENT_TIME_STAMP}{handle_B(b)}"
|
|
311
|
-
case 0, b, 96, 20, 22: return F"{rn.SUPPLY_CONTROL_SWITCH_VALVE_TAMPER_EVENT_DURATION}{handle_B(b)}"
|
|
312
|
-
case 0, b, 96, 20, 23: return F"{rn.SUPPLY_CONTROL_SWITCH_VALVE_TAMPER_EVENT_CUMULATIVE_DURATION}{handle_B(b)}"
|
|
313
|
-
case 0, b, 96, 20, 25: return F"{rn.METROLOGY_TAMPER_EVENT_COUNTER}{handle_B(b)}"
|
|
314
|
-
case 0, b, 96, 20, 26: return F"{rn.METROLOGY_TAMPER_EVENT_TIME_STAMP}{handle_B(b)}"
|
|
315
|
-
case 0, b, 96, 20, 27: return F"{rn.METROLOGY_TAMPER_EVENT_DURATION}{handle_B(b)}"
|
|
316
|
-
case 0, b, 96, 20, 28: return F"{rn.METROLOGY_TAMPER_EVENT_CUMULATIVE_DURATION}{handle_B(b)}"
|
|
317
|
-
case 0, b, 96, 20, 30: return F"{rn.COMMUNICATION_TAMPER_EVENT_COUNTER}{handle_B(b)}"
|
|
318
|
-
case 0, b, 96, 20, 31: return F"{rn.COMMUNICATION_TAMPER_EVENT_TIME_STAMP}{handle_B(b)}"
|
|
319
|
-
case 0, b, 96, 20, 32: return F"{rn.COMMUNICATION_TAMPER_EVENT_DURATION}{handle_B(b)}"
|
|
320
|
-
case 0, b, 96, 20, 33: return F"{rn.COMMUNICATION_TAMPER_EVENT_CUMULATIVE_DURATION}{handle_B(b)}"
|
|
321
|
-
case 0, 0, 96, 51, 0: return rn.RU_BODY_OPENING_STATE
|
|
322
|
-
case 0, 0, 96, 51, 1: return rn.RU_TERMINALS_COVER_OPENING_STATE
|
|
323
|
-
case 0, 0, 96, 51, 3: return rn.RU_MAGNETIC_FIELD_STATE
|
|
324
|
-
case 0, 0, 96, 51, 4: return rn.RU_HF_FIELD_STATE
|
|
325
|
-
case 0, 0, 96, 51, 5: return rn.RU_ELECTRONIC_SEALS_FIXED_STATE_OF_EVENTS
|
|
326
|
-
case 0, 0, 96, 51, 6: return rn.RU_PRESSING_ELECTRONIC_SEALS
|
|
327
|
-
case 0, 0, 96, 51, 7: return rn.RU_CLEAR_OF_ELECTRONIC_SEALS_FIXED_STATE
|
|
328
|
-
case 0, 0, 96, 51, 8: return rn.RU_FIRST_OPENING_TIME_OF_BODY
|
|
329
|
-
case 0, 0, 96, 51, 9: return rn.RU_FIRST_OPENING_TIME_OF_TERMINALS_COVER
|
|
330
|
-
case 0, 0, 97, 98, 0: return rn.RU_ALARM_REGISTER_1
|
|
331
|
-
case 0, 0, 97, 98, 1: return rn.RU_ALARM_REGISTER_2
|
|
332
|
-
case 0, 0, 97, 98, 10: return rn.RU_ALARM_FILTER_1
|
|
333
|
-
case 0, 0, 97, 98, 11: return rn.RU_ALARM_FILTER_2
|
|
334
|
-
case 0, 0, 97, 98, 20: return rn.ALARM_DESCRIPTOR
|
|
335
|
-
case 0, b, 99, 1, e: return F"{rn.LOAD_PARAMETERS_PROFILE}{handle_B(b)}{handle_E(e)}"
|
|
336
|
-
case 0, b, 99, 13, e: return F"{rn.GSM_DIAGNOSTIC_PROFILE}{handle_B(b)}{handle_E(e)}"
|
|
337
|
-
case 0, b, 99, 98, 0: return F"{rn.RU_VOLTAGE_LOG}{handle_B(b)}"
|
|
338
|
-
case 0, b, 99, 98, 1: return F"{rn.RU_CURRENT_LOG}{handle_B(b)}"
|
|
339
|
-
case 0, b, 99, 98, 2: return F"{rn.RU_COMMUTATION_LOG}{handle_B(b)}"
|
|
340
|
-
case 0, b, 99, 98, 3: return F"{rn.RU_DATA_CORRECTION_LOG}{handle_B(b)}"
|
|
341
|
-
case 0, b, 99, 98, 4: return F"{rn.RU_EXTERNAL_IMPACT_LOG}{handle_B(b)}"
|
|
342
|
-
case 0, b, 99, 98, 5: return F"{rn.RU_COMMUNICATION_LOG}{handle_B(b)}"
|
|
343
|
-
case 0, b, 99, 98, 6: return F"{rn.RU_ACCESS_LOG}{handle_B(b)}"
|
|
344
|
-
case 0, b, 99, 98, 7: return F"{rn.RU_SELF_DIAGNOSTIC_LOG}{handle_B(b)}"
|
|
345
|
-
case 0, b, 99, 98, 8: return F"{rn.RU_REACTIVE_POWER_LOG}{handle_B(b)}"
|
|
346
|
-
case 0, b, 99, 98, 9: return F"{rn.RU_QUALITY_POWER_LOG}{handle_B(b)}"
|
|
347
|
-
case 0, b, 99, 98, 10: return F"{rn.RU_STATUS_I_O_LOG}{handle_B(b)}"
|
|
348
|
-
case 0, b, 99, 98, 12: return F"{rn.RU_REACTIVE_POWER_LIMIT_LOG}{handle_B(b)}"
|
|
349
|
-
case 0, b, 99, 98, 13: return F"{rn.RU_TIME_CORRECTION_LOG}{handle_B(b)}"
|
|
350
|
-
case 0, b, 99, 98, 14: return F"{rn.RU_START_YEAR_LOG}{handle_B(b)}"
|
|
351
|
-
case 0, b, 99, 98, 15: return F"{rn.RU_QUALITY_FOR_CALCULATION_PERIOD_LOG}{handle_B(b)}"
|
|
352
|
-
case 0, b, 99, 98, 16: return F"{rn.RU_CONTROL_POWER_LOG}{handle_B(b)}"
|
|
353
|
-
case 0, b, 99, 98, 17: return F"{rn.RU_BATTERY_LOG}{handle_B(b)}"
|
|
354
|
-
case 0, b, 99, 98, 18: return F"{rn.RU_CONTROL_OF_LOAD_RELAY_BLOCKER_LOG}{handle_B(b)}"
|
|
355
|
-
case 0, b, 99, 98, 19: return F"{rn.RU_TEMPERATURE_CONTROL_LOG}{handle_B(b)}"
|
|
356
|
-
case 0, b, 99, 98, 20: return F"{rn.RU_VOLTAGE_DEVIATION_LOG} {rn.L1}{handle_B(b)}"
|
|
357
|
-
case 0, b, 99, 98, 21: return F"{rn.RU_VOLTAGE_DEVIATION_LOG} {rn.L2}{handle_B(b)}"
|
|
358
|
-
case 0, b, 99, 98, 22: return F"{rn.RU_VOLTAGE_DEVIATION_LOG} {rn.L3}{handle_B(b)}"
|
|
359
|
-
case 0, b, 99, 98, 23: return F"{rn.RU_LINEAR_VOLTAGE_DEVIATION_LOG} {rn.L1_L2}{handle_B(b)}"
|
|
360
|
-
case 0, b, 99, 98, 24: return F"{rn.RU_LINEAR_VOLTAGE_DEVIATION_LOG} {rn.L2_L3}{handle_B(b)}"
|
|
361
|
-
case 0, b, 99, 98, 25: return F"{rn.RU_LINEAR_VOLTAGE_DEVIATION_LOG} {rn.L3_L1}{handle_B(b)}"
|
|
362
|
-
case 0, b, 99, 98, 26: return F"{rn.RU_OVER_VOLTAGE_LOG}{handle_B(b)}"
|
|
363
|
-
case 0, b, 99, 98, 27: return F"{rn.RU_VOLTAGE_INTERRUPTION_LOG}{handle_B(b)}"
|
|
364
|
-
case 0, b, 99, 98, 28: return F"{rn.RU_ABNORMAL_NETWORK_SITUATION_LOG}{handle_B(b)}"
|
|
365
|
-
case 0, b, 99, 98, e: return F"{overview.ClassID.PROFILE_GENERIC}{handle_B(b)}{handle_E(e)}"
|
|
366
|
-
case 0, 0, 128, 99, 0: return rn.KPZ_RELAY_TURN_COUNTER
|
|
367
|
-
case 0, 0, 128, 100, 0: return rn.ITE_FIRMWARE_DESCRIPTOR
|
|
368
|
-
case 0, 0, 128, 100, 0: return rn.ITE_FIRMWARE_DESCRIPTOR
|
|
369
|
-
case 0, 0, 128, 101, 0: return rn.ITE_MAGNETIC_SENSOR_STATUS
|
|
370
|
-
case 0, 0, 128, 102, 0: return rn.ITE_DISCRETE_OUTPUTS
|
|
371
|
-
case 0, 0, 128, 103, 0: return rn.ITE_SETTING_OF_RELAY_INCLUSION_PER_DAY
|
|
372
|
-
case 0, 0, 128, 150, 0: return rn.ITE_SETTINGS_MESSAGES
|
|
373
|
-
case 0, 0, 128, 151, 0: return rn.ITE_CORE_REGISTERS
|
|
374
|
-
case 0, 0, 128, 152, 0: return rn.ITE_BLE_ID
|
|
375
|
-
case 0, 0, 128, 170, 0: return rn.ITE_ICCID
|
|
376
|
-
case 0, 0, 128, 171, 0: return rn.KPZ_IMSI
|
|
377
|
-
case 0, 128, 154, 0, 0: return F"KPZPingTestSetup"
|
|
378
|
-
case 0, 128, 25, 6, 0: return F"(KPZ) ICCID"
|
|
379
|
-
case 1, b, 0, 0, e: return F"{F'{rn.COMPLETE_COMBINED_ELECTRICITY_ID} {e+1}'}{handle_B(b)}"
|
|
380
|
-
case 1, b, 0, 2, 0: return F"{rn.ACTIVE_FIRMWARE_IDENTIFIER}{handle_B(b)}"
|
|
381
|
-
case 1, b, 0, 2, 8: return F"{rn.ACTIVE_FIRMWARE_SIGNATURE}{handle_B(b)}"
|
|
382
|
-
case 1, b, 0, 3, 3: return F"{rn.ACTIVE_ENERGY_OUTPUT_PULSE}{handle_B(b)}"
|
|
383
|
-
case 1, b, 0, 3, 4: return F"{rn.REACTIVE_ENERGY_OUTPUT_PULSE}{handle_B(b)}"
|
|
384
|
-
case 1, b, 0, 4, 2: return F"{rn.TRANSFORMER_RATIO_CURRENT}{handle_B(b)}"
|
|
385
|
-
case 1, b, 0, 4, 3: return F"{rn.TRANSFORMER_RATIO_VOLTAGE}{handle_B(b)}"
|
|
386
|
-
# Nominal values
|
|
387
|
-
case 1, b, 0, 6, 0: return F"{rn.NOMINAL_VOLTAGE}{handle_B(b)}"
|
|
388
|
-
case 1, b, 0, 6, 1: return F"{rn.NOMINAL_CURRENT}{handle_B(b)}"
|
|
389
|
-
case 1, b, 0, 6, 2: return F"{rn.NOMINAL_FREQUENCY}{handle_B(b)}"
|
|
390
|
-
case 1, b, 0, 6, 3: return F"{rn.MAXIMUM_CURRENT}{handle_B(b)}"
|
|
391
|
-
case 1, b, 0, 6, 4: return rn.REFERENCE_VOLTAGE_FOR_POWER_QUALITY_MEASUREMENT
|
|
392
|
-
case 1, b, 0, 6, 5: return F"{rn.REFERENCED_VOLTAGE_FOR_AUX_POWER_SUPPLY}{handle_B(b)}"
|
|
393
|
-
case 1, b, 0, 8, 4: return F"{rn.RECORDING_INTERVAL_1_FOR_LOAD_PROFILE}{handle_B(b)}"
|
|
394
|
-
case 1, b, 0, 8, 5: return F"{rn.RECORDING_INTERVAL_2_FOR_LOAD_PROFILE}{handle_B(b)}"
|
|
395
|
-
# Coefficients
|
|
396
|
-
case 1, b, 0, 10, 0: return F"{rn.TRANSFORMER_MAGNETIC_LOSSES}{handle_B(b)}"
|
|
397
|
-
case 1, b, 0, 10, 1: return F"{rn.TRANSFORMER_IRON_LOSSES}{handle_B(b)}"
|
|
398
|
-
case 1, b, 0, 10, 2: return F"{rn.LINE_RESISTANCE_LOSSES}{handle_B(b)}"
|
|
399
|
-
case 1, b, 0, 10, 3: return F"{rn.LINE_REACTANCE_LOSSES}{handle_B(b)}"
|
|
400
|
-
case 1, b, 1 | 2 | 3 | 4 as c, 8, e:
|
|
401
|
-
return F"{handle_B(b)}{get_energy_names(c)} {get_rate(e)}"
|
|
402
|
-
case 1, b, 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 as c, d, e:
|
|
403
|
-
return F"{handle_B(b)}{rn.CUMULATIVE} {get_obj_names(c)} {get_processing_names(d)} {get_rate(e)}"
|
|
404
|
-
case
|
|
405
|
-
return
|
|
406
|
-
case 1, b, 11 | 12 as c,
|
|
407
|
-
return F"{handle_B(b)}{get_obj_names(c)} {
|
|
408
|
-
case 1, b, 11 | 12 as c,
|
|
409
|
-
return F"{handle_B(b)}{
|
|
410
|
-
case 1, b,
|
|
411
|
-
return F"{handle_B(b)}{rn.
|
|
412
|
-
case 1, b, c, d, e if c in range(
|
|
413
|
-
return F"{handle_B(b)}{rn.
|
|
414
|
-
case 1, b, c, d, e if c in range(
|
|
415
|
-
return F"{handle_B(b)}{rn.
|
|
416
|
-
case 1, b,
|
|
417
|
-
return F"{handle_B(b)}{get_obj_names(c)} {get_processing_names(d)} {get_rate(e)}"
|
|
418
|
-
case 1, b,
|
|
419
|
-
|
|
420
|
-
case
|
|
421
|
-
|
|
422
|
-
case
|
|
423
|
-
return F"{handle_B(b)}{rn.
|
|
424
|
-
case 1,
|
|
425
|
-
|
|
426
|
-
case
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
case 1, b, 94, 7,
|
|
433
|
-
case 1, b, 94, 7,
|
|
434
|
-
case 1, b, 94, 7,
|
|
435
|
-
case 1, b, 94, 7,
|
|
436
|
-
case 1, b, 94, 7,
|
|
437
|
-
case 1, b, 94, 7,
|
|
438
|
-
case 1, b,
|
|
439
|
-
case 1, b,
|
|
440
|
-
case 1, b,
|
|
441
|
-
case 1, b,
|
|
442
|
-
case
|
|
443
|
-
case
|
|
444
|
-
case 128, 0,
|
|
445
|
-
case 128, 0,
|
|
446
|
-
case 128, 0,
|
|
447
|
-
case 128, 0,
|
|
448
|
-
case 128, 0,
|
|
449
|
-
case 128, 0,
|
|
450
|
-
case 128, 0,
|
|
451
|
-
case 128, 0,
|
|
452
|
-
case 128, 0,
|
|
453
|
-
case 128, 0,
|
|
454
|
-
case 128, 0,
|
|
455
|
-
case 128, 0,
|
|
456
|
-
case 128, 0,
|
|
457
|
-
case 128, 0,
|
|
458
|
-
case 128, 0,
|
|
459
|
-
case 128, 0,
|
|
460
|
-
case 128, 0,
|
|
461
|
-
case 128, 0,
|
|
462
|
-
case
|
|
463
|
-
|
|
1
|
+
""" The OBIS identification system serves as a basis for the COSEM logical names. The system of naming COSEM objects is defined in the basic
|
|
2
|
+
principles (see Clause 4 EN 62056-62:2007), the identification of real data items is specified in IEC 62056-61. The following clauses define the
|
|
3
|
+
usage of those definitions in the COSEM environment. All codes, which are not explicitly listed, but outside the manufacturer specific range are
|
|
4
|
+
reserved for future use."""
|
|
5
|
+
from functools import lru_cache
|
|
6
|
+
from dataclasses import dataclass
|
|
7
|
+
from . import settings
|
|
8
|
+
from .types import cosem_service_types as cst
|
|
9
|
+
from .cosem_interface_classes import overview
|
|
10
|
+
from .obis import media_id
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
match settings.get_current_language():
|
|
14
|
+
case settings.Language.ENGLISH: from .Values.EN import relation_to_obis_names as rn
|
|
15
|
+
case settings.Language.RUSSIAN: from .Values.RU import relation_to_obis_names as rn
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def get_energy_names(electric_obj: int) -> str:
|
|
19
|
+
""" corresponding with Сподэс """
|
|
20
|
+
match electric_obj:
|
|
21
|
+
case 1 | 21 | 41 | 61: return "Активная энергия, импорт"
|
|
22
|
+
case 2 | 22 | 42 | 62: return "Активная энергия, экспорт"
|
|
23
|
+
case 3 | 23 | 43 | 63: return "Реактивная энергия, импорт"
|
|
24
|
+
case 4 | 24 | 44 | 64: return "Реактивная энергия, экспорт"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def get_obj_names(electric_obj: int) -> str:
|
|
28
|
+
""" corresponding with DLMS UA 1000-1 Ed. 14 7.5.1 Table 65. Value group C codes – Electricity. Range: 1..80, RU: 124..126 """
|
|
29
|
+
match electric_obj:
|
|
30
|
+
case 1 | 21 | 41 | 61: return str(media_id.ACTIVE_POWER_PLUS)
|
|
31
|
+
case 2 | 22 | 42 | 62: return str(media_id.ACTIVE_POWER_MINUS)
|
|
32
|
+
case 3 | 23 | 43 | 63: return str(media_id.REACTIVE_POWER_PLUS)
|
|
33
|
+
case 4 | 24 | 44 | 64: return str(media_id.REACTIVE_POWER_MINUS)
|
|
34
|
+
case 5 | 25 | 45 | 65: return str(media_id.REACTIVE_POWER_QI)
|
|
35
|
+
case 6 | 26 | 46 | 66: return str(media_id.REACTIVE_POWER_QII)
|
|
36
|
+
case 7 | 27 | 47 | 67: return str(media_id.REACTIVE_POWER_QIII)
|
|
37
|
+
case 8 | 28 | 48 | 68: return str(media_id.REACTIVE_POWER_QIV)
|
|
38
|
+
case 9 | 29 | 49 | 69: return str(media_id.APPARENT_POWER_PLUS)
|
|
39
|
+
case 10 | 30 | 50 | 70: return str(media_id.APPARENT_POWER_MINUS)
|
|
40
|
+
case 11 | 31 | 51 | 71: return str(media_id.CURRENT)
|
|
41
|
+
case 12 | 32 | 52 | 72: return str(media_id.VOLTAGE)
|
|
42
|
+
case 13 | 33 | 53 | 73: return str(media_id.POWER_FACTOR)
|
|
43
|
+
case 14 | 34 | 54 | 74: return str(media_id.SUPPLY_FREQUENCY)
|
|
44
|
+
case 15 | 35 | 55 | 75: return str(media_id.ACTIVE_POWER_SUM)
|
|
45
|
+
case 16 | 36 | 56 | 76: return str(media_id.ACTIVE_POWER_DIFF)
|
|
46
|
+
case 17 | 37 | 57 | 77: return str(media_id.ACTIVE_POWER_QI)
|
|
47
|
+
case 18 | 38 | 58 | 78: return str(media_id.ACTIVE_POWER_QII)
|
|
48
|
+
case 19 | 39 | 59 | 79: return str(media_id.ACTIVE_POWER_QIII)
|
|
49
|
+
case 20 | 40 | 60 | 80: return str(media_id.ACTIVE_POWER_QIV)
|
|
50
|
+
case 88: return rn.CUMULATIVE_AMPERE_SQUARED_HOURS
|
|
51
|
+
case 89: return rn.CUMULATIVE_VOLT_SQUARED_HOURS
|
|
52
|
+
case 124: return F"{rn.RU_LINEAR_VOLTAGE} {rn.L1_L2}"
|
|
53
|
+
case 125: return F"{rn.RU_LINEAR_VOLTAGE} {rn.L2_L3}"
|
|
54
|
+
case 126: return F"{rn.RU_LINEAR_VOLTAGE} {rn.L3_L1}"
|
|
55
|
+
case 128: return F"{rn.POWER_REACTIVE_FACTOR} {rn.L1}"
|
|
56
|
+
case 129: return F"{rn.POWER_REACTIVE_FACTOR} {rn.L2}"
|
|
57
|
+
case 130: return F"{rn.POWER_REACTIVE_FACTOR} {rn.L3}"
|
|
58
|
+
case 131: return F"{rn.POWER_REACTIVE_FACTOR} {rn.ALL_PHASE}"
|
|
59
|
+
case 133: return F"{rn.VOLTAGE_ASYMMETRY_COEFFICIENT}"
|
|
60
|
+
case 147: return F"{rn.RU_TOTAL_DEVIATION_TIME} {rn.FOR} {rn.VOLTAGE}"
|
|
61
|
+
case _: raise ValueError(F"getting electrical name by C group with unknown: C={electric_obj}")
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def get_harmonics_name(classification: int) -> str:
|
|
65
|
+
""" See DLMS UA 1000-1 Ed.13 7.5.3.3 Harmonics """
|
|
66
|
+
match classification:
|
|
67
|
+
case 0: return rn.TOTAL_FUND_ALL
|
|
68
|
+
case 124: return rn.THD
|
|
69
|
+
case 125: return rn.TDD
|
|
70
|
+
case 126: return rn.ALL_HARMONICS
|
|
71
|
+
case 127: return rn.ALL_HARMONICS_TO_NOMINAL_VALUE_RATIO
|
|
72
|
+
case _ if 120 >= classification >= 1: return F"{rn.HARMONIC} {classification}"
|
|
73
|
+
case man:
|
|
74
|
+
return F"Manufacture specific {man}"
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def get_processing_names(d: int) -> str:
|
|
78
|
+
match d:
|
|
79
|
+
case 0: return rn.BILLING_PERIOD_AVERAGE_SINCE_LAST_RESET
|
|
80
|
+
case 1: return rn.CUMULATIVE_MINIMUM_1
|
|
81
|
+
case 2: return rn.CUMULATIVE_MAXIMUM_1
|
|
82
|
+
case 3: return rn.MINIMUM_1
|
|
83
|
+
case 4: return rn.CURRENT_AVERAGE_1
|
|
84
|
+
case 5: return rn.LAST_AVERAGE_1
|
|
85
|
+
case 6: return rn.MAXIMUM_1
|
|
86
|
+
case 7: return rn.INSTANTANEOUS_VALUE
|
|
87
|
+
case 8: return rn.TIME_INTEGRAL_1
|
|
88
|
+
case 9: return rn.TIME_INTEGRAL_2
|
|
89
|
+
case 10: return rn.TIME_INTEGRAL_3
|
|
90
|
+
case 11: return rn.CUMULATIVE_MINIMUM_2
|
|
91
|
+
case 12: return rn.CUMULATIVE_MAXIMUM_2
|
|
92
|
+
case 13: return rn.MINIMUM_2
|
|
93
|
+
case 14: return rn.CURRENT_AVERAGE_2
|
|
94
|
+
case 15: return rn.LAST_AVERAGE_2
|
|
95
|
+
case 16: return rn.MAXIMUM_2
|
|
96
|
+
case 17: return rn.TIME_INTEGRAL_7
|
|
97
|
+
case 18: return rn.TIME_INTEGRAL_8
|
|
98
|
+
case 19: return rn.TIME_INTEGRAL_9
|
|
99
|
+
case 20: return rn.TIME_INTEGRAL_10
|
|
100
|
+
case 21: return rn.CUMULATIVE_MINIMUM_3
|
|
101
|
+
case 22: return rn.CUMULATIVE_MAXIMUM_3
|
|
102
|
+
case 23: return rn.MINIMUM_3
|
|
103
|
+
case 24: return rn.CURRENT_AVERAGE_3
|
|
104
|
+
case 25: return rn.LAST_AVERAGE_3
|
|
105
|
+
case 26: return rn.MAXIMUM_3
|
|
106
|
+
case 27: return rn.CURRENT_AVERAGE_5
|
|
107
|
+
case 28: return rn.CURRENT_AVERAGE_6
|
|
108
|
+
case 29: return rn.TIME_INTEGRAL_5
|
|
109
|
+
case 30: return rn.TIME_INTEGRAL_6
|
|
110
|
+
case 31: return rn.UNDER_LIMIT_THRESHOLD
|
|
111
|
+
case 32: return rn.UNDER_LIMIT_OCCURRENCE_COUNTER
|
|
112
|
+
case 33: return rn.UNDER_LIMIT_DURATION
|
|
113
|
+
case 34: return rn.UNDER_LIMIT_MAGNITUDE
|
|
114
|
+
case 35: return rn.OVER_LIMIT_THRESHOLD
|
|
115
|
+
case 36: return rn.OVER_LIMIT_OCCURRENCE_COUNTER
|
|
116
|
+
case 37: return rn.OVER_LIMIT_DURATION
|
|
117
|
+
case 38: return rn.OVER_LIMIT_MAGNITUDE
|
|
118
|
+
case 39: return rn.MISSING_THRESHOLD
|
|
119
|
+
case 40: return rn.MISSING_OCCURRENCE_COUNTER
|
|
120
|
+
case 41: return rn.MISSING_DURATION
|
|
121
|
+
case 42: return rn.MISSING_MAGNITUDE
|
|
122
|
+
case 43: return rn.TIME_THRESHOLD_FOR_UNDER_LIMIT
|
|
123
|
+
case 44: return rn.TIME_THRESHOLD_FOR_OVER_LIMIT
|
|
124
|
+
case 45: return rn.TIME_THRESHOLD_FOR_MISSING_MAGNITUDE
|
|
125
|
+
case 46: return rn.CONTRACTED_VALUE
|
|
126
|
+
case 49: return rn.AVERAGE_VALUE_FOR_RECORDING_INTERVAL_1
|
|
127
|
+
case 50: return rn.AVERAGE_VALUE_FOR_RECORDING_INTERVAL_2
|
|
128
|
+
case 51: return rn.MINIMUM_FOR_RECORDING_INTERVAL_1
|
|
129
|
+
case 52: return rn.MINIMUM_FOR_RECORDING_INTERVAL_2
|
|
130
|
+
case 53: return rn.MAXIMUM_FOR_RECORDING_INTERVAL_1
|
|
131
|
+
case 54: return rn.MAXIMUM_FOR_RECORDING_INTERVAL_2
|
|
132
|
+
case 55: return rn.TEST_AVERAGE
|
|
133
|
+
case 56: return rn.CURRENT_AVERAGE_4_FOR_HARMONICS_MEASUREMENT
|
|
134
|
+
case 58: return rn.TIME_INTEGRAL_4
|
|
135
|
+
case 128: return rn.RU_POSITIVE_DEVIATION
|
|
136
|
+
case 129: return rn.RU_NEGATIVE_DEVIATION
|
|
137
|
+
case 133: return F"{rn.RU_TOTAL_DEVIATION_TIME} {rn.BILLING_PERIOD}"
|
|
138
|
+
case 134: return rn.RU_CHANGE_LIMIT_LEVEL
|
|
139
|
+
case _: raise ValueError(F'Unknown Processing of measurement values {d}')
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def get_rate(value: int) -> str:
|
|
143
|
+
if value == 0:
|
|
144
|
+
return rn.TOTAL
|
|
145
|
+
elif value <= 63:
|
|
146
|
+
return F", {rn.RATE} {value}"
|
|
147
|
+
elif value <= 254:
|
|
148
|
+
return F", {rn.MANUFACTURER_SPECIFIC} {value}"
|
|
149
|
+
elif value == 255:
|
|
150
|
+
return F", {rn.RESERVED}"
|
|
151
|
+
else:
|
|
152
|
+
raise ValueError(F"got group E: {value}, expect 0..255")
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def handle_B(value: int) -> str:
|
|
156
|
+
if value == 0:
|
|
157
|
+
return ""
|
|
158
|
+
elif value <= 64:
|
|
159
|
+
return F", {rn.CHANNEL} {value}"
|
|
160
|
+
elif value <= 127:
|
|
161
|
+
return F", {rn.UTILITY_SPECIFIC} {value}"
|
|
162
|
+
elif value <= 199:
|
|
163
|
+
return F", {rn.MANUFACTURER_SPECIFIC} {value}"
|
|
164
|
+
elif value <= 255:
|
|
165
|
+
return F", {rn.RESERVED} {value}"
|
|
166
|
+
else:
|
|
167
|
+
raise ValueError(F"got group B: {value}, expect 0..255")
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
def handle_E(value: int) -> str:
|
|
171
|
+
if value == 0:
|
|
172
|
+
return ""
|
|
173
|
+
elif value <= 127:
|
|
174
|
+
return F", {rn.INSTANCE} {value}"
|
|
175
|
+
elif value <= 255:
|
|
176
|
+
return F", {rn.MANUFACTURER_SPECIFIC} {value}"
|
|
177
|
+
else:
|
|
178
|
+
raise ValueError(F"got group E: {value}, expect 0..255")
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
@lru_cache(maxsize=512)
|
|
182
|
+
def get_name(logical_name: cst.LogicalName, spec_map: str = "DLMS_6") -> str:
|
|
183
|
+
match logical_name.a, logical_name.b, logical_name.c, logical_name.d, logical_name.e:
|
|
184
|
+
case 0, b, 0, 2, 0: return F"{rn.ACTIVE_FIRMWARE_IDENTIFIER}{handle_B(b)}"
|
|
185
|
+
case 0, b, 0, 2, 0: return F"{rn.ACTIVE_FIRMWARE_IDENTIFIER}{handle_B(b)}"
|
|
186
|
+
case 0, b, 0, 2, 1: return F"{rn.ACTIVE_FIRMWARE_VERSION}{handle_B(b)}"
|
|
187
|
+
case 0, b, 0, 2, 8: return F"{rn.ACTIVE_FIRMWARE_SIGNATURE}{handle_B(b)}"
|
|
188
|
+
case 0, b, 1, 0, e: return F"{overview.ClassID.CLOCK}{handle_B(b)}{handle_E(e)}"
|
|
189
|
+
case 0, b, 2, 0, e: return F"{overview.ClassID.MODEM_CONFIGURATION}{handle_B(b)}{handle_E(e)}"
|
|
190
|
+
case 0, b, 10, 0, 0: return F"{rn.GLOBAL_METER_RESET_SCRIPT_TABLE}{handle_B(b)}"
|
|
191
|
+
case 0, b, 10, 0, 1: return F"{rn.MDI_RESET_END_OF_BILLING_PERIOD_SCRIPT_TABLE}{handle_B(b)}"
|
|
192
|
+
case 0, b, 10, 0, 100: return F"{rn.TARIFFICATION_SCRIPT_TABLE}{handle_B(b)}"
|
|
193
|
+
case 0, b, 10, 0, 103: return F"{rn.SET_OUTPUT_SIGNALS_SCRIPT_TABLE}{handle_B(b)}"
|
|
194
|
+
case 0, b, 10, 0, 106: return F"{rn.DISCONNECT_CONTROL_SCRIPT_TABLE}{handle_B(b)}"
|
|
195
|
+
case 0, b, 10, 0, 107: return F"{rn.IMAGE_ACTIVATION_SCRIPT_TABLE}{handle_B(b)}"
|
|
196
|
+
case 0, b, 10, 0, 108: return F"{rn.PUSH_SCRIPT_TABLE}{handle_B(b)}"
|
|
197
|
+
case 0, b, 10, 0, 128: return F"{rn.RU_STOP_FRAME_SCRIPT_TABLE}{handle_B(b)}"
|
|
198
|
+
case 0, b, 11, 0, e: return F"{overview.ClassID.SPECIAL_DAYS_TABLE}{handle_B(b)}{handle_E(e)}"
|
|
199
|
+
case 0, b, 12, 0, e: return F"{overview.ClassID.SCHEDULE}{handle_B(b)}{handle_E(e)}"
|
|
200
|
+
case 0, b, 13, 0, e: return F"{overview.ClassID.ACTIVITY_CALENDAR}{handle_B(b)}{handle_E(e)}"
|
|
201
|
+
case 0, b, 14, 0, e: return F"{overview.ClassID.REGISTER_ACTIVATION}{handle_B(b)}{handle_E(e)}"
|
|
202
|
+
case 0, b, 15, 0, 0: return F"{rn.END_OF_BILLING_PERIOD_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
203
|
+
case 0, b, 15, 0, 1: return F"{rn.DISCONNECT_CONTROL_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
204
|
+
case 0, b, 15, 0, 2: return F"{rn.IMAGE_ACTIVATION_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
205
|
+
case 0, b, 15, 0, 3: return F"{rn.OUTPUT_CONTROL_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
206
|
+
case 0, b, 15, 0, 4: return F"{rn.PUSH_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
207
|
+
case 0, b, 15, 0, 5: return F"{rn.LOAD_PROFILE_CONTROL_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
208
|
+
case 0, b, 15, 0, 6: return F"{rn.M_BUS_PROFILE_CONTROL_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
209
|
+
case 0, b, 15, 0, 7: return F"{rn.FUNCTION_CONTROL_SINGLE_ACTION_SCHEDULE}{handle_B(b)}"
|
|
210
|
+
case 0, b, 16, 1, 1: return F"{rn.RU_ALARM_MONITOR_1}{handle_B(b)}"
|
|
211
|
+
case 0, b, 17, 0, 0: return F"{rn.RU_LIMITER_BY_POWER}{handle_B(b)}"
|
|
212
|
+
case 0, b, 17, 0, 1: return F"{rn.RU_LIMITER_BY_CURRENT}{handle_B(b)}"
|
|
213
|
+
case 0, b, 17, 0, 2: return F"{rn.RU_LIMITER_BY_VOLTAGE}{handle_B(b)}"
|
|
214
|
+
case 0, b, 17, 0, 3: return F"{rn.RU_LIMITER_BY_MAGNETIC}{handle_B(b)}"
|
|
215
|
+
case 0, b, 17, 0, 4: return F"{rn.RU_LIMITER_BY_DIFFERENCE_CURRENT}{handle_B(b)}"
|
|
216
|
+
case 0, b, 17, 0, 5: return F"{rn.RU_LIMITER_BY_TEMPERATURE}{handle_B(b)}"
|
|
217
|
+
case 0, b, 17, 0, e: return F"{overview.ClassID.LIMITER}{handle_B(b)}{handle_E(e)}"
|
|
218
|
+
case 0, 0, 21, 0, 1: return rn.GENERAL_DISPLAY_READOUT
|
|
219
|
+
case 0, 0, 21, 0, 2: return rn.ALTERNATE_DISPLAY_READOUT
|
|
220
|
+
case 0, 0, 22, 0, 0: return rn.RU_IEC_HDLC_SETUP_OPTO
|
|
221
|
+
case 0, 1, 22, 0, 0: return rn.RU_IEC_HDLC_SETUP_RS_485
|
|
222
|
+
case 0, 2, 22, 0, 0: return rn.RU_IEC_HDLC_SETUP_GSM
|
|
223
|
+
case 0, b, 22, 0, 0: return F"{overview.ClassID.IEC_HDLC_SETUP}{handle_B(b)}"
|
|
224
|
+
case 0, b, 25, 0, 0: return F"{overview.ClassID.TCP_UDP_SETUP}{handle_B(b)}"
|
|
225
|
+
case 0, b, 25, 1, 0: return F"{overview.ClassID.IPV4_SETUP}{handle_B(b)}"
|
|
226
|
+
case 0, b, 25, 4, 0: return F"{overview.ClassID.GPRS_MODEM_SETUP}{handle_B(b)}"
|
|
227
|
+
case 0, b, 25, 6, 0: return F"{overview.ClassID.GSM_DIAGNOSTIC}{handle_B(b)}"
|
|
228
|
+
case 0, b, 25, 9, 0: return F"{overview.ClassID.PUSH_SETUP}{handle_B(b)}"
|
|
229
|
+
case 0, b, 25, 10, 0: return F"{overview.ClassID.NTP_SETUP}{handle_B(b)}"
|
|
230
|
+
case 0, 0, 40, 0, 0: return rn.CURRENT_ASSOCIATION
|
|
231
|
+
case 0, 0, 40, 0, 1: return rn.RU_PUBLIC_CLIENT_ASSOCIATION
|
|
232
|
+
case 0, 0, 40, 0, 2: return rn.RU_METER_READER_ASSOCIATION
|
|
233
|
+
case 0, 0, 40, 0, 3: return rn.RU_UTILITY_SETTING_ASSOCIATION
|
|
234
|
+
case 0, 0, 40, 0, 4: return rn.RU_PUBLIC_CLIENT_ASSOCIATION
|
|
235
|
+
case 0, 0, 40, 0, e: return F"{overview.ClassID.ASSOCIATION_LN}{handle_E(e)}"
|
|
236
|
+
case 0, 0, 42, 0, 0: return rn.COSEM_LOGICAL_DEVICE_NAME
|
|
237
|
+
case 0, 0, 43, 0, e: return F"{overview.ClassID.SECURITY_SETUP}{handle_E(e)}"
|
|
238
|
+
case 0, b, 43, 1, e: return F"{rn.INVOCATION_COUNTER}{handle_B(b)}{handle_E(e)}"
|
|
239
|
+
case 0, 0, 44, 0, e: return F"{overview.ClassID.IMAGE_TRANSFER}{handle_E(e)}"
|
|
240
|
+
case 0, 0, 94, 7, 1: return rn.RU_SPECIFIC_PASSPORT_DATA_PROFILE
|
|
241
|
+
case 0, b, 96, 1, 0: return F"{rn.RU_DEVICE_FACTORY_NUMBER}{handle_B(b)}"
|
|
242
|
+
case 0, b, 96, 1, 1: return F"{rn.RU_DEVICE_TYPE}{handle_B(b)}"
|
|
243
|
+
case 0, b, 96, 1, 2: return F"{rn.RU_DEVICE_METROLOGICAL_VERSION}{handle_B(b)}"
|
|
244
|
+
case 0, b, 96, 1, 3: return F"{rn.RU_PRODUCER_NAME}{handle_B(b)}"
|
|
245
|
+
case 0, b, 96, 1, 4: return F"{rn.RU_DEVICE_RELEASE_DATE}{handle_B(b)}"
|
|
246
|
+
case 0, b, 96, 1, 5: return F"{rn.RU_REMOTE_CONSOLE_SERIAL_NUMBER}{handle_B(b)}"
|
|
247
|
+
case 0, b, 96, 1, 6: return F"{rn.RU_SPODES_VERSION}{handle_B(b)}"
|
|
248
|
+
case 0, b, 96, 1, 7: return F"{rn.RU_DEVICE_CONNECTION_SCHEME}{handle_B(b)}"
|
|
249
|
+
case 0, b, 96, 1, 8: return F"{rn.SPODES3_NOT_METROLOGICAL_FIRMWARE_ID}{handle_B(b)}"
|
|
250
|
+
case 0, b, 96, 1, 9: return F"{rn.RU_DEVICE_ID}{handle_B(b)}"
|
|
251
|
+
case 0, b, 96, 1, 10: return F"{rn.RU_COUNTER_POINT_DATA}{handle_B(b)}"
|
|
252
|
+
case 0, b, 96, 2, 0: return F"{rn.NUMBER_OF_CONFIGURATION_PROGRAM_CHANGES}{handle_B(b)}"
|
|
253
|
+
case 0, b, 96, 2, 1: return F"{rn.DATE_A_OF_LAST_CONFIGURATION_PROGRAM_CHANGE}{handle_B(b)}"
|
|
254
|
+
case 0, b, 96, 2, 2: return F"{rn.DATE_A_OF_LAST_TIME_SWITCH_PROGRAM_CHANGE}{handle_B(b)}"
|
|
255
|
+
case 0, b, 96, 2, 3: return F"{rn.DATE_A_OF_LAST_RIPPLE_CONTROL_RECEIVER_PROGRAM_CHANGE}{handle_B(b)}"
|
|
256
|
+
case 0, b, 96, 2, 4: return F"{rn.STATUS_OF_SECURITY_SWITCHES}{handle_B(b)}"
|
|
257
|
+
case 0, b, 96, 2, 5: return F"{rn.DATE_A_OF_LAST_CALIBRATION}{handle_B(b)}"
|
|
258
|
+
case 0, b, 96, 2, 6: return F"{rn.DATE_A_OF_NEXT_CONFIGURATION_PROGRAM_CHANGE}{handle_B(b)}"
|
|
259
|
+
case 0, b, 96, 2, 7: return F"{rn.DATE_A_OF_ACTIVATION_OF_THE_PASSIVE_CALENDAR}{handle_B(b)}"
|
|
260
|
+
case 0, b, 96, 2, 10: return F"{rn.NUMBER_OF_PROTECTED_CONFIGURATION_PROGRAM_CHANGES}{handle_B(b)}"
|
|
261
|
+
case 0, b, 96, 2, 11: return F"{rn.DATE_A_OF_LAST_PROTECTED_CONFIGURATION_PROGRAM_CHANGE}{handle_B(b)}"
|
|
262
|
+
case 0, b, 96, 2, 12: return F"{rn.DATE_A_CORRECTED_OF_LAST_CLOCK_SYNCHRONIZATION_SETTING}{handle_B(b)}"
|
|
263
|
+
case 0, b, 96, 2, 13: return F"{rn.DATE_OF_LAST_FIRMWARE_ACTIVATION}{handle_B(b)}"
|
|
264
|
+
case 0, b, 96, 3, 0: return F"{rn.I_O_CONTROL_SIGNAL_OBJECTS_GLOBAL}{handle_B(b)}"
|
|
265
|
+
case 0, b, 96, 3, 10: return F"{overview.ClassID.DISCONNECT_CONTROL}{handle_B(b)}"
|
|
266
|
+
case 0, b, 96, 3, 20: return F"{rn.RU_RELAY_LOAD_ARBITRATOR}{handle_B(b)}"
|
|
267
|
+
case 0, 0, 96, 4, 1: return rn.RU_LCD_BACKLIGHT_MODE
|
|
268
|
+
case 0, 0, 96, 4, 3: return rn.RU_LOAD_LOCK_STATUS
|
|
269
|
+
case 0, 0, 96, 5, 0: return rn.INTERNAL_OPERATING_STATUS_GLOBAL
|
|
270
|
+
case 0, 0, 96, 5, 1: return rn.INTERNAL_OPERATING_STATUS_1
|
|
271
|
+
case 0, 0, 96, 5, 2: return rn.INTERNAL_OPERATING_STATUS_2
|
|
272
|
+
case 0, 0, 96, 5, 3: return rn.INTERNAL_OPERATING_STATUS_3
|
|
273
|
+
case 0, 0, 96, 5, 4: return rn.INTERNAL_OPERATING_STATUS_4
|
|
274
|
+
case 0, 0, 96, 5, 132: return rn.SPODES3_PHASE_ALTERNATING_CONTROL
|
|
275
|
+
case 0, b, 96, 8, 0: return F"{rn.TIME_OF_OPERATION}{handle_B(b)}"
|
|
276
|
+
case 0, b, 96, 8, 10: return F"{rn.RU_DURATION_OF_FAILURE_OVERSTRAIN}{handle_B(b)}"
|
|
277
|
+
case 0, b, 96, 9, 0: return F"{rn.RU_AMBIENT_TEMPERATURE}{handle_B(b)}"
|
|
278
|
+
case 0, b, 96, 11, 0: return F"{rn.EVENTS_RELATED_TO_VOLTAGE}{handle_B(b)}"
|
|
279
|
+
case 0, b, 96, 11, 1: return F"{rn.RU_EVENTS_RELATED_TO_CURRENT}{handle_B(b)}"
|
|
280
|
+
case 0, b, 96, 11, 2: return F"{rn.RU_EVENTS_RELATED_TO_LOAD_RELAY}{handle_B(b)}"
|
|
281
|
+
case 0, b, 96, 11, 3: return F"{rn.RU_EVENTS_FOR_PROGRAMMING_DEVICE_PARAMETERS}{handle_B(b)}"
|
|
282
|
+
case 0, b, 96, 11, 4: return F"{rn.RU_EXTERNAL_IMPACT_EVENTS}{handle_B(b)}"
|
|
283
|
+
case 0, b, 96, 11, 5: return F"{rn.RU_COMMUNICATION_EVENTS}{handle_B(b)}"
|
|
284
|
+
case 0, b, 96, 11, 6: return F"{rn.RU_ACCESS_CONTROL_EVENTS}{handle_B(b)}"
|
|
285
|
+
case 0, b, 96, 11, 7: return F"{rn.RU_EVENT_CODES_FOR_THE_SELF_DIAGNOSIS_LOG}{handle_B(b)}"
|
|
286
|
+
case 0, b, 96, 11, 8: return F"{rn.RU_EVENTS_FOR_EXCEEDING_THE_REACTIVE_POWER}{handle_B(b)}"
|
|
287
|
+
case 0, b, 96, 12, 4: return F"{rn.RU_CHANNEL_NUMBER_INTERFACE}{handle_B(b)}"
|
|
288
|
+
case 0, b, 96, 12, 6: return F"{rn.COMMUNICATION_ADDRESS}{handle_B(b)}"
|
|
289
|
+
case 0, 128, 96, 12, 0: return F"{rn.KPZ_INTERFACE_LIST}"
|
|
290
|
+
case 0, b, 96, 13, 0: return F"{rn.LOCAL_CONSUMER_MESSAGE}{handle_B(b)}"
|
|
291
|
+
case 0, b, 96, 13, 1: return F"{rn.DISPLAY_CONSUMER_MESSAGE}{handle_B(b)}"
|
|
292
|
+
case 0, b, 96, 15, 0: return F"{rn.RU_RELAY_TRIGGERING_METER_FOR_OPENING}{handle_B(b)}"
|
|
293
|
+
case 0, b, 96, 20, 0: return F"{rn.METER_OPEN_EVENT_COUNTER}{handle_B(b)}"
|
|
294
|
+
case 0, b, 96, 20, 1: return F"{rn.METER_OPEN_EVENT_TIME_STAMP}{handle_B(b)}"
|
|
295
|
+
case 0, b, 96, 20, 2: return F"{rn.METER_OPEN_EVENT_DURATION}{handle_B(b)}"
|
|
296
|
+
case 0, b, 96, 20, 3: return F"{rn.METER_OPEN_EVENT_CUMULATIVE_DURATION}{handle_B(b)}"
|
|
297
|
+
case 0, b, 96, 20, 5: return F"{rn.TERMINAL_COVER_OPEN_EVENT_COUNTER}{handle_B(b)}"
|
|
298
|
+
case 0, b, 96, 20, 6: return F"{rn.TERMINAL_COVER_OPEN_EVENT_TIME_STAMP}{handle_B(b)}"
|
|
299
|
+
case 0, b, 96, 20, 7: return F"{rn.TERMINAL_COVER_OPEN_EVENT_DURATION}{handle_B(b)}"
|
|
300
|
+
case 0, b, 96, 20, 8: return F"{rn.TERMINAL_COVER_OPEN_EVENT_CUMULATIVE}{handle_B(b)}"
|
|
301
|
+
case 0, b, 96, 20, 10: return F"{rn.TILT_EVENT_COUNTER}{handle_B(b)}"
|
|
302
|
+
case 0, b, 96, 20, 11: return F"{rn.TILT_EVENT_TIME_STAMP}{handle_B(b)}"
|
|
303
|
+
case 0, b, 96, 20, 12: return F"{rn.TILT_EVENT_DURATION}{handle_B(b)}"
|
|
304
|
+
case 0, b, 96, 20, 13: return F"{rn.TILT_EVENT_CUMULATIVE_DURATION}{handle_B(b)}"
|
|
305
|
+
case 0, b, 96, 20, 15: return F"{rn.STRONG_DC_MAGNETIC_FIELD_EVENT_COUNTER}{handle_B(b)}"
|
|
306
|
+
case 0, b, 96, 20, 16: return F"{rn.STRONG_DC_MAGNETIC_FIELD_EVENT_TIME_STAMP}{handle_B(b)}"
|
|
307
|
+
case 0, b, 96, 20, 17: return F"{rn.STRONG_DC_MAGNETIC_FIELD_EVENT_DURATION}{handle_B(b)}"
|
|
308
|
+
case 0, b, 96, 20, 18: return F"{rn.STRONG_DC_MAGNETIC_FIELD_EVENT_CUMULATIVE_DURATION}{handle_B(b)}"
|
|
309
|
+
case 0, b, 96, 20, 20: return F"{rn.SUPPLY_CONTROL_SWITCH_VALVE_TAMPER_EVENT_COUNTER}{handle_B(b)}"
|
|
310
|
+
case 0, b, 96, 20, 21: return F"{rn.SUPPLY_CONTROL_SWITCH_VALVE_TAMPER_EVENT_TIME_STAMP}{handle_B(b)}"
|
|
311
|
+
case 0, b, 96, 20, 22: return F"{rn.SUPPLY_CONTROL_SWITCH_VALVE_TAMPER_EVENT_DURATION}{handle_B(b)}"
|
|
312
|
+
case 0, b, 96, 20, 23: return F"{rn.SUPPLY_CONTROL_SWITCH_VALVE_TAMPER_EVENT_CUMULATIVE_DURATION}{handle_B(b)}"
|
|
313
|
+
case 0, b, 96, 20, 25: return F"{rn.METROLOGY_TAMPER_EVENT_COUNTER}{handle_B(b)}"
|
|
314
|
+
case 0, b, 96, 20, 26: return F"{rn.METROLOGY_TAMPER_EVENT_TIME_STAMP}{handle_B(b)}"
|
|
315
|
+
case 0, b, 96, 20, 27: return F"{rn.METROLOGY_TAMPER_EVENT_DURATION}{handle_B(b)}"
|
|
316
|
+
case 0, b, 96, 20, 28: return F"{rn.METROLOGY_TAMPER_EVENT_CUMULATIVE_DURATION}{handle_B(b)}"
|
|
317
|
+
case 0, b, 96, 20, 30: return F"{rn.COMMUNICATION_TAMPER_EVENT_COUNTER}{handle_B(b)}"
|
|
318
|
+
case 0, b, 96, 20, 31: return F"{rn.COMMUNICATION_TAMPER_EVENT_TIME_STAMP}{handle_B(b)}"
|
|
319
|
+
case 0, b, 96, 20, 32: return F"{rn.COMMUNICATION_TAMPER_EVENT_DURATION}{handle_B(b)}"
|
|
320
|
+
case 0, b, 96, 20, 33: return F"{rn.COMMUNICATION_TAMPER_EVENT_CUMULATIVE_DURATION}{handle_B(b)}"
|
|
321
|
+
case 0, 0, 96, 51, 0: return rn.RU_BODY_OPENING_STATE
|
|
322
|
+
case 0, 0, 96, 51, 1: return rn.RU_TERMINALS_COVER_OPENING_STATE
|
|
323
|
+
case 0, 0, 96, 51, 3: return rn.RU_MAGNETIC_FIELD_STATE
|
|
324
|
+
case 0, 0, 96, 51, 4: return rn.RU_HF_FIELD_STATE
|
|
325
|
+
case 0, 0, 96, 51, 5: return rn.RU_ELECTRONIC_SEALS_FIXED_STATE_OF_EVENTS
|
|
326
|
+
case 0, 0, 96, 51, 6: return rn.RU_PRESSING_ELECTRONIC_SEALS
|
|
327
|
+
case 0, 0, 96, 51, 7: return rn.RU_CLEAR_OF_ELECTRONIC_SEALS_FIXED_STATE
|
|
328
|
+
case 0, 0, 96, 51, 8: return rn.RU_FIRST_OPENING_TIME_OF_BODY
|
|
329
|
+
case 0, 0, 96, 51, 9: return rn.RU_FIRST_OPENING_TIME_OF_TERMINALS_COVER
|
|
330
|
+
case 0, 0, 97, 98, 0: return rn.RU_ALARM_REGISTER_1
|
|
331
|
+
case 0, 0, 97, 98, 1: return rn.RU_ALARM_REGISTER_2
|
|
332
|
+
case 0, 0, 97, 98, 10: return rn.RU_ALARM_FILTER_1
|
|
333
|
+
case 0, 0, 97, 98, 11: return rn.RU_ALARM_FILTER_2
|
|
334
|
+
case 0, 0, 97, 98, 20: return rn.ALARM_DESCRIPTOR
|
|
335
|
+
case 0, b, 99, 1, e: return F"{rn.LOAD_PARAMETERS_PROFILE}{handle_B(b)}{handle_E(e)}"
|
|
336
|
+
case 0, b, 99, 13, e: return F"{rn.GSM_DIAGNOSTIC_PROFILE}{handle_B(b)}{handle_E(e)}"
|
|
337
|
+
case 0, b, 99, 98, 0: return F"{rn.RU_VOLTAGE_LOG}{handle_B(b)}"
|
|
338
|
+
case 0, b, 99, 98, 1: return F"{rn.RU_CURRENT_LOG}{handle_B(b)}"
|
|
339
|
+
case 0, b, 99, 98, 2: return F"{rn.RU_COMMUTATION_LOG}{handle_B(b)}"
|
|
340
|
+
case 0, b, 99, 98, 3: return F"{rn.RU_DATA_CORRECTION_LOG}{handle_B(b)}"
|
|
341
|
+
case 0, b, 99, 98, 4: return F"{rn.RU_EXTERNAL_IMPACT_LOG}{handle_B(b)}"
|
|
342
|
+
case 0, b, 99, 98, 5: return F"{rn.RU_COMMUNICATION_LOG}{handle_B(b)}"
|
|
343
|
+
case 0, b, 99, 98, 6: return F"{rn.RU_ACCESS_LOG}{handle_B(b)}"
|
|
344
|
+
case 0, b, 99, 98, 7: return F"{rn.RU_SELF_DIAGNOSTIC_LOG}{handle_B(b)}"
|
|
345
|
+
case 0, b, 99, 98, 8: return F"{rn.RU_REACTIVE_POWER_LOG}{handle_B(b)}"
|
|
346
|
+
case 0, b, 99, 98, 9: return F"{rn.RU_QUALITY_POWER_LOG}{handle_B(b)}"
|
|
347
|
+
case 0, b, 99, 98, 10: return F"{rn.RU_STATUS_I_O_LOG}{handle_B(b)}"
|
|
348
|
+
case 0, b, 99, 98, 12: return F"{rn.RU_REACTIVE_POWER_LIMIT_LOG}{handle_B(b)}"
|
|
349
|
+
case 0, b, 99, 98, 13: return F"{rn.RU_TIME_CORRECTION_LOG}{handle_B(b)}"
|
|
350
|
+
case 0, b, 99, 98, 14: return F"{rn.RU_START_YEAR_LOG}{handle_B(b)}"
|
|
351
|
+
case 0, b, 99, 98, 15: return F"{rn.RU_QUALITY_FOR_CALCULATION_PERIOD_LOG}{handle_B(b)}"
|
|
352
|
+
case 0, b, 99, 98, 16: return F"{rn.RU_CONTROL_POWER_LOG}{handle_B(b)}"
|
|
353
|
+
case 0, b, 99, 98, 17: return F"{rn.RU_BATTERY_LOG}{handle_B(b)}"
|
|
354
|
+
case 0, b, 99, 98, 18: return F"{rn.RU_CONTROL_OF_LOAD_RELAY_BLOCKER_LOG}{handle_B(b)}"
|
|
355
|
+
case 0, b, 99, 98, 19: return F"{rn.RU_TEMPERATURE_CONTROL_LOG}{handle_B(b)}"
|
|
356
|
+
case 0, b, 99, 98, 20: return F"{rn.RU_VOLTAGE_DEVIATION_LOG} {rn.L1}{handle_B(b)}"
|
|
357
|
+
case 0, b, 99, 98, 21: return F"{rn.RU_VOLTAGE_DEVIATION_LOG} {rn.L2}{handle_B(b)}"
|
|
358
|
+
case 0, b, 99, 98, 22: return F"{rn.RU_VOLTAGE_DEVIATION_LOG} {rn.L3}{handle_B(b)}"
|
|
359
|
+
case 0, b, 99, 98, 23: return F"{rn.RU_LINEAR_VOLTAGE_DEVIATION_LOG} {rn.L1_L2}{handle_B(b)}"
|
|
360
|
+
case 0, b, 99, 98, 24: return F"{rn.RU_LINEAR_VOLTAGE_DEVIATION_LOG} {rn.L2_L3}{handle_B(b)}"
|
|
361
|
+
case 0, b, 99, 98, 25: return F"{rn.RU_LINEAR_VOLTAGE_DEVIATION_LOG} {rn.L3_L1}{handle_B(b)}"
|
|
362
|
+
case 0, b, 99, 98, 26: return F"{rn.RU_OVER_VOLTAGE_LOG}{handle_B(b)}"
|
|
363
|
+
case 0, b, 99, 98, 27: return F"{rn.RU_VOLTAGE_INTERRUPTION_LOG}{handle_B(b)}"
|
|
364
|
+
case 0, b, 99, 98, 28: return F"{rn.RU_ABNORMAL_NETWORK_SITUATION_LOG}{handle_B(b)}"
|
|
365
|
+
case 0, b, 99, 98, e: return F"{overview.ClassID.PROFILE_GENERIC}{handle_B(b)}{handle_E(e)}"
|
|
366
|
+
case 0, 0, 128, 99, 0: return rn.KPZ_RELAY_TURN_COUNTER
|
|
367
|
+
case 0, 0, 128, 100, 0: return rn.ITE_FIRMWARE_DESCRIPTOR
|
|
368
|
+
case 0, 0, 128, 100, 0: return rn.ITE_FIRMWARE_DESCRIPTOR
|
|
369
|
+
case 0, 0, 128, 101, 0: return rn.ITE_MAGNETIC_SENSOR_STATUS
|
|
370
|
+
case 0, 0, 128, 102, 0: return rn.ITE_DISCRETE_OUTPUTS
|
|
371
|
+
case 0, 0, 128, 103, 0: return rn.ITE_SETTING_OF_RELAY_INCLUSION_PER_DAY
|
|
372
|
+
case 0, 0, 128, 150, 0: return rn.ITE_SETTINGS_MESSAGES
|
|
373
|
+
case 0, 0, 128, 151, 0: return rn.ITE_CORE_REGISTERS
|
|
374
|
+
case 0, 0, 128, 152, 0: return rn.ITE_BLE_ID
|
|
375
|
+
case 0, 0, 128, 170, 0: return rn.ITE_ICCID
|
|
376
|
+
case 0, 0, 128, 171, 0: return rn.KPZ_IMSI
|
|
377
|
+
case 0, 128, 154, 0, 0: return F"KPZPingTestSetup"
|
|
378
|
+
case 0, 128, 25, 6, 0: return F"(KPZ) ICCID"
|
|
379
|
+
case 1, b, 0, 0, e: return F"{F'{rn.COMPLETE_COMBINED_ELECTRICITY_ID} {e+1}'}{handle_B(b)}"
|
|
380
|
+
case 1, b, 0, 2, 0: return F"{rn.ACTIVE_FIRMWARE_IDENTIFIER}{handle_B(b)}"
|
|
381
|
+
case 1, b, 0, 2, 8: return F"{rn.ACTIVE_FIRMWARE_SIGNATURE}{handle_B(b)}"
|
|
382
|
+
case 1, b, 0, 3, 3: return F"{rn.ACTIVE_ENERGY_OUTPUT_PULSE}{handle_B(b)}"
|
|
383
|
+
case 1, b, 0, 3, 4: return F"{rn.REACTIVE_ENERGY_OUTPUT_PULSE}{handle_B(b)}"
|
|
384
|
+
case 1, b, 0, 4, 2: return F"{rn.TRANSFORMER_RATIO_CURRENT}{handle_B(b)}"
|
|
385
|
+
case 1, b, 0, 4, 3: return F"{rn.TRANSFORMER_RATIO_VOLTAGE}{handle_B(b)}"
|
|
386
|
+
# Nominal values
|
|
387
|
+
case 1, b, 0, 6, 0: return F"{rn.NOMINAL_VOLTAGE}{handle_B(b)}"
|
|
388
|
+
case 1, b, 0, 6, 1: return F"{rn.NOMINAL_CURRENT}{handle_B(b)}"
|
|
389
|
+
case 1, b, 0, 6, 2: return F"{rn.NOMINAL_FREQUENCY}{handle_B(b)}"
|
|
390
|
+
case 1, b, 0, 6, 3: return F"{rn.MAXIMUM_CURRENT}{handle_B(b)}"
|
|
391
|
+
case 1, b, 0, 6, 4: return rn.REFERENCE_VOLTAGE_FOR_POWER_QUALITY_MEASUREMENT
|
|
392
|
+
case 1, b, 0, 6, 5: return F"{rn.REFERENCED_VOLTAGE_FOR_AUX_POWER_SUPPLY}{handle_B(b)}"
|
|
393
|
+
case 1, b, 0, 8, 4: return F"{rn.RECORDING_INTERVAL_1_FOR_LOAD_PROFILE}{handle_B(b)}"
|
|
394
|
+
case 1, b, 0, 8, 5: return F"{rn.RECORDING_INTERVAL_2_FOR_LOAD_PROFILE}{handle_B(b)}"
|
|
395
|
+
# Coefficients
|
|
396
|
+
case 1, b, 0, 10, 0: return F"{rn.TRANSFORMER_MAGNETIC_LOSSES}{handle_B(b)}"
|
|
397
|
+
case 1, b, 0, 10, 1: return F"{rn.TRANSFORMER_IRON_LOSSES}{handle_B(b)}"
|
|
398
|
+
case 1, b, 0, 10, 2: return F"{rn.LINE_RESISTANCE_LOSSES}{handle_B(b)}"
|
|
399
|
+
case 1, b, 0, 10, 3: return F"{rn.LINE_REACTANCE_LOSSES}{handle_B(b)}"
|
|
400
|
+
case 1, b, 1 | 2 | 3 | 4 as c, 8, e:
|
|
401
|
+
return F"{handle_B(b)}{get_energy_names(c)} {get_rate(e)}"
|
|
402
|
+
case 1, b, 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 as c, d, e:
|
|
403
|
+
return F"{handle_B(b)}{rn.CUMULATIVE} {get_obj_names(c)} {get_processing_names(d)} {get_rate(e)}"
|
|
404
|
+
case 1, 0, 12, 7, 4 if spec_map in ("KPZ", "SPODES_3"):
|
|
405
|
+
return "Глубина провала/перенапряжения"
|
|
406
|
+
case 1, b, 11 | 12 as c, 7, e:
|
|
407
|
+
return F"{handle_B(b)}{get_obj_names(c)} {get_harmonics_name(e)}"
|
|
408
|
+
case 1, b, 11 | 12 as c, 134, 0:
|
|
409
|
+
return F"{handle_B(b)}{get_obj_names(c)} {rn.RU_CHANGE_LIMIT_LEVEL}"
|
|
410
|
+
case 1, b, 11 | 12 as c, d, e:
|
|
411
|
+
return F"{handle_B(b)}{rn.ANY_PHASE} {get_obj_names(c)} {get_processing_names(d)} {get_harmonics_name(e)}"
|
|
412
|
+
case 1, b, c, d, e if c in range(21, 41):
|
|
413
|
+
return F"{handle_B(b)}{rn.L1} {get_obj_names(c)} {get_processing_names(d)} {get_rate(e)}"
|
|
414
|
+
case 1, b, c, d, e if c in range(41, 61):
|
|
415
|
+
return F"{handle_B(b)}{rn.L2} {get_obj_names(c)} {get_processing_names(d)} {get_rate(e)}"
|
|
416
|
+
case 1, b, c, d, e if c in range(61, 81):
|
|
417
|
+
return F"{handle_B(b)}{rn.L3} {get_obj_names(c)} {get_processing_names(d)} {get_rate(e)}"
|
|
418
|
+
case 1, b, 88 | 89 | 124 | 125 | 126 | 128 | 129 | 130 | 131 | 133 as c, d, e:
|
|
419
|
+
return F"{handle_B(b)}{get_obj_names(c)} {get_processing_names(d)} {get_rate(e)}"
|
|
420
|
+
case 1, b, 91, 7, 131: return F"{rn.RU_DIFFERENTIAL_CURRENT}. {rn.INSTANTANEOUS_VALUE}{handle_B(b)}"
|
|
421
|
+
case 1, b, 91, 7, 132: return F"{rn.RU_DIFFERENTIAL_CURRENT}. {rn.PERCENT}. {rn.INSTANTANEOUS_VALUE}{handle_B(b)}"
|
|
422
|
+
case 1, b, 91, d, e if d <= 127:
|
|
423
|
+
return F"{handle_B(b)}{rn.L0_CURRENT_NEUTRAL} {get_processing_names(d)} {get_harmonics_name(e)}"
|
|
424
|
+
case 1, b, 137, d, 128:
|
|
425
|
+
return F"{handle_B(b)}{rn.REACTIVE_FACTOR} {get_processing_names(d)}"
|
|
426
|
+
case 1, 0, 147 as c, 133, 0: return F"{get_obj_names(c)} {rn.BILLING_PERIOD}"
|
|
427
|
+
case 1, 0, 148, 36, 0: return F"{rn.OVER_VOLTAGE_COUNTER} {rn.BILLING_PERIOD}"
|
|
428
|
+
case 1, b, 81, 7, e if e < 78:
|
|
429
|
+
angel_values = (rn.U_L1, rn.U_L2, rn.U_L3, rn.ERROR, rn.I_L1, rn.I_L2, rn.I_L3, rn.I_L0)
|
|
430
|
+
to_, from_ = divmod(logical_name.e, 10)
|
|
431
|
+
return F"{F'{rn.ANGLE_FROM} {angel_values[from_]} {rn.TO} {angel_values[to_]}'}{handle_B(b)}"
|
|
432
|
+
case 1, b, 94, 7, 0: return F"{rn.RU_PROFILE_OF_CURRENT_VALUES}{handle_B(b)}"
|
|
433
|
+
case 1, b, 94, 7, 1: return F"{rn.RU_SCALE_PROFILE_FOR_THE_MAGAZINE_OF_MONTHLY_INDICATIONS}{handle_B(b)}"
|
|
434
|
+
case 1, b, 94, 7, 2: return F"{rn.RU_SCALE_PROFILE_FOR_A_JOURNAL_OF_DAILY_INDICATION}{handle_B(b)}"
|
|
435
|
+
case 1, b, 94, 7, 3: return F"{rn.RU_SCALE_PROFILE_FOR_CURRENT_FRAMES_OF_CURRENT_VALUES}{handle_B(b)}"
|
|
436
|
+
case 1, b, 94, 7, 4: return F"{rn.RU_SCALE_PROFILE_FOR_LOAD_PROFILES}{handle_B(b)}"
|
|
437
|
+
case 1, b, 94, 7, 5: return F"{rn.RU_TELEMECHANICS_PROFILE_FOR_TELEVISION_MEASUREMENTS}{handle_B(b)}"
|
|
438
|
+
case 1, b, 94, 7, 6: return F"{rn.RU_TELEMECHANICS_PROFILE_OF_TELEVISION_SIGNALING}{handle_B(b)}"
|
|
439
|
+
case 1, b, 94, 7, e: return F"{F'{rn.COUNTRY_SPECIFIC_IDENTIFIER} #{e+1}'}{handle_B(b)}"
|
|
440
|
+
case 1, b, 98, 1, e: return F"{rn.RU_MONTHLY_PROFILE}{handle_B(b)}{handle_E(e)}"
|
|
441
|
+
case 1, b, 98, 2, e: return F"{rn.RU_DAILY_PROFILE}{handle_B(b)}{handle_E(e)}"
|
|
442
|
+
case 1, b, 99, 1, e: return F"{rn.RU_LOAD_PROFILE}{handle_B(b)}{handle_E(e)}"
|
|
443
|
+
case 1, b, 99, 2, e: return F"{rn.RU_LOAD_PROFILE} #2{handle_B(b)}{handle_E(e)}"
|
|
444
|
+
case 128, 0, 0, 0, 0: return rn.ITE_CALIBRATION_STATUS
|
|
445
|
+
case 128, 0, 1, 0, 0: return rn.ITE_CALIBRATION_APPARENT_POWER
|
|
446
|
+
case 128, 0, 2, 0, 0: return rn.ITE_CALIBRATION_ACTIVE_POWER
|
|
447
|
+
case 128, 0, 3, 0, 0: return rn.ITE_CALIBRATION_REACTIVE_POWER
|
|
448
|
+
case 128, 0, 4, 0, 0: return rn.ITE_CALIBRATION_VOLTAGE
|
|
449
|
+
case 128, 0, 5, 0, 0: return rn.ITE_CALIBRATION_CURRENT
|
|
450
|
+
case 128, 0, 6, 0, 0: return rn.ITE_CALIBRATION_ANGLE
|
|
451
|
+
case 128, 0, 7, 0, 0: return rn.ITE_DISPLAY_SETTING_1
|
|
452
|
+
case 128, 0, 8, 0, 0: return rn.ITE_DISPLAY_SETTING_2
|
|
453
|
+
case 128, 0, 9, 0, 0: return rn.ITE_CLOCK_OFFSET_SETTING
|
|
454
|
+
case 128, 0, 10, 0, 0: return rn.ITE_FACTORY_SETTING_10
|
|
455
|
+
case 128, 0, 11, 0, 0: return rn.ITE_FACTORY_SETTING_11
|
|
456
|
+
case 128, 0, 12, 0, 0: return rn.ITE_FACTORY_SETTING_12
|
|
457
|
+
case 128, 0, 13, 0, 0: return rn.ITE_FACTORY_SETTING_13
|
|
458
|
+
case 128, 0, 14, 0, 0: return rn.ITE_FACTORY_SETTING_14
|
|
459
|
+
case 128, 0, 15, 0, 0: return rn.ITE_FACTORY_SETTING_15
|
|
460
|
+
case 128, 0, 16, 0, 0: return rn.ITE_FACTORY_SETTING_16
|
|
461
|
+
case 128, 0, 17, 0, 0: return rn.ITE_FACTORY_SETTING_17
|
|
462
|
+
case 128, 0, 18, 0, 0: return rn.ITE_FACTORY_SETTING_18
|
|
463
|
+
case 128, 0, 19, 0, 0: return rn.ITE_FACTORY_SETTING_19
|
|
464
|
+
case _: return rn.UNKNOWN
|
|
465
|
+
""" return name by according logical name """
|