DLMS-SPODES-client 0.19.17__py3-none-any.whl → 0.19.19__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 +31 -20
- {dlms_spodes_client-0.19.17.dist-info → dlms_spodes_client-0.19.19.dist-info}/METADATA +1 -1
- {dlms_spodes_client-0.19.17.dist-info → dlms_spodes_client-0.19.19.dist-info}/RECORD +6 -6
- {dlms_spodes_client-0.19.17.dist-info → dlms_spodes_client-0.19.19.dist-info}/WHEEL +0 -0
- {dlms_spodes_client-0.19.17.dist-info → dlms_spodes_client-0.19.19.dist-info}/entry_points.txt +0 -0
- {dlms_spodes_client-0.19.17.dist-info → dlms_spodes_client-0.19.19.dist-info}/top_level.txt +0 -0
DLMS_SPODES_client/task.py
CHANGED
|
@@ -945,14 +945,14 @@ class MapTypeCreator:
|
|
|
945
945
|
res = await self.con[id_sap].exchange(c)
|
|
946
946
|
async with self.lock:
|
|
947
947
|
try:
|
|
948
|
-
gotten, _ = self.adapter.get_collection(col_id) # check for first update
|
|
948
|
+
gotten, _ = self.adapter.get_collection(col_id).unpack() # check for first update
|
|
949
949
|
if gotten.has_sap(id_sap.sap):
|
|
950
950
|
"""not need keep"""
|
|
951
951
|
else:
|
|
952
952
|
self.adapter.set_collection(res.value) # todo: make as ADAPTER.merge_collection(ret)
|
|
953
953
|
except AdapterException as e:
|
|
954
954
|
self.adapter.set_collection(res.value)
|
|
955
|
-
res.value, err = res.value.copy()
|
|
955
|
+
res.value, err = res.value.copy().unpack()
|
|
956
956
|
if err is not None:
|
|
957
957
|
res.extend_err(err)
|
|
958
958
|
return res
|
|
@@ -1356,25 +1356,36 @@ class Execute2(SimpleCopy, OK):
|
|
|
1356
1356
|
return result.Error.from_e(e)
|
|
1357
1357
|
|
|
1358
1358
|
|
|
1359
|
-
|
|
1360
|
-
|
|
1359
|
+
@dataclass
|
|
1360
|
+
class WriteTime(SimpleCopy, Simple[float]):
|
|
1361
|
+
"""Write and return <record time> in second: """
|
|
1362
|
+
limit: float = 5.0
|
|
1363
|
+
number_of_retries: int = 10
|
|
1364
|
+
msg: str = "write Clock.time"
|
|
1361
1365
|
|
|
1362
|
-
async def exchange(self, c: Client):
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1366
|
+
async def exchange(self, c: Client) -> result.SimpleOrError[float]:
|
|
1367
|
+
acc = result.ErrorAccumulator()
|
|
1368
|
+
obj = c._objects.clock
|
|
1369
|
+
c.get_get_request_normal(obj.get_attr_descriptor(3))
|
|
1370
|
+
if isinstance(res_pdu := await c.read_data_block(), result.Error):
|
|
1371
|
+
return res_pdu
|
|
1372
|
+
tz = obj.get_attr_element(3).DATA_TYPE(res_pdu.value)
|
|
1373
|
+
for i in range(self.number_of_retries):
|
|
1374
|
+
pre_time = time.time()
|
|
1375
|
+
if isinstance(
|
|
1376
|
+
res_write := await WriteAttribute(
|
|
1377
|
+
ln=obj.logical_name,
|
|
1378
|
+
index=2,
|
|
1379
|
+
value=(datetime.datetime.utcnow() + datetime.timedelta(minutes=int(tz)))).exchange(c),
|
|
1380
|
+
result.Error):
|
|
1381
|
+
return res_write
|
|
1382
|
+
rec_time = time.time() - pre_time
|
|
1383
|
+
if rec_time < self.limit:
|
|
1384
|
+
break
|
|
1385
|
+
acc.append_e(TimeoutError(f"can't write in {i} attemp in time"))
|
|
1386
|
+
else:
|
|
1387
|
+
return result.Error.from_e(TimeoutError(f"can't write time for limit: {self.limit} second"))
|
|
1388
|
+
return result.Simple(rec_time).append_err(acc.err)
|
|
1378
1389
|
|
|
1379
1390
|
|
|
1380
1391
|
@dataclass
|
|
@@ -6,7 +6,7 @@ DLMS_SPODES_client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
6
6
|
DLMS_SPODES_client/services.py,sha256=xM_-h322V1bGBcw9cJh7XOSUMTL3_E-GX89-z3YwIYw,3909
|
|
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=42nfG3b30NCLUxw4PH0nsTv63N_Ulrxqb-ihKk42Dgo,76850
|
|
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.19.dist-info/METADATA,sha256=SWD9H2Un2xHu6ysMHdkj6Fl580t6rOjLd7b5A-P8eRs,986
|
|
58
|
+
dlms_spodes_client-0.19.19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
59
|
+
dlms_spodes_client-0.19.19.dist-info/entry_points.txt,sha256=Z6UTeQjjCf2k1Y3Bjs0s7yr-UYSWb-TvJMuG2K2MApw,70
|
|
60
|
+
dlms_spodes_client-0.19.19.dist-info/top_level.txt,sha256=rh_3Uig5bc6J_lKni01btol7dX_IgIJulNtGjGehmBE,19
|
|
61
|
+
dlms_spodes_client-0.19.19.dist-info/RECORD,,
|
|
File without changes
|
{dlms_spodes_client-0.19.17.dist-info → dlms_spodes_client-0.19.19.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|