DLMS-SPODES 0.87.17__py3-none-any.whl → 0.88.1__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.
Files changed (103) hide show
  1. DLMS_SPODES/Values/EN/__init__.py +1 -1
  2. DLMS_SPODES/Values/EN/actors.py +8 -8
  3. DLMS_SPODES/Values/EN/relation_to_obis_names.py +387 -387
  4. DLMS_SPODES/Values/RU/__init__.py +1 -1
  5. DLMS_SPODES/Values/RU/actors.py +8 -8
  6. DLMS_SPODES/Values/RU/relation_to_obis_names.py +396 -396
  7. DLMS_SPODES/__init__.py +6 -6
  8. DLMS_SPODES/configEN.ini +126 -126
  9. DLMS_SPODES/config_parser.py +53 -53
  10. DLMS_SPODES/cosem_interface_classes/Overview/__init__.py +0 -0
  11. DLMS_SPODES/cosem_interface_classes/Overview/class_id.py +107 -0
  12. DLMS_SPODES/cosem_interface_classes/__class_init__.py +3 -3
  13. DLMS_SPODES/cosem_interface_classes/__init__.py +3 -2
  14. DLMS_SPODES/cosem_interface_classes/activity_calendar.py +210 -254
  15. DLMS_SPODES/cosem_interface_classes/arbitrator.py +78 -105
  16. DLMS_SPODES/cosem_interface_classes/association_ln/abstract.py +50 -34
  17. DLMS_SPODES/cosem_interface_classes/association_ln/authentication_mechanism_name.py +25 -25
  18. DLMS_SPODES/cosem_interface_classes/association_ln/mechanism_id.py +25 -25
  19. DLMS_SPODES/cosem_interface_classes/association_ln/method.py +5 -5
  20. DLMS_SPODES/cosem_interface_classes/association_ln/ver0.py +440 -485
  21. DLMS_SPODES/cosem_interface_classes/association_ln/ver1.py +126 -133
  22. DLMS_SPODES/cosem_interface_classes/association_ln/ver2.py +30 -36
  23. DLMS_SPODES/cosem_interface_classes/association_ln/ver3.py +3 -4
  24. DLMS_SPODES/cosem_interface_classes/association_sn/ver0.py +14 -12
  25. DLMS_SPODES/cosem_interface_classes/clock.py +81 -131
  26. DLMS_SPODES/cosem_interface_classes/collection.py +2106 -2122
  27. DLMS_SPODES/cosem_interface_classes/cosem_interface_class.py +525 -583
  28. DLMS_SPODES/cosem_interface_classes/data.py +12 -21
  29. DLMS_SPODES/cosem_interface_classes/demand_register/ver0.py +32 -59
  30. DLMS_SPODES/cosem_interface_classes/disconnect_control.py +56 -74
  31. DLMS_SPODES/cosem_interface_classes/extended_register.py +18 -27
  32. DLMS_SPODES/cosem_interface_classes/gprs_modem_setup.py +33 -43
  33. DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver0.py +78 -103
  34. DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver1.py +42 -40
  35. DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver2.py +6 -9
  36. DLMS_SPODES/cosem_interface_classes/iec_hdlc_setup/ver0.py +11 -11
  37. DLMS_SPODES/cosem_interface_classes/iec_hdlc_setup/ver1.py +27 -53
  38. DLMS_SPODES/cosem_interface_classes/iec_local_port_setup.py +9 -11
  39. DLMS_SPODES/cosem_interface_classes/image_transfer/image_transfer_status.py +15 -15
  40. DLMS_SPODES/cosem_interface_classes/image_transfer/ver0.py +54 -126
  41. DLMS_SPODES/cosem_interface_classes/implementations/__init__.py +3 -3
  42. DLMS_SPODES/cosem_interface_classes/implementations/arbitrator.py +19 -19
  43. DLMS_SPODES/cosem_interface_classes/implementations/data.py +491 -487
  44. DLMS_SPODES/cosem_interface_classes/implementations/profile_generic.py +85 -83
  45. DLMS_SPODES/cosem_interface_classes/ipv4_setup.py +42 -72
  46. DLMS_SPODES/cosem_interface_classes/limiter.py +77 -111
  47. DLMS_SPODES/cosem_interface_classes/ln_pattern.py +334 -333
  48. DLMS_SPODES/cosem_interface_classes/modem_configuration/ver0.py +51 -65
  49. DLMS_SPODES/cosem_interface_classes/modem_configuration/ver1.py +27 -39
  50. DLMS_SPODES/cosem_interface_classes/ntp_setup/ver0.py +48 -67
  51. DLMS_SPODES/cosem_interface_classes/obis.py +28 -23
  52. DLMS_SPODES/cosem_interface_classes/overview.py +198 -197
  53. DLMS_SPODES/cosem_interface_classes/parameter.py +548 -547
  54. DLMS_SPODES/cosem_interface_classes/parameters.py +172 -172
  55. DLMS_SPODES/cosem_interface_classes/profile_generic/ver0.py +90 -133
  56. DLMS_SPODES/cosem_interface_classes/profile_generic/ver1.py +268 -277
  57. DLMS_SPODES/cosem_interface_classes/push_setup/ver0.py +13 -12
  58. DLMS_SPODES/cosem_interface_classes/push_setup/ver1.py +9 -10
  59. DLMS_SPODES/cosem_interface_classes/push_setup/ver2.py +124 -166
  60. DLMS_SPODES/cosem_interface_classes/register.py +18 -45
  61. DLMS_SPODES/cosem_interface_classes/register_activation/ver0.py +45 -80
  62. DLMS_SPODES/cosem_interface_classes/register_monitor.py +33 -46
  63. DLMS_SPODES/cosem_interface_classes/reports.py +72 -70
  64. DLMS_SPODES/cosem_interface_classes/schedule.py +88 -176
  65. DLMS_SPODES/cosem_interface_classes/script_table.py +54 -87
  66. DLMS_SPODES/cosem_interface_classes/security_setup/ver0.py +45 -68
  67. DLMS_SPODES/cosem_interface_classes/security_setup/ver1.py +122 -158
  68. DLMS_SPODES/cosem_interface_classes/single_action_schedule.py +34 -50
  69. DLMS_SPODES/cosem_interface_classes/special_days_table.py +54 -84
  70. DLMS_SPODES/cosem_interface_classes/tcp_udp_setup.py +20 -42
  71. DLMS_SPODES/cosem_pdu.py +93 -93
  72. DLMS_SPODES/enums.py +625 -625
  73. DLMS_SPODES/exceptions.py +106 -106
  74. DLMS_SPODES/firmwares.py +99 -99
  75. DLMS_SPODES/hdlc/frame.py +875 -875
  76. DLMS_SPODES/hdlc/sub_layer.py +54 -54
  77. DLMS_SPODES/literals.py +17 -17
  78. DLMS_SPODES/obis/__init__.py +1 -1
  79. DLMS_SPODES/obis/media_id.py +931 -931
  80. DLMS_SPODES/pardata.py +22 -22
  81. DLMS_SPODES/pdu_enums.py +98 -98
  82. DLMS_SPODES/relation_to_OBIS.py +463 -465
  83. DLMS_SPODES/settings.py +551 -551
  84. DLMS_SPODES/types/choices.py +140 -142
  85. DLMS_SPODES/types/common_data_types.py +2379 -2401
  86. DLMS_SPODES/types/cosem_service_types.py +109 -109
  87. DLMS_SPODES/types/implementations/arrays.py +25 -25
  88. DLMS_SPODES/types/implementations/bitstrings.py +97 -97
  89. DLMS_SPODES/types/implementations/double_long_usingneds.py +35 -35
  90. DLMS_SPODES/types/implementations/enums.py +57 -57
  91. DLMS_SPODES/types/implementations/integers.py +12 -11
  92. DLMS_SPODES/types/implementations/long_unsigneds.py +127 -127
  93. DLMS_SPODES/types/implementations/octet_string.py +11 -11
  94. DLMS_SPODES/types/implementations/structs.py +64 -64
  95. DLMS_SPODES/types/type_alias.py +74 -0
  96. DLMS_SPODES/types/useful_types.py +627 -677
  97. {dlms_spodes-0.87.17.dist-info → dlms_spodes-0.88.1.dist-info}/METADATA +30 -30
  98. dlms_spodes-0.88.1.dist-info/RECORD +118 -0
  99. {dlms_spodes-0.87.17.dist-info → dlms_spodes-0.88.1.dist-info}/WHEEL +1 -1
  100. DLMS_SPODES/cosem_interface_classes/a_parameter.py +0 -20
  101. DLMS_SPODES/cosem_interface_classes/attr_indexes.py +0 -12
  102. dlms_spodes-0.87.17.dist-info/RECORD +0 -117
  103. {dlms_spodes-0.87.17.dist-info → dlms_spodes-0.88.1.dist-info}/top_level.txt +0 -0
