DLMS-SPODES-client 0.19.18__py3-none-any.whl → 0.19.20__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 +58 -18
- {dlms_spodes_client-0.19.18.dist-info → dlms_spodes_client-0.19.20.dist-info}/METADATA +1 -1
- {dlms_spodes_client-0.19.18.dist-info → dlms_spodes_client-0.19.20.dist-info}/RECORD +6 -6
- {dlms_spodes_client-0.19.18.dist-info → dlms_spodes_client-0.19.20.dist-info}/WHEEL +0 -0
- {dlms_spodes_client-0.19.18.dist-info → dlms_spodes_client-0.19.20.dist-info}/entry_points.txt +0 -0
- {dlms_spodes_client-0.19.18.dist-info → dlms_spodes_client-0.19.20.dist-info}/top_level.txt +0 -0
DLMS_SPODES_client/task.py
CHANGED
|
@@ -1356,25 +1356,65 @@ class Execute2(SimpleCopy, OK):
|
|
|
1356
1356
|
return result.Error.from_e(e)
|
|
1357
1357
|
|
|
1358
1358
|
|
|
1359
|
-
|
|
1360
|
-
|
|
1359
|
+
@dataclass
|
|
1360
|
+
class GetTimeDelta(SimpleCopy, Simple[float]):
|
|
1361
|
+
"""Read and return <time delta> in second: """
|
|
1362
|
+
msg: str = "Read Clock.time"
|
|
1361
1363
|
|
|
1362
|
-
async def exchange(self, c: Client):
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1364
|
+
async def exchange(self, c: Client) -> result.SimpleOrError[float]:
|
|
1365
|
+
acc = result.ErrorAccumulator()
|
|
1366
|
+
obj = c._objects.clock
|
|
1367
|
+
if isinstance(
|
|
1368
|
+
res_read_tz := await ReadObjAttr(
|
|
1369
|
+
obj=obj,
|
|
1370
|
+
index=3
|
|
1371
|
+
).exchange(c),
|
|
1372
|
+
result.Error):
|
|
1373
|
+
return res_read_tz
|
|
1374
|
+
tz = datetime.timezone(datetime.timedelta(minutes=int(res_read_tz.value)))
|
|
1375
|
+
if isinstance(
|
|
1376
|
+
res_read := await ReadObjAttr(
|
|
1377
|
+
obj=obj,
|
|
1378
|
+
index=2
|
|
1379
|
+
).exchange(c),
|
|
1380
|
+
result.Error):
|
|
1381
|
+
return res_read
|
|
1382
|
+
value = datetime.datetime.now(tz=tz)
|
|
1383
|
+
value2 = res_read.value.to_datetime().replace(tzinfo=tz)
|
|
1384
|
+
return result.Simple((value2 - value).total_seconds()).append_err(acc.err)
|
|
1385
|
+
|
|
1386
|
+
|
|
1387
|
+
|
|
1388
|
+
@dataclass
|
|
1389
|
+
class WriteTime(SimpleCopy, Simple[float]):
|
|
1390
|
+
"""Write and return <record time> in second: """
|
|
1391
|
+
limit: float = 5.0
|
|
1392
|
+
number_of_retries: int = 10
|
|
1393
|
+
msg: str = "write Clock.time"
|
|
1394
|
+
|
|
1395
|
+
async def exchange(self, c: Client) -> result.SimpleOrError[float]:
|
|
1396
|
+
acc = result.ErrorAccumulator()
|
|
1397
|
+
obj = c._objects.clock
|
|
1398
|
+
c.get_get_request_normal(obj.get_attr_descriptor(3))
|
|
1399
|
+
if isinstance(res_pdu := await c.read_data_block(), result.Error):
|
|
1400
|
+
return res_pdu
|
|
1401
|
+
tz = obj.get_attr_element(3).DATA_TYPE(res_pdu.value)
|
|
1402
|
+
for i in range(self.number_of_retries):
|
|
1403
|
+
pre_time = time.time()
|
|
1404
|
+
if isinstance(
|
|
1405
|
+
res_write := await WriteAttribute(
|
|
1406
|
+
ln=obj.logical_name,
|
|
1407
|
+
index=2,
|
|
1408
|
+
value=(datetime.datetime.utcnow() + datetime.timedelta(minutes=int(tz)))).exchange(c),
|
|
1409
|
+
result.Error):
|
|
1410
|
+
return res_write
|
|
1411
|
+
rec_time = time.time() - pre_time
|
|
1412
|
+
if rec_time < self.limit:
|
|
1413
|
+
break
|
|
1414
|
+
acc.append_e(TimeoutError(f"can't write in {i} attemp in time"))
|
|
1415
|
+
else:
|
|
1416
|
+
return result.Error.from_e(TimeoutError(f"can't write time for limit: {self.limit} second"))
|
|
1417
|
+
return result.Simple(rec_time).append_err(acc.err)
|
|
1378
1418
|
|
|
1379
1419
|
|
|
1380
1420
|
@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=wJEYw4Ld8cBAi2eMzvNvNAc69DaCV33Vjssv7f8smlA,77844
|
|
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.20.dist-info/METADATA,sha256=o-1ik4JJ14TuhPbklYvCiHTxj6JxlKMrlM3eliI_ypY,986
|
|
58
|
+
dlms_spodes_client-0.19.20.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
59
|
+
dlms_spodes_client-0.19.20.dist-info/entry_points.txt,sha256=Z6UTeQjjCf2k1Y3Bjs0s7yr-UYSWb-TvJMuG2K2MApw,70
|
|
60
|
+
dlms_spodes_client-0.19.20.dist-info/top_level.txt,sha256=rh_3Uig5bc6J_lKni01btol7dX_IgIJulNtGjGehmBE,19
|
|
61
|
+
dlms_spodes_client-0.19.20.dist-info/RECORD,,
|
|
File without changes
|
{dlms_spodes_client-0.19.18.dist-info → dlms_spodes_client-0.19.20.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|