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.
Files changed (100) 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/__class_init__.py +3 -3
  11. DLMS_SPODES/cosem_interface_classes/__init__.py +1 -1
  12. DLMS_SPODES/cosem_interface_classes/a_parameter.py +20 -20
  13. DLMS_SPODES/cosem_interface_classes/activity_calendar.py +254 -254
  14. DLMS_SPODES/cosem_interface_classes/arbitrator.py +105 -105
  15. DLMS_SPODES/cosem_interface_classes/association_ln/abstract.py +34 -34
  16. DLMS_SPODES/cosem_interface_classes/association_ln/authentication_mechanism_name.py +25 -25
  17. DLMS_SPODES/cosem_interface_classes/association_ln/mechanism_id.py +25 -25
  18. DLMS_SPODES/cosem_interface_classes/association_ln/method.py +5 -5
  19. DLMS_SPODES/cosem_interface_classes/association_ln/ver0.py +485 -485
  20. DLMS_SPODES/cosem_interface_classes/association_ln/ver1.py +133 -133
  21. DLMS_SPODES/cosem_interface_classes/association_ln/ver2.py +36 -36
  22. DLMS_SPODES/cosem_interface_classes/association_ln/ver3.py +4 -4
  23. DLMS_SPODES/cosem_interface_classes/association_sn/ver0.py +12 -12
  24. DLMS_SPODES/cosem_interface_classes/attr_indexes.py +12 -12
  25. DLMS_SPODES/cosem_interface_classes/clock.py +131 -131
  26. DLMS_SPODES/cosem_interface_classes/collection.py +2122 -2122
  27. DLMS_SPODES/cosem_interface_classes/cosem_interface_class.py +583 -583
  28. DLMS_SPODES/cosem_interface_classes/data.py +21 -21
  29. DLMS_SPODES/cosem_interface_classes/demand_register/ver0.py +59 -59
  30. DLMS_SPODES/cosem_interface_classes/disconnect_control.py +74 -74
  31. DLMS_SPODES/cosem_interface_classes/extended_register.py +27 -27
  32. DLMS_SPODES/cosem_interface_classes/gprs_modem_setup.py +43 -43
  33. DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver0.py +103 -103
  34. DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver1.py +40 -40
  35. DLMS_SPODES/cosem_interface_classes/gsm_diagnostic/ver2.py +9 -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 +53 -53
  38. DLMS_SPODES/cosem_interface_classes/iec_local_port_setup.py +11 -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 +126 -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 +487 -487
  44. DLMS_SPODES/cosem_interface_classes/implementations/profile_generic.py +83 -83
  45. DLMS_SPODES/cosem_interface_classes/ipv4_setup.py +72 -72
  46. DLMS_SPODES/cosem_interface_classes/limiter.py +111 -111
  47. DLMS_SPODES/cosem_interface_classes/ln_pattern.py +333 -333
  48. DLMS_SPODES/cosem_interface_classes/modem_configuration/ver0.py +65 -65
  49. DLMS_SPODES/cosem_interface_classes/modem_configuration/ver1.py +39 -39
  50. DLMS_SPODES/cosem_interface_classes/ntp_setup/ver0.py +67 -67
  51. DLMS_SPODES/cosem_interface_classes/obis.py +23 -23
  52. DLMS_SPODES/cosem_interface_classes/overview.py +197 -197
  53. DLMS_SPODES/cosem_interface_classes/parameter.py +547 -547
  54. DLMS_SPODES/cosem_interface_classes/parameters.py +172 -172
  55. DLMS_SPODES/cosem_interface_classes/profile_generic/ver0.py +122 -122
  56. DLMS_SPODES/cosem_interface_classes/profile_generic/ver1.py +277 -277
  57. DLMS_SPODES/cosem_interface_classes/push_setup/ver0.py +12 -12
  58. DLMS_SPODES/cosem_interface_classes/push_setup/ver1.py +10 -10
  59. DLMS_SPODES/cosem_interface_classes/push_setup/ver2.py +166 -166
  60. DLMS_SPODES/cosem_interface_classes/register.py +45 -45
  61. DLMS_SPODES/cosem_interface_classes/register_activation/ver0.py +80 -80
  62. DLMS_SPODES/cosem_interface_classes/register_monitor.py +46 -46
  63. DLMS_SPODES/cosem_interface_classes/reports.py +70 -70
  64. DLMS_SPODES/cosem_interface_classes/schedule.py +176 -176
  65. DLMS_SPODES/cosem_interface_classes/script_table.py +87 -87
  66. DLMS_SPODES/cosem_interface_classes/security_setup/ver0.py +68 -68
  67. DLMS_SPODES/cosem_interface_classes/security_setup/ver1.py +158 -158
  68. DLMS_SPODES/cosem_interface_classes/single_action_schedule.py +50 -50
  69. DLMS_SPODES/cosem_interface_classes/special_days_table.py +84 -84
  70. DLMS_SPODES/cosem_interface_classes/tcp_udp_setup.py +42 -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 +465 -463
  83. DLMS_SPODES/settings.py +551 -551
  84. DLMS_SPODES/types/choices.py +142 -142
  85. DLMS_SPODES/types/common_data_types.py +2401 -2399
  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 +11 -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/useful_types.py +677 -677
  96. {dlms_spodes-0.87.12.dist-info → dlms_spodes-0.87.15.dist-info}/METADATA +30 -30
  97. dlms_spodes-0.87.15.dist-info/RECORD +117 -0
  98. {dlms_spodes-0.87.12.dist-info → dlms_spodes-0.87.15.dist-info}/WHEEL +1 -1
  99. dlms_spodes-0.87.12.dist-info/RECORD +0 -117
  100. {dlms_spodes-0.87.12.dist-info → dlms_spodes-0.87.15.dist-info}/top_level.txt +0 -0