@@ -1,197 +1,198 @@
1
- """DLMS UA 1000-1 Ed 14 4.2 Overview of the COSEM interface classes"""
2
- from typing import Final
3
- from functools import lru_cache
4
- from typing_extensions import deprecated
5
- from enum import IntEnum
6
- from dataclasses import dataclass
7
- from ..types import ut, cdt
8
-
9
-
10
- @dataclass(frozen=True)
11
- class ClassID:
12
- DATA = ut.CosemClassId(1)
13
- REGISTER = ut.CosemClassId(3)
14
- EXT_REGISTER = ut.CosemClassId(4)
15
- DEMAND_REGISTER = ut.CosemClassId(5)
16
- REGISTER_ACTIVATION = ut.CosemClassId(6)
17
- PROFILE_GENERIC = ut.CosemClassId(7)
18
- CLOCK = ut.CosemClassId(8)
19
- SCRIPT_TABLE = ut.CosemClassId(9)
20
- SCHEDULE = ut.CosemClassId(10)
21
- SPECIAL_DAYS_TABLE = ut.CosemClassId(11)
22
- ASSOCIATION_SN = ut.CosemClassId(12)
23
- ASSOCIATION_LN = ut.CosemClassId(15)
24
- SAP_ASSIGNMENT = ut.CosemClassId(17)
25
- IMAGE_TRANSFER = ut.CosemClassId(18)
26
- IEC_LOCAL_PORT_SETUP = ut.CosemClassId(19)
27
- ACTIVITY_CALENDAR = ut.CosemClassId(20)
28
- REGISTER_MONITOR = ut.CosemClassId(21)
29
- SINGLE_ACTION_SCHEDULE = ut.CosemClassId(22)
30
- IEC_HDLC_SETUP = ut.CosemClassId(23)
31
- IEC_TWISTED_PAIR_1_SETUP = ut.CosemClassId(24)
32
- M_BUS_SLAVE_PORT_SETUP = ut.CosemClassId(25)
33
- UTILITY_TABLES = ut.CosemClassId(26)
34
- MODEM_CONFIGURATION = ut.CosemClassId(27)
35
- PSTN_MODEM_CONFIGURATION = ut.CosemClassId(27)
36
- AUTO_ANSWER = ut.CosemClassId(28)
37
- AUTO_CONNECT = ut.CosemClassId(29)
38
- PSTN_AUTO_DIAL = ut.CosemClassId(29)
39
- COSEM_DATA_PROTECTION = ut.CosemClassId(30)
40
- PUSH_SETUP = ut.CosemClassId(40)
41
- TCP_UDP_SETUP = ut.CosemClassId(41)
42
- IPV4_SETUP = ut.CosemClassId(42)
43
- PRIME_NB_OFDM_PLC_MAC_ADDRESS_SETUP = ut.CosemClassId(43)
44
- PPP_SETUP = ut.CosemClassId(44)
45
- GPRS_MODEM_SETUP = ut.CosemClassId(45)
46
- SMTP_SETUP = ut.CosemClassId(46)
47
- GSM_DIAGNOSTIC = ut.CosemClassId(47)
48
- IPV6_SETUP = ut.CosemClassId(48)
49
- S_FSK_PHY_MAC_SET_UP = ut.CosemClassId(50)
50
- S_FSK_ACTIVE_INITIATOR = ut.CosemClassId(51)
51
- S_FSK_MAC_SYNCHRONIZATION_TIMEOUTS = ut.CosemClassId(52)
52
- S_FSK_MAC_COUNTERS = ut.CosemClassId(53)
53
- IEC_61334_4_32_LLC_SETUP = ut.CosemClassId(55)
54
- S_FSK_REPORTING_SYSTEM_LIST = ut.CosemClassId(56)
55
- ISO_IEC_8802_2_LLC_TYPE_1_SETUP = ut.CosemClassId(57)
56
- ISO_IEC_8802_2_LLC_TYPE_2_SETUP = ut.CosemClassId(58)
57
- ISO_IEC_8802_2_LLC_TYPE_3_SETUP = ut.CosemClassId(59)
58
- REGISTER_TABLE = ut.CosemClassId(61)
59
- COMPACT_DATA = ut.CosemClassId(62)
60
- STATUS_MAPPING = ut.CosemClassId(63)
61
- SECURITY_SETUP = ut.CosemClassId(64)
62
- PARAMETER_MONITOR = ut.CosemClassId(65)
63
- SENSOR_MANAGER_INTERFACE_CLASS = ut.CosemClassId(67)
64
- ARBITRATOR = ut.CosemClassId(68)
65
- DISCONNECT_CONTROL = ut.CosemClassId(70)
66
- LIMITER = ut.CosemClassId(71)
67
- M_BUS_CLIENT = ut.CosemClassId(72)
68
- WIRELESS_MODE_Q_CHANNEL = ut.CosemClassId(73)
69
- M_BUS_MASTER_PORT_SETUP = ut.CosemClassId(74)
70
- DLMS_COSEM_SERVER_M_BUS_PORT_SETUP = ut.CosemClassId(76)
71
- M_BUS_DIAGNOSTIC = ut.CosemClassId(77)
72
- _61334_4_32_LLC_SSCS_SETUP = ut.CosemClassId(80)
73
- PRIME_NB_OFDM_PLC_PHYSICAL_LAYER_COUNTERS = ut.CosemClassId(81)
74
- PRIME_NB_OFDM_PLC_MAC_SETUP = ut.CosemClassId(82)
75
- PRIME_NB_OFDM_PLC_MAC_FUNCTIONAL_PARAMETERS = ut.CosemClassId(83)
76
- PRIME_NB_OFDM_PLC_MAC_COUNTERS = ut.CosemClassId(84)
77
- PRIME_NB_OFDM_PLC_MAC_NETWORK_ADMINISTRATION_DATA = ut.CosemClassId(85)
78
- PRIME_NB_OFDM_PLC_APPLICATION_IDENTIFICATION = ut.CosemClassId(86)
79
- G3_PLC_MAC_LAYER_COUNTERS = ut.CosemClassId(90)
80
- G3_NB_OFDM_PLC_MAC_LAYER_COUNTERS = ut.CosemClassId(90)
81
- G3_PLC_MAC_SETUP = ut.CosemClassId(91)
82
- G3_NB_OFDM_PLC_MAC_SETUP = ut.CosemClassId(91)
83
- G3_PLC_MAC_6LOWPAN_ADAPTATION_LAYER_SETUP = ut.CosemClassId(92)
84
- G3_NB_OFDM_PLC_6LOWPAN_ADAPTATION_LAYER_SETUP = ut.CosemClassId(92)
85
- WI_SUN_SETUP = ut.CosemClassId(95)
86
- WI_SUN_DIAGNOSTIC = ut.CosemClassId(96)
87
- RPL_DIAGNOSTIC = ut.CosemClassId(97)
88
- MPL_DIAGNOSTIC = ut.CosemClassId(98)
89
- NTP_SETUP = ut.CosemClassId(100)
90
- ZIGBEE_SAS_STARTUP = ut.CosemClassId(101)
91
- ZIGBEE_SAS_JOIN = ut.CosemClassId(102)
92
- ZIGBEE_SAS_APS_FRAGMENTATION = ut.CosemClassId(103)
93
- ZIGBEE_NETWORK_CONTROL = ut.CosemClassId(104)
94
- ZIGBEE_TUNNEL_SETUP = ut.CosemClassId(105)
95
- ACCOUNT = ut.CosemClassId(111)
96
- CREDIT_INTERFACE_CLASS = ut.CosemClassId(112)
97
- CHARGE = ut.CosemClassId(113)
98
- TOKEN_GATEWAY = ut.CosemClassId(115)
99
- FUNCTION_CONTROL = ut.CosemClassId(122)
100
- ARRAY_MANAGER = ut.CosemClassId(123)
101
- COMMUNICATION_PORT_PROTECTION = ut.CosemClassId(124)
102
- SCHC_LPWAN_SETUP = ut.CosemClassId(126)
103
- SCHC_LPWAN_DIAGNOSTIC = ut.CosemClassId(127)
104
- LoRaWAN_SETUP = ut.CosemClassId(128)
105
- LoRaWAN_DIAGNOSTIC = ut.CosemClassId(129)
106
- ISO_IEC14908_IDENTIFICATION = ut.CosemClassId(130)
107
- ISO_IEC14908_PROTOCOL_SETUP = ut.CosemClassId(131)
108
- ISO_IEC14908_PROTOCOL_STATUS = ut.CosemClassId(132)
109
- ISO_IEC14908_PROTOCOL_DIAGNOSTIC = ut.CosemClassId(133)
110
- HS_PLC_ISO_IEC_12139_1_MAC_SETUP = ut.CosemClassId(140)
111
- HS_PLC_ISO_IEC_12139_1_CPAS_SETUP = ut.CosemClassId(141)
112
- HS_PLC_ISO_IEC_12139_1_IP_SSAS_SETUP = ut.CosemClassId(142)
113
- HS_PLC_ISO_IEC_12139_1_HDLC_SSAS_SETUP = ut.CosemClassId(143)
114
- LTE_MONITORING = ut.CosemClassId(151)
115
- CLIENT_SETUP = ut.CosemClassId(32767) # TODO: remove in future
116
-
117
- @classmethod
118
- @lru_cache(1)
119
- def get_all_id(cls) -> tuple[int]:
120
- """return all id container in build-in <int>"""
121
- return tuple(map(int, filter(lambda it: isinstance(it, ut.CosemClassId), cls.__dict__.values())))
122
-
123
-
124
- VERSION_0: Final[cdt.Unsigned] = cdt.Unsigned(0)
125
- VERSION_1: Final[cdt.Unsigned] = cdt.Unsigned(1)
126
- VERSION_2: Final[cdt.Unsigned] = cdt.Unsigned(2)
127
- VERSION_3: Final[cdt.Unsigned] = cdt.Unsigned(3)
128
- VERSION_4: Final[cdt.Unsigned] = cdt.Unsigned(4)
129
-
130
-
131
- class CountrySpecificIdentifiers(IntEnum):
132
- FINLAND = 0
133
- USA = 1
134
- CANADA = 2
135
- SERBIA = 3
136
- RUSSIA = 7
137
- CZECH_REPUBLIC = 10
138
- BULGARIA = 11
139
- CROATIA = 12
140
- IRELAND = 13
141
- ISRAEL = 14
142
- UKRAINE = 15
143
- YUGOSLAVIA = 16
144
- EGYPT = 20
145
- SOUTH_AFRICA = 27
146
- GREECE = 30
147
- NETHERLANDS = 31
148
- BELGIUM = 32
149
- FRANCE = 33
150
- SPAIN = 34
151
- PORTUGAL = 35
152
- HUNGARY = 36
153
- LITHUANIA = 37
154
- SLOVENIA = 38
155
- ITALY = 39
156
- ROMANIA = 40
157
- SWITZERLAND = 41
158
- SLOVAKIA = 42
159
- AUSTRIA = 43
160
- UNITED_KINGDOM = 44
161
- DENMARK = 45
162
- SWEDEN = 46
163
- NORWAY = 47
164
- POLAND = 48
165
- GERMANY = 49
166
- PERU = 51
167
- SOUGH_KOREA = 52
168
- CUBA = 53
169
- ARGENTINA = 54
170
- BRAZIL = 55
171
- CHILE = 56
172
- COLOMBIA = 57
173
- VENEZUELA = 58
174
- MALAYSIA = 60
175
- AUSTRALIA = 61
176
- INDONESIA = 62
177
- PHILIPPINES = 63
178
- NEW_ZEALAND = 64
179
- SINGAPORE = 65
180
- THAILAND = 66
181
- LATVIA = 71
182
- MOLDOVA = 73
183
- BELARUS = 75
184
- JAPAN = 81
185
- MEXICO = 82
186
- HONG_KONG = 85
187
- CHINA = 86
188
- BOSNIA_AND_HERZEGOVINA = 87
189
- TURKEY = 90
190
- INDIA = 91
191
- PAKISTAN = 92
192
- SAUDI_ARABIA = 96
193
- UNITED_ARAB_EMIRATES = 97
194
- IRAN = 98
195
-
196
- def __str__(self):
197
- return self.name
1
+ """DLMS UA 1000-1 Ed 14 4.2 Overview of the COSEM interface classes"""
2
+ from typing import Final
3
+ from functools import lru_cache
4
+ from typing_extensions import deprecated
5
+ from enum import IntEnum
6
+ from dataclasses import dataclass
7
+ from ..types import ut, cdt
8
+
9
+
10
+ @dataclass(frozen=True)
11
+ @deprecated("use <cosem_interface_classes.overview.class_id>")
12
+ class ClassID:
13
+ DATA = ut.CosemClassId(1)
14
+ REGISTER = ut.CosemClassId(3)
15
+ EXT_REGISTER = ut.CosemClassId(4)
16
+ DEMAND_REGISTER = ut.CosemClassId(5)
17
+ REGISTER_ACTIVATION = ut.CosemClassId(6)
18
+ PROFILE_GENERIC = ut.CosemClassId(7)
19
+ CLOCK = ut.CosemClassId(8)
20
+ SCRIPT_TABLE = ut.CosemClassId(9)
21
+ SCHEDULE = ut.CosemClassId(10)
22
+ SPECIAL_DAYS_TABLE = ut.CosemClassId(11)
23
+ ASSOCIATION_SN = ut.CosemClassId(12)
24
+ ASSOCIATION_LN = ut.CosemClassId(15)
25
+ SAP_ASSIGNMENT = ut.CosemClassId(17)
26
+ IMAGE_TRANSFER = ut.CosemClassId(18)
27
+ IEC_LOCAL_PORT_SETUP = ut.CosemClassId(19)
28
+ ACTIVITY_CALENDAR = ut.CosemClassId(20)
29
+ REGISTER_MONITOR = ut.CosemClassId(21)
30
+ SINGLE_ACTION_SCHEDULE = ut.CosemClassId(22)
31
+ IEC_HDLC_SETUP = ut.CosemClassId(23)
32
+ IEC_TWISTED_PAIR_1_SETUP = ut.CosemClassId(24)
33
+ M_BUS_SLAVE_PORT_SETUP = ut.CosemClassId(25)
34
+ UTILITY_TABLES = ut.CosemClassId(26)
35
+ MODEM_CONFIGURATION = ut.CosemClassId(27)
36
+ PSTN_MODEM_CONFIGURATION = ut.CosemClassId(27)
37
+ AUTO_ANSWER = ut.CosemClassId(28)
38
+ AUTO_CONNECT = ut.CosemClassId(29)
39
+ PSTN_AUTO_DIAL = ut.CosemClassId(29)
40
+ COSEM_DATA_PROTECTION = ut.CosemClassId(30)
41
+ PUSH_SETUP = ut.CosemClassId(40)
42
+ TCP_UDP_SETUP = ut.CosemClassId(41)
43
+ IPV4_SETUP = ut.CosemClassId(42)
44
+ PRIME_NB_OFDM_PLC_MAC_ADDRESS_SETUP = ut.CosemClassId(43)
45
+ PPP_SETUP = ut.CosemClassId(44)
46
+ GPRS_MODEM_SETUP = ut.CosemClassId(45)
47
+ SMTP_SETUP = ut.CosemClassId(46)
48
+ GSM_DIAGNOSTIC = ut.CosemClassId(47)
49
+ IPV6_SETUP = ut.CosemClassId(48)
50
+ S_FSK_PHY_MAC_SET_UP = ut.CosemClassId(50)
51
+ S_FSK_ACTIVE_INITIATOR = ut.CosemClassId(51)
52
+ S_FSK_MAC_SYNCHRONIZATION_TIMEOUTS = ut.CosemClassId(52)
53
+ S_FSK_MAC_COUNTERS = ut.CosemClassId(53)
54
+ IEC_61334_4_32_LLC_SETUP = ut.CosemClassId(55)
55
+ S_FSK_REPORTING_SYSTEM_LIST = ut.CosemClassId(56)
56
+ ISO_IEC_8802_2_LLC_TYPE_1_SETUP = ut.CosemClassId(57)
57
+ ISO_IEC_8802_2_LLC_TYPE_2_SETUP = ut.CosemClassId(58)
58
+ ISO_IEC_8802_2_LLC_TYPE_3_SETUP = ut.CosemClassId(59)
59
+ REGISTER_TABLE = ut.CosemClassId(61)
60
+ COMPACT_DATA = ut.CosemClassId(62)
61
+ STATUS_MAPPING = ut.CosemClassId(63)
62
+ SECURITY_SETUP = ut.CosemClassId(64)
63
+ PARAMETER_MONITOR = ut.CosemClassId(65)
64
+ SENSOR_MANAGER_INTERFACE_CLASS = ut.CosemClassId(67)
65
+ ARBITRATOR = ut.CosemClassId(68)
66
+ DISCONNECT_CONTROL = ut.CosemClassId(70)
67
+ LIMITER = ut.CosemClassId(71)
68
+ M_BUS_CLIENT = ut.CosemClassId(72)
69
+ WIRELESS_MODE_Q_CHANNEL = ut.CosemClassId(73)
70
+ M_BUS_MASTER_PORT_SETUP = ut.CosemClassId(74)
71
+ DLMS_COSEM_SERVER_M_BUS_PORT_SETUP = ut.CosemClassId(76)
72
+ M_BUS_DIAGNOSTIC = ut.CosemClassId(77)
73
+ _61334_4_32_LLC_SSCS_SETUP = ut.CosemClassId(80)
74
+ PRIME_NB_OFDM_PLC_PHYSICAL_LAYER_COUNTERS = ut.CosemClassId(81)
75
+ PRIME_NB_OFDM_PLC_MAC_SETUP = ut.CosemClassId(82)
76
+ PRIME_NB_OFDM_PLC_MAC_FUNCTIONAL_PARAMETERS = ut.CosemClassId(83)
77
+ PRIME_NB_OFDM_PLC_MAC_COUNTERS = ut.CosemClassId(84)
78
+ PRIME_NB_OFDM_PLC_MAC_NETWORK_ADMINISTRATION_DATA = ut.CosemClassId(85)
79
+ PRIME_NB_OFDM_PLC_APPLICATION_IDENTIFICATION = ut.CosemClassId(86)
80
+ G3_PLC_MAC_LAYER_COUNTERS = ut.CosemClassId(90)
81
+ G3_NB_OFDM_PLC_MAC_LAYER_COUNTERS = ut.CosemClassId(90)
82
+ G3_PLC_MAC_SETUP = ut.CosemClassId(91)
83
+ G3_NB_OFDM_PLC_MAC_SETUP = ut.CosemClassId(91)
84
+ G3_PLC_MAC_6LOWPAN_ADAPTATION_LAYER_SETUP = ut.CosemClassId(92)
85
+ G3_NB_OFDM_PLC_6LOWPAN_ADAPTATION_LAYER_SETUP = ut.CosemClassId(92)
86
+ WI_SUN_SETUP = ut.CosemClassId(95)
87
+ WI_SUN_DIAGNOSTIC = ut.CosemClassId(96)
88
+ RPL_DIAGNOSTIC = ut.CosemClassId(97)
89
+ MPL_DIAGNOSTIC = ut.CosemClassId(98)
90
+ NTP_SETUP = ut.CosemClassId(100)
91
+ ZIGBEE_SAS_STARTUP = ut.CosemClassId(101)
92
+ ZIGBEE_SAS_JOIN = ut.CosemClassId(102)
93
+ ZIGBEE_SAS_APS_FRAGMENTATION = ut.CosemClassId(103)
94
+ ZIGBEE_NETWORK_CONTROL = ut.CosemClassId(104)
95
+ ZIGBEE_TUNNEL_SETUP = ut.CosemClassId(105)
96
+ ACCOUNT = ut.CosemClassId(111)
97
+ CREDIT_INTERFACE_CLASS = ut.CosemClassId(112)
98
+ CHARGE = ut.CosemClassId(113)
99
+ TOKEN_GATEWAY = ut.CosemClassId(115)
100
+ FUNCTION_CONTROL = ut.CosemClassId(122)
101
+ ARRAY_MANAGER = ut.CosemClassId(123)
102
+ COMMUNICATION_PORT_PROTECTION = ut.CosemClassId(124)
103
+ SCHC_LPWAN_SETUP = ut.CosemClassId(126)
104
+ SCHC_LPWAN_DIAGNOSTIC = ut.CosemClassId(127)
105
+ LoRaWAN_SETUP = ut.CosemClassId(128)
106
+ LoRaWAN_DIAGNOSTIC = ut.CosemClassId(129)
107
+ ISO_IEC14908_IDENTIFICATION = ut.CosemClassId(130)
108
+ ISO_IEC14908_PROTOCOL_SETUP = ut.CosemClassId(131)
109
+ ISO_IEC14908_PROTOCOL_STATUS = ut.CosemClassId(132)
110
+ ISO_IEC14908_PROTOCOL_DIAGNOSTIC = ut.CosemClassId(133)
111
+ HS_PLC_ISO_IEC_12139_1_MAC_SETUP = ut.CosemClassId(140)
112
+ HS_PLC_ISO_IEC_12139_1_CPAS_SETUP = ut.CosemClassId(141)
113
+ HS_PLC_ISO_IEC_12139_1_IP_SSAS_SETUP = ut.CosemClassId(142)
114
+ HS_PLC_ISO_IEC_12139_1_HDLC_SSAS_SETUP = ut.CosemClassId(143)
115
+ LTE_MONITORING = ut.CosemClassId(151)
116
+ CLIENT_SETUP = ut.CosemClassId(32767) # TODO: remove in future
117
+
118
+ @classmethod
119
+ @lru_cache(1)
120
+ def get_all_id(cls) -> tuple[int]:
121
+ """return all id container in build-in <int>"""
122
+ return tuple(map(int, filter(lambda it: isinstance(it, ut.CosemClassId), cls.__dict__.values())))
123
+
124
+
125
+ VERSION_0: Final[cdt.Unsigned] = cdt.Unsigned(0)
126
+ VERSION_1: Final[cdt.Unsigned] = cdt.Unsigned(1)
127
+ VERSION_2: Final[cdt.Unsigned] = cdt.Unsigned(2)
128
+ VERSION_3: Final[cdt.Unsigned] = cdt.Unsigned(3)
129
+ VERSION_4: Final[cdt.Unsigned] = cdt.Unsigned(4)
130
+
131
+
132
+ class CountrySpecificIdentifiers(IntEnum):
133
+ FINLAND = 0
134
+ USA = 1
135
+ CANADA = 2
136
+ SERBIA = 3
137
+ RUSSIA = 7
138
+ CZECH_REPUBLIC = 10
139
+ BULGARIA = 11
140
+ CROATIA = 12
141
+ IRELAND = 13
142
+ ISRAEL = 14
143
+ UKRAINE = 15
144
+ YUGOSLAVIA = 16
145
+ EGYPT = 20
146
+ SOUTH_AFRICA = 27
147
+ GREECE = 30
148
+ NETHERLANDS = 31
149
+ BELGIUM = 32
150
+ FRANCE = 33
151
+ SPAIN = 34
152
+ PORTUGAL = 35
153
+ HUNGARY = 36
154
+ LITHUANIA = 37
155
+ SLOVENIA = 38
156
+ ITALY = 39
157
+ ROMANIA = 40
158
+ SWITZERLAND = 41
159
+ SLOVAKIA = 42
160
+ AUSTRIA = 43
161
+ UNITED_KINGDOM = 44
162
+ DENMARK = 45
163
+ SWEDEN = 46
164
+ NORWAY = 47
165
+ POLAND = 48
166
+ GERMANY = 49
167
+ PERU = 51
168
+ SOUGH_KOREA = 52
169
+ CUBA = 53
170
+ ARGENTINA = 54
171
+ BRAZIL = 55
172
+ CHILE = 56
173
+ COLOMBIA = 57
174
+ VENEZUELA = 58
175
+ MALAYSIA = 60
176
+ AUSTRALIA = 61
177
+ INDONESIA = 62
178
+ PHILIPPINES = 63
179
+ NEW_ZEALAND = 64
180
+ SINGAPORE = 65
181
+ THAILAND = 66
182
+ LATVIA = 71
183
+ MOLDOVA = 73
184
+ BELARUS = 75
185
+ JAPAN = 81
186
+ MEXICO = 82
187
+ HONG_KONG = 85
188
+ CHINA = 86
189
+ BOSNIA_AND_HERZEGOVINA = 87
190
+ TURKEY = 90
191
+ INDIA = 91
192
+ PAKISTAN = 92
193
+ SAUDI_ARABIA = 96
194
+ UNITED_ARAB_EMIRATES = 97
195
+ IRAN = 98
196
+
197
+ def __str__(self):
198
+ return self.name