DLMS-SPODES-client 0.19.20__tar.gz → 0.19.22__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.
Files changed (77) hide show
  1. {dlms_spodes_client-0.19.20/src/DLMS_SPODES_client.egg-info → dlms_spodes_client-0.19.22}/PKG-INFO +2 -2
  2. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/pyproject.toml +2 -2
  3. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/client.py +15 -18
  4. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/task.py +4 -2
  5. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22/src/DLMS_SPODES_client.egg-info}/PKG-INFO +2 -2
  6. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client.egg-info/requires.txt +1 -1
  7. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/test/client_log.txt +37 -0
  8. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/.gitignore +0 -0
  9. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/README.md +0 -0
  10. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/setup.cfg +0 -0
  11. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/FCS16.py +0 -0
  12. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/__init__.py +0 -0
  13. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_common/enums/TraceLevel.py +0 -0
  14. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_common/enums/__init__.py +0 -0
  15. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/AesGcmParameter.py +0 -0
  16. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/CountType.py +0 -0
  17. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/GXByteBuffer.py +0 -0
  18. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/GXCiphering.py +0 -0
  19. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/GXDLMS.py +0 -0
  20. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSChippering.py +0 -0
  21. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSChipperingStream.py +0 -0
  22. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSConfirmedServiceError.py +0 -0
  23. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSException.py +0 -0
  24. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSLNParameters.py +0 -0
  25. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSSNParameters.py +0 -0
  26. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSSettings.py +0 -0
  27. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/GXReplyData.py +0 -0
  28. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/HdlcControlFrame.py +0 -0
  29. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/MBusCommand.py +0 -0
  30. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/MBusEncryptionMode.py +0 -0
  31. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/ResponseType.py +0 -0
  32. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/SetResponseType.py +0 -0
  33. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/_HDLCInfo.py +0 -0
  34. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/__init__.py +0 -0
  35. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/Access.py +0 -0
  36. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/ApplicationReference.py +0 -0
  37. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/Authentication.py +0 -0
  38. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/BerType.py +0 -0
  39. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/Command.py +0 -0
  40. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/Definition.py +0 -0
  41. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/ErrorCode.py +0 -0
  42. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/ExceptionServiceError.py +0 -0
  43. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/HardwareResource.py +0 -0
  44. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/HdlcFrameType.py +0 -0
  45. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/Initiate.py +0 -0
  46. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/LoadDataSet.py +0 -0
  47. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/ObjectType.py +0 -0
  48. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/Priority.py +0 -0
  49. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/RequestTypes.py +0 -0
  50. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/Security.py +0 -0
  51. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/Service.py +0 -0
  52. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/ServiceClass.py +0 -0
  53. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/ServiceError.py +0 -0
  54. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/Standard.py +0 -0
  55. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/StateError.py +0 -0
  56. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/Task.py +0 -0
  57. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/VdeStateError.py +0 -0
  58. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/enums/__init__.py +0 -0
  59. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/gurux_dlms/internal/_GXCommon.py +0 -0
  60. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/logger.py +0 -0
  61. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/py.typed +0 -0
  62. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/services.py +0 -0
  63. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/session.py +0 -0
  64. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client/settings.py +0 -0
  65. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client.egg-info/SOURCES.txt +0 -0
  66. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client.egg-info/dependency_links.txt +0 -0
  67. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client.egg-info/entry_points.txt +0 -0
  68. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/src/DLMS_SPODES_client.egg-info/top_level.txt +0 -0
  69. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/test/Firmwares/firmwares.dat +0 -0
  70. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/test/Firmwares/firmwares_1_2_11.dat +0 -0
  71. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/test/Firmwares/firmwares_1_7_2.dat +0 -0
  72. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/test/config.toml +0 -0
  73. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/test/name2.csv +0 -0
  74. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/test/test_Client.py +0 -0
  75. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/test/test_logger.py +0 -0
  76. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/test/test_services.py +0 -0
  77. {dlms_spodes_client-0.19.20 → dlms_spodes_client-0.19.22}/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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: DLMS_SPODES_client
3
- Version: 0.19.20
3
+ Version: 0.19.22
4
4
  Summary: dlms-spodes
