DLMS-SPODES-client 0.19.28__py3-none-any.whl → 0.19.29__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_client/task.py +37 -0
- {dlms_spodes_client-0.19.28.dist-info → dlms_spodes_client-0.19.29.dist-info}/METADATA +1 -1
- {dlms_spodes_client-0.19.28.dist-info → dlms_spodes_client-0.19.29.dist-info}/RECORD +6 -6
- {dlms_spodes_client-0.19.28.dist-info → dlms_spodes_client-0.19.29.dist-info}/WHEEL +0 -0
- {dlms_spodes_client-0.19.28.dist-info → dlms_spodes_client-0.19.29.dist-info}/entry_points.txt +0 -0
- {dlms_spodes_client-0.19.28.dist-info → dlms_spodes_client-0.19.29.dist-info}/top_level.txt +0 -0
DLMS_SPODES_client/task.py
CHANGED
|
@@ -1240,6 +1240,43 @@ class Write2(SimpleCopy, OK):
|
|
|
1240
1240
|
return result.OK
|
|
1241
1241
|
|
|
1242
1242
|
|
|
1243
|
+
@dataclass(frozen=True)
|
|
1244
|
+
class SetBits(SimpleCopy, OK):
|
|
1245
|
+
"""set bits by pattern"""
|
|
1246
|
+
par: Parameter
|
|
1247
|
+
pattern: dict[int, int]
|
|
1248
|
+
msg: str = "set bits"
|
|
1249
|
+
|
|
1250
|
+
async def exchange(self, c: Client) -> result.Ok | result.Error:
|
|
1251
|
+
if isinstance(res_obj := c.objects.par2obj(self.par), result.Error):
|
|
1252
|
+
return res_obj
|
|
1253
|
+
if isinstance(res_read := await Par2Data[cdt.Digital | cdt.BitString](self.par.attr).exchange(c), result.Error):
|
|
1254
|
+
return res_read
|
|
1255
|
+
data = res_read.value
|
|
1256
|
+
for el in self.par.elements():
|
|
1257
|
+
data = data[el]
|
|
1258
|
+
if isinstance(data, cdt.Digital):
|
|
1259
|
+
data_int = int(data)
|
|
1260
|
+
for pos, val in self.pattern.items():
|
|
1261
|
+
data_int = (data_int | (1 << pos)) if val else (data_int & ~(1 << pos))
|
|
1262
|
+
data.set(data_int)
|
|
1263
|
+
elif isinstance(data, cdt.BitString):
|
|
1264
|
+
for pos, val in self.pattern.items():
|
|
1265
|
+
try:
|
|
1266
|
+
data[pos] = val
|
|
1267
|
+
except IndexError as e:
|
|
1268
|
+
return result.Error.from_e(ValueError(f"can't set bit {pos} in {self.par}"))
|
|
1269
|
+
else:
|
|
1270
|
+
return result.Error.from_e(TypeError(f"{self.par} not available SetBits"))
|
|
1271
|
+
c.get_set_request_normal(
|
|
1272
|
+
obj=res_obj.value,
|
|
1273
|
+
attr_index=self.par.i,
|
|
1274
|
+
value=res_read.value.encoding)
|
|
1275
|
+
if isinstance(res_pdu := await c.read_data_block(), result.Error):
|
|
1276
|
+
return res_pdu
|
|
1277
|
+
return result.OK
|
|
1278
|
+
|
|
1279
|
+
|
|
1243
1280
|
@dataclass
|
|
1244
1281
|
@deprecated("use <WriteTranscript>")
|
|
1245
1282
|
class WriteParValue(SimpleCopy, OK):
|
|
@@ -6,7 +6,7 @@ DLMS_SPODES_client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
6
6
|
DLMS_SPODES_client/services.py,sha256=g2Rv2j7mlIcNpnqxRZrKgSpy7k6pnaJHAkZ3JJUhK3s,3418
|
|
7
7
|
DLMS_SPODES_client/session.py,sha256=nPzXujpmGSTFFvhyZRjgH_RLX1DS9moRddUEZuf-QEE,12760
|
|
8
8
|
DLMS_SPODES_client/settings.py,sha256=6mitGe9UYeEgL61sf933MJ-S5N-ReoxvXqiI3agBGYE,1623
|
|
9
|
-
DLMS_SPODES_client/task.py,sha256=
|
|
9
|
+
DLMS_SPODES_client/task.py,sha256=QnxVp4txhCgFqVw9Aj9gGwaZjlt0iPR2WkXvgk_hDPQ,79822
|
|
10
10
|
DLMS_SPODES_client/gurux_common/enums/TraceLevel.py,sha256=Ne0Rn3c9ACqQjmde_ksbiQxIUv6nXsPQRnhkGwIv3QI,521
|
|
11
11
|
DLMS_SPODES_client/gurux_common/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
12
|
DLMS_SPODES_client/gurux_dlms/AesGcmParameter.py,sha256=HJt0uvxtkqKEkvfiqXTMNsiayN15AgPJa9_iMSSFZsQ,1429
|
|
@@ -54,8 +54,8 @@ DLMS_SPODES_client/gurux_dlms/enums/Task.py,sha256=chuOL6-IMxBvABUZtoFcaYaQQB4GZ
|
|
|
54
54
|
DLMS_SPODES_client/gurux_dlms/enums/VdeStateError.py,sha256=qT87LMbIYEs3TYPIp3N-dR2Tcg9KhKyiELwhVl5U-tw,233
|
|
55
55
|
DLMS_SPODES_client/gurux_dlms/enums/__init__.py,sha256=F_sgGwNmmdpbKvP1klJQUNiLXxU2BtZ-LgEI9e6xP8g,1314
|
|
56
56
|
DLMS_SPODES_client/gurux_dlms/internal/_GXCommon.py,sha256=7D9EYcfiZxwbk8sfpHv7s2nYqrbmGf-Tbwv2T-gqmgk,53226
|
|
57
|
-
dlms_spodes_client-0.19.
|
|
58
|
-
dlms_spodes_client-0.19.
|
|
59
|
-
dlms_spodes_client-0.19.
|
|
60
|
-
dlms_spodes_client-0.19.
|
|
61
|
-
dlms_spodes_client-0.19.
|
|
57
|
+
dlms_spodes_client-0.19.29.dist-info/METADATA,sha256=p7a8aAHAJ7xkK0xxcKBujHgCy6TEjXBKjkF1wYwoxrA,1062
|
|
58
|
+
dlms_spodes_client-0.19.29.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
59
|
+
dlms_spodes_client-0.19.29.dist-info/entry_points.txt,sha256=Z6UTeQjjCf2k1Y3Bjs0s7yr-UYSWb-TvJMuG2K2MApw,70
|
|
60
|
+
dlms_spodes_client-0.19.29.dist-info/top_level.txt,sha256=rh_3Uig5bc6J_lKni01btol7dX_IgIJulNtGjGehmBE,19
|
|
61
|
+
dlms_spodes_client-0.19.29.dist-info/RECORD,,
|
|
File without changes
|
{dlms_spodes_client-0.19.28.dist-info → dlms_spodes_client-0.19.29.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|