DLMS-SPODES-client 0.19.18__tar.gz → 0.19.19__tar.gz
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-0.19.18/src/DLMS_SPODES_client.egg-info → dlms_spodes_client-0.19.19}/PKG-INFO +1 -1
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/pyproject.toml +1 -1
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/task.py +29 -18
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19/src/DLMS_SPODES_client.egg-info}/PKG-INFO +1 -1
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/test/client_log.txt +20033 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/test/test_Client.py +8 -1
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/.gitignore +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/README.md +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/setup.cfg +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/FCS16.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/__init__.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/client.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_common/enums/TraceLevel.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_common/enums/__init__.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/AesGcmParameter.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/CountType.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/GXByteBuffer.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/GXCiphering.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/GXDLMS.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSChippering.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSChipperingStream.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSConfirmedServiceError.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSException.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSLNParameters.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSSNParameters.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSSettings.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/GXReplyData.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/HdlcControlFrame.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/MBusCommand.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/MBusEncryptionMode.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/ResponseType.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/SetResponseType.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/_HDLCInfo.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/__init__.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/Access.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/ApplicationReference.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/Authentication.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/BerType.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/Command.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/Definition.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/ErrorCode.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/ExceptionServiceError.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/HardwareResource.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/HdlcFrameType.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/Initiate.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/LoadDataSet.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/ObjectType.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/Priority.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/RequestTypes.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/Security.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/Service.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/ServiceClass.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/ServiceError.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/Standard.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/StateError.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/Task.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/VdeStateError.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/enums/__init__.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/gurux_dlms/internal/_GXCommon.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/logger.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/py.typed +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/services.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/session.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client/settings.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client.egg-info/SOURCES.txt +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client.egg-info/dependency_links.txt +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client.egg-info/entry_points.txt +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client.egg-info/requires.txt +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/src/DLMS_SPODES_client.egg-info/top_level.txt +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/test/Firmwares/firmwares.dat +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/test/Firmwares/firmwares_1_2_11.dat +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/test/Firmwares/firmwares_1_7_2.dat +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/test/config.toml +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/test/name2.csv +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/test/test_logger.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/test/test_services.py +0 -0
- {dlms_spodes_client-0.19.18 → dlms_spodes_client-0.19.19}/test//320/272/320/276/320/275/321/204/320/270/320/263/321/203/321/200/320/260/321/206/320/270/321/217 GSM.csv" +0 -0
|
@@ -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
|