5
5
  Author-email: Serj Kotilevski <youserj@outlook.com>
6
6
  Project-URL: Source, https://github.com/youserj/SPODESclient_prj
@@ -14,7 +14,7 @@ Requires-Dist: pydantic>=2.11
14
14
  Requires-Dist: pycryptodomex>=3.22.0
15
15
  Requires-Dist: semver>=3.0
16
16
  Requires-Dist: StructResult<0.10,>=0.9.2
17
- Requires-Dist: DLMS-SPODES-communications<1.5,>=1.4.9
17
+ Requires-Dist: DLMS-SPODES-communications<1.6,>=1.5.0
18
18
  Requires-Dist: DLMS_SPODES<0.88,>=0.87.8
19
19
  Requires-Dist: DLMSadapter<0.8,>=0.7.6
20
20
  Requires-Dist: DLMSCommunicationProfile<0.2,>=0.1.11
@@ -15,7 +15,7 @@ exclude = ["Types"]
15
15
 
16
16
  [project]
17
17
  name = "DLMS_SPODES_client"
18
- version = "0.19.20"
18
+ version = "0.19.22"
19
19
  requires-python = ">= 3.12"
20
20
  authors = [
21
21
  {name="Serj Kotilevski", email="youserj@outlook.com"}
@@ -25,7 +25,7 @@ dependencies = [
25
25
  "pycryptodomex >= 3.22.0",
26
26
  "semver >= 3.0",
27
27
  "StructResult >= 0.9.2, <0.10",
28
- "DLMS-SPODES-communications >= 1.4.9, <1.5",
28
+ "DLMS-SPODES-communications >= 1.5.0, <1.6",
29
29
  "DLMS_SPODES >= 0.87.8, < 0.88",
30
30
  "DLMSadapter >= 0.7.6, < 0.8",
31
31
  "DLMSCommunicationProfile >= 0.1.11, < 0.2",
@@ -260,12 +260,12 @@ class Client:
260
260
  case _: raise ValueError(F"can't calculate channel index by media: {self.media}")
261
261
 
262
262
  def get_frame(self, read_data: bytearray, reply: GXReplyData) -> frame.Frame | None:
263
+ reply.complete = False
263
264
  while len(read_data) != 0:
264
265
  new_frame = frame.Frame.try_from(read_data)
265
- reply.complete = True
266
- if new_frame is None:
267
- reply.complete = False
266
+ if not isinstance(new_frame, frame.Frame):
268
267
  return None
268
+ reply.complete = True
269
269
  if new_frame.is_for_me(self.DA, self.SA):
270
270
  self.received_frames.append(new_frame)
271
271
  if new_frame.is_segmentation:
@@ -319,7 +319,7 @@ class Client:
319
319
  len_ = _GXCommon.getObjectCount(reply.data)
320
320
  if len_ > reply.data.size - reply.data.position:
321
321
  reply.complete = False
322
- return
322
+ return result.Error.from_e(RuntimeError("not enouth reply data size"))
323
323
  GXDLMS.getDataFromBlock(reply.data, index)
324
324
  if (bc & 0x80) == 0:
325
325
  reply.moreData = (RequestTypes(reply.moreData | RequestTypes.GBT))
@@ -758,22 +758,19 @@ class Client:
758
758
  self.log(logL.INFO, F"TX: {send_frame.content.hex(" ")}")
759
759
  attempt: int = 1
760
760
  while attempt < 3:
761
- try:
762
- await asyncio.wait_for( # todo: don't work exception!!!! Why????
763
- fut=self.media.receive(recv_buf),
764
- timeout=self.com_profile.parameters.inactivity_time_out) # todo: only for HDLC
765
- if self.__is_frame(notify, recv_buf, reply):
766
- break
767
- elif notify.data.size != 0:
768
- if not notify.isMoreData():
769
- notify.clear()
770
- continue
771
- else:
772
- """our frame not was found"""
773
- except TimeoutError as e:
774
- self.log(logL.WARN, F'Data send failed: {e}. Try to resend {attempt+1}/3. RX_buffer: {recv_buf.hex(" ")}')
761
+ if not await self.media.receive(recv_buf): # todo: make for BLE
762
+ self.log(logL.WARN, F'Data receive failed: Try to resend {attempt + 1}/3. RX_buffer: {recv_buf.hex(" ")}')
775
763
  await self.media.send(send_frame.content)
776
764
  attempt += 1
765
+ continue
766
+ if self.__is_frame(notify, recv_buf, reply):
767
+ break
768
+ if notify.data.size != 0:
769
+ if not notify.isMoreData():
770
+ notify.clear()
771
+ continue
772
+ else:
773
+ """our frame not was found"""
777
774
  else:
778
775
  return result.Error.from_e(TimeoutError("Failed to receive reply from the device in given time"), "read data block")
779
776
  recv_buf.clear()
@@ -76,7 +76,8 @@ class Base[T: result.Result](Protocol):
76
76
  if c.media is None:
77
77
  return result.Error.from_e(exc.NoPort("no media"), "PH_connect")
78
78
  if not c.media.is_open():
79
- await c.media.open()
79
+ if isinstance(res_open := await c.media.open(), result.Error):
80
+ return res_open
80
81
  c.level = OSI.PHYSICAL
81
82
  c.log(logL.INFO, F"Open port communication channel: {c.media}")
82
83
  # todo: replace to <data_link>
@@ -322,7 +323,8 @@ class TestDataLink(SimpleCopy, OK):
322
323
  async def physical(self, c: Client) -> result.Ok | result.Error:
323
324
  if OSI.PHYSICAL not in c.level:
324
325
  if not c.media.is_open():
325
- await c.media.open()
326
+ if isinstance(res_open := await c.media.open(), result.Error):
327
+ return res_open
326
328
  c.level = OSI.PHYSICAL
327
329
  c.DA = frame.Address(
328
330
  upper_address=int(c.server_SAP),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: DLMS_SPODES_client
3
- Version: 0.19.20
3
+ Version: 0.19.22
4
4
  Summary: dlms-spodes
5
5
  Author-email: Serj Kotilevski <youserj@outlook.com>
6
6
  Project-URL: Source, https://github.com/youserj/SPODESclient_prj
@@ -14,7 +14,7 @@ Requires-Dist: pydantic>=2.11
14
14
  Requires-Dist: pycryptodomex>=3.22.0
15
15
  Requires-Dist: semver>=3.0
16
16
  Requires-Dist: StructResult<0.10,>=0.9.2
17
- Requires-Dist: DLMS-SPODES-communications<1.5,>=1.4.9
17
+ Requires-Dist: DLMS-SPODES-communications<1.6,>=1.5.0
18
18
  Requires-Dist: DLMS_SPODES<0.88,>=0.87.8
19
19
  Requires-Dist: DLMSadapter<0.8,>=0.7.6
20
20
  Requires-Dist: DLMSCommunicationProfile<0.2,>=0.1.11
@@ -2,7 +2,7 @@ pydantic>=2.11
2
2
  pycryptodomex>=3.22.0
3
3
  semver>=3.0
4
4
  StructResult<0.10,>=0.9.2
5
- DLMS-SPODES-communications<1.5,>=1.4.9
5
+ DLMS-SPODES-communications<1.6,>=1.5.0
6
6
  DLMS_SPODES<0.88,>=0.87.8
7
7
  DLMSadapter<0.8,>=0.7.6
8
8
  DLMSCommunicationProfile<0.2,>=0.1.11
@@ -157292,3 +157292,40 @@ KPZ101000007851: 22.10 08:52.22 - DLMSClient - DEBUG - close
157292
157292
  KPZ101000007851: 22.10 08:52.22 - DLMSClient - INFO - TX: 7e a0 08 02 21 61 53 6f 51 7e
157293
157293
  KPZ101000007851: 22.10 08:52.22 - DLMSClient - INFO - RX: 7e a0 1f 61 02 21 73 e1 e2 81 80 12 05 01 80 06 01 80 07 04 00 00 00 01 08 04 00 00 00 01 53 3b 7e
157294
157294
  KPZ101000007851: 22.10 08:52.22 - DLMSClient - DEBUG - closed communication channel: COM6,9600
157295
+ #common: 24.10 13:45.18 - DLMSClient - DEBUG - Start <Logger DLMSClient (DEBUG)>
157296
+ c_Serial_HIGH: 24.10 13:45.18 - DLMSClient - INFO - Acquire
157297
+ c_Serial_HIGH: 24.10 13:45.18 - DLMSClient - INFO - Open port communication channel: COM6,9600
157298
+ c_Serial_HIGH: 24.10 13:45.18 - DLMSClient - INFO - c.SA=Address(upper_address=48, lower_address=None) c.DA=Address(upper_address=1, lower_address=16)
157299
+ c_Serial_HIGH: 24.10 13:45.18 - DLMSClient - INFO - TX: 7e a0 08 02 21 61 93 63 97 7e
157300
+ c_Serial_HIGH: 24.10 13:45.18 - DLMSClient - INFO - RX: 7e a0 08 61 02 21 73 7d 66 7e
157301
+ c_Serial_HIGH: 24.10 13:45.18 - DLMSClient - INFO - negotiation setup: NEGOTIATION: 128->[info_size]->128 1->[window]->1
157302
+ c_Serial_HIGH: 24.10 13:45.19 - DLMSClient - INFO - TX: 7e a0 4d 02 21 61 10 86 c6 e6 e6 00 60 3e a1 09 06 07 60 85 74 05 08 01 01 8a 02 07 80 8b 07 60 85 74 05 08 02 02 ac 12 80 10 90 bc 95 6a 5c b8 80 20 08 1b db 02 0a 5b b7 e0 be 10 04 0e 01 00 00 00 06 5f 1f 04 00 7f ff ff ff ff 33 65 7e
157303
+ c_Serial_HIGH: 24.10 13:45.19 - DLMSClient - INFO - RX: 7e a0 59 61 02 21 30 c4 68 e6 e7 00 61 4a a1 09 06 07 60 85 74 05 08 01 01 a2 03 02 01 00 a3 05 a1 03 02 01 0e 88 02 07 80 89 07 60 85 74 05 08 02 02 aa 12 80 10 79 b4 a3 ff d0 e8 42 b4 72 c6 56 db cd 4c 21 00 be 10 04 0e 08 00 06 5f 1f 04 00 00 18 9d 04 00 00 07 0f 82 7e
157304
+ c_Serial_HIGH: 24.10 13:45.19 - DLMSClient - INFO - SET CONFORMANCE: 000000000001100010011101
157305
+ c_Serial_HIGH: 24.10 13:45.19 - DLMSClient - INFO - TX: 7e a0 2c 02 21 61 32 61 6e e6 e6 00 c3 01 c1 00 0f 00 00 28 00 00 ff 01 01 09 10 10 c6 1b f8 75 a3 60 8c 3a 13 17 20 f4 02 f1 d6 0c f1 7e
157306
+ c_Serial_HIGH: 24.10 13:45.19 - DLMSClient - INFO - RX: 7e a0 25 61 02 21 52 13 4a e6 e7 00 c7 01 c1 00 01 00 09 10 ac a5 ce 67 51 89 8e d3 1f 75 0d e2 15 ed 10 66 28 1e 7e
157307
+ c_Serial_HIGH: 24.10 13:45.19 - DLMSClient - INFO - TX: 7e a0 1a 02 21 61 54 18 87 e6 e6 00 c0 01 c1 00 01 00 00 2a 00 00 ff 02 00 12 80 7e
157308
+ c_Serial_HIGH: 24.10 13:45.19 - DLMSClient - INFO - RX: 7e a0 22 61 02 21 74 fb 3e e6 e7 00 c4 01 c1 00 09 0f 4b 50 5a 31 30 31 30 30 30 30 30 37 38 35 31 62 2d 7e
157309
+ c_Serial_HIGH: 24.10 13:45.19 - DLMSClient - INFO - TX: 7e a0 1a 02 21 61 76 08 85 e6 e6 00 c0 01 c1 00 01 00 00 00 02 00 ff 02 00 f4 3a 7e
157310
+ c_Serial_HIGH: 24.10 13:45.19 - DLMSClient - INFO - RX: 7e a0 21 61 02 21 96 2b e7 e6 e7 00 c4 01 c1 00 09 0e 50 57 52 4d 5f 4d 32 4d 5f 31 5f 46 34 5f 66 7c 7e
157311
+ c_Serial_HIGH: 24.10 13:45.19 - DLMSClient - INFO - TX: 7e a0 1a 02 21 61 98 78 8b e6 e6 00 c0 01 c1 00 01 00 00 00 02 01 ff 02 00 4f 26 7e
157312
+ c_Serial_HIGH: 24.10 13:45.19 - DLMSClient - INFO - RX: 7e a0 19 61 02 21 b8 a6 a1 e6 e7 00 c4 01 c1 00 09 06 31 2e 37 2e 31 35 30 08 7e
157313
+ c_Serial_HIGH: 24.10 13:45.20 - DLMSClient - INFO - find collection in <DLMSAdapter.xml_.Xml50 object at 0x0000025C08063530>
157314
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - DEBUG - close
157315
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - TX: 7e a0 08 02 21 61 53 6f 51 7e
157316
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - RX: 7e a0 1f 61 02 21 73 e1 e2 81 80 12 05 01 80 06 01 80 07 04 00 00 00 01 08 04 00 00 00 01 53 3b 7e
157317
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - c.SA=Address(upper_address=48, lower_address=None) c.DA=Address(upper_address=1, lower_address=16)
157318
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - TX: 7e a0 08 02 21 61 93 63 97 7e
157319
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - RX: 7e a0 08 61 02 21 73 7d 66 7e
157320
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - negotiation setup: NEGOTIATION: 128->[info_size]->128 1->[window]->1
157321
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - TX: 7e a0 4d 02 21 61 10 86 c6 e6 e6 00 60 3e a1 09 06 07 60 85 74 05 08 01 01 8a 02 07 80 8b 07 60 85 74 05 08 02 02 ac 12 80 10 2c 5f 4f 25 15 28 be cb b8 f9 30 f1 36 7d b8 7f be 10 04 0e 01 00 00 00 06 5f 1f 04 00 7f ff ff ff ff f0 cf 7e
157322
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - RX: 7e a0 59 61 02 21 30 c4 68 e6 e7 00 61 4a a1 09 06 07 60 85 74 05 08 01 01 a2 03 02 01 00 a3 05 a1 03 02 01 0e 88 02 07 80 89 07 60 85 74 05 08 02 02 aa 12 80 10 3a ed a5 57 69 8f c6 f0 19 e2 88 56 64 52 54 9b be 10 04 0e 08 00 06 5f 1f 04 00 00 18 9d 04 00 00 07 f1 56 7e
157323
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - SET CONFORMANCE: 000000000001100010011101
157324
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - TX: 7e a0 2c 02 21 61 32 61 6e e6 e6 00 c3 01 c1 00 0f 00 00 28 00 00 ff 01 01 09 10 bb d7 63 31 1b 51 93 f8 6b 7a e9 e7 d4 fb 2f de 71 dc 7e
157325
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - RX: 7e a0 25 61 02 21 52 13 4a e6 e7 00 c7 01 c1 00 01 00 09 10 a5 5b 01 73 9f cb 46 f6 7a 9e 2d b8 7f 08 b2 a8 30 93 7e
157326
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - TX: 7e a0 1a 02 21 61 54 18 87 e6 e6 00 c0 01 c1 00 01 00 00 2a 00 00 ff 02 00 12 80 7e
157327
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - RX: 7e a0 22 61 02 21 74 fb 3e e6 e7 00 c4 01 c1 00 09 0f 4b 50 5a 31 30 31 30 30 30 30 30 37 38 35 31 62 2d 7e
157328
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - DEBUG - close
157329
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - TX: 7e a0 08 02 21 61 53 6f 51 7e
157330
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - INFO - RX: 7e a0 1f 61 02 21 73 e1 e2 81 80 12 05 01 80 06 01 80 07 04 00 00 00 01 08 04 00 00 00 01 53 3b 7e
157331
+ KPZ101000007851: 24.10 13:45.20 - DLMSClient - DEBUG - closed communication channel: COM6,9600