DLMS_SPODES/pardata.py CHANGED
@@ -1,22 +1,22 @@
1
- from dataclasses import dataclass
2
- from .cosem_interface_classes.parameter import Parameter
3
- from typing import Optional, Iterator
4
- from .types import cdt
5
-
6
-
7
- @dataclass(frozen=True)
8
- class ParValues[T]:
9
- par: Parameter
10
- data: T
11
-
12
- def __iter__(self) -> Iterator[Parameter | T]:
13
- yield self.par
14
- yield self.data
15
-
16
- def __str__(self):
17
- return F"{self.par} - {self.data}"
18
-
19
-
20
- @dataclass(frozen=True)
21
- class ParData(ParValues[cdt.CommonDataType]):
22
- data: cdt.CommonDataType
1
+ from dataclasses import dataclass
2
+ from .cosem_interface_classes.parameter import Parameter
3
+ from typing import Optional, Iterator
4
+ from .types import cdt
5
+
6
+
7
+ @dataclass(frozen=True)
8
+ class ParValues[T]:
9
+ par: Parameter
10
+ data: T
11
+
12
+ def __iter__(self) -> Iterator[Parameter | T]:
13
+ yield self.par
14
+ yield self.data
15
+
16
+ def __str__(self):
17
+ return F"{self.par} - {self.data}"
18
+
19
+
20
+ @dataclass(frozen=True)
21
+ class ParData(ParValues[cdt.CommonDataType]):
22
+ data: cdt.CommonDataType
DLMS_SPODES/pdu_enums.py CHANGED
@@ -1,98 +1,98 @@
1
- from enum import IntEnum, IntFlag
2
- from typing import TypeAlias
3
-
4
-
5
- class DataAccessResult(IntEnum):
6
- SUCCESS = 0
7
- HARDWARE_FAULT = 1
8
- TEMPORARY_FAILURE = 2
9
- READ_WRITE_DENIED = 3
10
- OBJECT_UNDEFINED = 4
11
- OBJECT_CLASS_INCONSISTENT = 9
12
- OBJECT_UNAVAILABLE = 11
13
- TYPE_UNMATCHED = 12
14
- SCOPE_OF_ACCESS_VIOLATED = 13
15
- DATA_BLOCK_UNAVAILABLE = 14
16
- LONG_GET_ABORTED = 15
17
- NO_LONG_GET_IN_PROGRESS = 16
18
- LONG_SET_ABORTED = 17
19
- NO_LONG_SET_IN_PROGRESS = 18
20
- DATA_BLOCK_NUMBER_INVALID = 19
21
- OTHER_REASON = 250
22
-
23
-
24
- class GetResponse(IntEnum):
25
- NORMAL = 1
26
- WITH_DATABLOCK = 2
27
- WITH_LIST = 3
28
-
29
-
30
- class SetResponse(IntEnum):
31
- NORMAL = 1
32
- DATABLOCK = 2
33
- LAST_DATABLOCK = 3
34
- LAST_DATABLOCK_WITH_LIST = 4
35
- WITH_LIST = 5
36
-
37
-
38
- class ActionResult(IntEnum):
39
- SUCCESS = 0
40
- HARDWARE_FAULT = 1
41
- TEMPORARY_FAILURE = 2
42
- READ_WRITE_DENIED = 3
43
- OBJECT_UNDEFINED = 4
44
- OBJECT_CLASS_INCONSISTENT = 9
45
- OBJECT_UNAVAILABLE = 11
46
- TYPE_UNMATCHED = 12
47
- SCOPE_OF_ACCESS_VIOLATED = 13
48
- DATA_BLOCK_UNAVAILABLE = 14
49
- LONG_ACTION_ABORTED = 15
50
- NO_LONG_ACTION_IN_PROGRESS = 16
51
- OTHER_REASON = 250
52
-
53
-
54
- class ActionResponse(IntEnum):
55
- NORMAL = 1
56
- WITH_PBLOCK = 2
57
- WITH_LIST = 3
58
- NEXT_PBLOCK = 4
59
-
60
-
61
- class AttributeAccess(IntEnum):
62
- """use with version 0 and 1 AssociationLN"""
63
- NO_ACCESS = 0
64
- READ_ONLY = 1
65
- WRITE_ONLY = 2
66
- READ_AND_WRITE = 3
67
- AUTHENTICATED_READ_ONLY = 4
68
- AUTHENTICATED_WRITE_ONLY = 5
69
- AUTHENTICATED_READ_AND_WRITE = 6
70
-
71
-
72
- class MethodAccess(IntEnum):
73
- """use with version 0 and 1 AssociationLN"""
74
- NO_ACCESS = 0
75
- ACCESS = 1
76
- AUTHENTICATED_ACCESS = 2
77
-
78
-
79
- class SecurityPolicyVer0(IntEnum):
80
- NOTHING = 0
81
- AUTHENTICATED = 1
82
- ENCRYPTED = 2
83
- AUTHENTICATED_AND_ENCRYPTED = 3
84
-
85
-
86
- class SecurityPolicyVer1(IntFlag):
87
- NOTHING = 0
88
- UNUSED_0 = 0b1
89
- UNUSED_1 = 0b10
90
- AUTHENTICATED_REQUEST = 0b100
91
- ENCRYPTED_REQUEST = 0b1000
92
- DIGITALLY_SIGNED_REQUEST = 0b1_0000
93
- AUTHENTICATED_RESPONSE = 0b10_0000
94
- ENCRYPTED_RESPONSE = 0b100_0000
95
- DIGITALLY_SIGNED_RESPONSE = 0b1000_0000
96
-
97
-
98
- SecurityPolicy: TypeAlias = SecurityPolicyVer0 | SecurityPolicyVer1
1
+ from enum import IntEnum, IntFlag
2
+ from typing import TypeAlias
3
+
4
+
5
+ class DataAccessResult(IntEnum):
6
+ SUCCESS = 0
7
+ HARDWARE_FAULT = 1
8
+ TEMPORARY_FAILURE = 2
9
+ READ_WRITE_DENIED = 3
10
+ OBJECT_UNDEFINED = 4
11
+ OBJECT_CLASS_INCONSISTENT = 9
12
+ OBJECT_UNAVAILABLE = 11
13
+ TYPE_UNMATCHED = 12
14
+ SCOPE_OF_ACCESS_VIOLATED = 13
15
+ DATA_BLOCK_UNAVAILABLE = 14
16
+ LONG_GET_ABORTED = 15
17
+ NO_LONG_GET_IN_PROGRESS = 16
18
+ LONG_SET_ABORTED = 17
19
+ NO_LONG_SET_IN_PROGRESS = 18
20
+ DATA_BLOCK_NUMBER_INVALID = 19
21
+ OTHER_REASON = 250
22
+
23
+
24
+ class GetResponse(IntEnum):
25
+ NORMAL = 1
26
+ WITH_DATABLOCK = 2
27
+ WITH_LIST = 3
28
+
29
+
30
+ class SetResponse(IntEnum):
31
+ NORMAL = 1
32
+ DATABLOCK = 2
33
+ LAST_DATABLOCK = 3
34
+ LAST_DATABLOCK_WITH_LIST = 4
35
+ WITH_LIST = 5
36
+
37
+
38
+ class ActionResult(IntEnum):
39
+ SUCCESS = 0
40
+ HARDWARE_FAULT = 1
41
+ TEMPORARY_FAILURE = 2
42
+ READ_WRITE_DENIED = 3
43
+ OBJECT_UNDEFINED = 4
44
+ OBJECT_CLASS_INCONSISTENT = 9
45
+ OBJECT_UNAVAILABLE = 11
46
+ TYPE_UNMATCHED = 12
47
+ SCOPE_OF_ACCESS_VIOLATED = 13
48
+ DATA_BLOCK_UNAVAILABLE = 14
49
+ LONG_ACTION_ABORTED = 15
50
+ NO_LONG_ACTION_IN_PROGRESS = 16
51
+ OTHER_REASON = 250
52
+
53
+
54
+ class ActionResponse(IntEnum):
55
+ NORMAL = 1
56
+ WITH_PBLOCK = 2
57
+ WITH_LIST = 3
58
+ NEXT_PBLOCK = 4
59
+
60
+
61
+ class AttributeAccess(IntEnum):
62
+ """use with version 0 and 1 AssociationLN"""
63
+ NO_ACCESS = 0
64
+ READ_ONLY = 1
65
+ WRITE_ONLY = 2
66
+ READ_AND_WRITE = 3
67
+ AUTHENTICATED_READ_ONLY = 4
68
+ AUTHENTICATED_WRITE_ONLY = 5
69
+ AUTHENTICATED_READ_AND_WRITE = 6
70
+
71
+
72
+ class MethodAccess(IntEnum):
73
+ """use with version 0 and 1 AssociationLN"""
74
+ NO_ACCESS = 0
75
+ ACCESS = 1
76
+ AUTHENTICATED_ACCESS = 2
77
+
78
+
79
+ class SecurityPolicyVer0(IntEnum):
80
+ NOTHING = 0
81
+ AUTHENTICATED = 1
82
+ ENCRYPTED = 2
83
+ AUTHENTICATED_AND_ENCRYPTED = 3
84
+
85
+
86
+ class SecurityPolicyVer1(IntFlag):
87
+ NOTHING = 0
88
+ UNUSED_0 = 0b1
89
+ UNUSED_1 = 0b10
90
+ AUTHENTICATED_REQUEST = 0b100
91
+ ENCRYPTED_REQUEST = 0b1000
92
+ DIGITALLY_SIGNED_REQUEST = 0b1_0000
93
+ AUTHENTICATED_RESPONSE = 0b10_0000
94
+ ENCRYPTED_RESPONSE = 0b100_0000
95
+ DIGITALLY_SIGNED_RESPONSE = 0b1000_0000
96
+
97
+
98
+ SecurityPolicy: TypeAlias = SecurityPolicyVer0 | SecurityPolicyVer1