Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Dark

Collapse
SHARUR
Community Wiki DLMS/COSEM Tools
Search Sign in
S

sharur_gate2_admin

@sharur_gate2_admin
administrators
Unfollow Follow
About
Posts
32
Topics
8
Shares
0
Groups
1
Followers
0
Following
0
Engineer Details
Username sharur_gate2_admin
Status offline
Last Active 2026-09-07T07:12:46.041Z
Engineering Shortcuts
DLMS / COSEM Protocol Analyzer 3. OBIS Code Structure Community Discussions
Recent Activity & Posts
32 items
Python parser for compact-array capture objects
<p dir="auto">For production code, return offsets with each error so a 400-byte trace does not force operators to count bytes manually.</p>
Python parser for compact-array capture objects
<p dir="auto">Keep the structure description beside the payload in test evidence. Without it, a compact array cannot be decoded unambiguously.</p>
Python parser for compact-array capture objects
<p dir="auto">The parser below is intentionally small and defensive. It rejects trailing bytes instead of guessing a schema.</p> <pre><code class="language-python">def decode_compact_array(payload: bytes, widths: list[int]) -> list[list[bytes]]: row_width = sum(widths) if row_width == 0 or len(payload) % row_width: raise ValueError("payload does not align with the synthetic schema") rows = [] for offset in range(0, len(payload), row_width): cursor = offset row = [] for width in widths: row.append(payload[cursor:cursor + width]) cursor += width rows.append(row) return rows </code></pre> <table class="table table-bordered table-striped"> <thead> <tr> <th>Column</th> <th style="text-align:right">Width</th> <th>Synthetic meaning</th> </tr> </thead> <tbody> <tr> <td>timestamp</td> <td style="text-align:right">12</td> <td>octet string</td> </tr> <tr> <td>active energy</td> <td style="text-align:right">4</td> <td>unsigned</td> </tr> <tr> <td>status</td> <td style="text-align:right">1</td> <td>bit flags</td> </tr> </tbody> </table>
Gurux Java client: safe Association LN retry loop
<p dir="auto">Only retry transport-class failures. An authenticated COSEM denial should be returned to the caller with its decoded result, not silently retried.</p>
Gurux Java client: safe Association LN retry loop
<p dir="auto">A retry must create a new evidence boundary. Reusing a half-open connection can hide whether the counter, challenge, or transport failed.</p> <pre><code class="language-java">public final class AssociationRetry { public Result execute(ClientFactory factory, int maxAttempts) throws Exception { Exception last = null; for (int attempt = 1; attempt <= maxAttempts; attempt++) { try (DlmsClient client = factory.open()) { client.associate(); return client.read("0.0.40.0.0.255", 2); } catch (TemporaryTransportException ex) { last = ex; } } throw last; } } </code></pre> <p dir="auto">Synthetic stack excerpt:</p> <pre><code class="language-text">com.example.dlms.TemporaryTransportException: UA not received before 3000 ms at com.example.dlms.HdlcLink.awaitUa(HdlcLink.java:184) at com.example.dlms.DlmsClient.associate(DlmsClient.java:91) at com.example.dlms.AssociationRetry.execute(AssociationRetry.java:7) Caused by: java.net.SocketTimeoutException: synthetic timeout </code></pre>
HDLC frame rejected after SNRM: where to inspect HCS and FCS
<p dir="auto">After correcting a frame, prove the next UA or DM response on the wire; a local encoder unit test is necessary but not sufficient.</p>
HDLC frame rejected after SNRM: where to inspect HCS and FCS
<p dir="auto">The synthetic trace alternates TX/RX only to exercise rendering. It is not evidence of a real link exchange.</p>
HDLC frame rejected after SNRM: where to inspect HCS and FCS
<p dir="auto">The following 180-line fixture is deliberately long to verify log scrolling, copy, collapse/expand, mobile containment, and search behavior. It is generated from four fake frames.</p> <pre><code class="language-text">2026-08-21T10:24:00.000Z TX SIM-HDLC attempt=01 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:01.037Z RX SIM-HDLC attempt=01 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:02.074Z TX SIM-HDLC attempt=01 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:03.111Z RX SIM-HDLC attempt=01 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:04.148Z TX SIM-HDLC attempt=01 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:05.185Z RX SIM-HDLC attempt=01 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:06.222Z TX SIM-HDLC attempt=01 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:07.259Z RX SIM-HDLC attempt=01 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:08.296Z TX SIM-HDLC attempt=01 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:09.333Z RX SIM-HDLC attempt=01 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:10.370Z TX SIM-HDLC attempt=01 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:11.407Z RX SIM-HDLC attempt=01 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:12.444Z TX SIM-HDLC attempt=02 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:13.481Z RX SIM-HDLC attempt=02 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:14.518Z TX SIM-HDLC attempt=02 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:15.555Z RX SIM-HDLC attempt=02 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:16.592Z TX SIM-HDLC attempt=02 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:17.629Z RX SIM-HDLC attempt=02 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:18.666Z TX SIM-HDLC attempt=02 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:19.703Z RX SIM-HDLC attempt=02 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:20.740Z TX SIM-HDLC attempt=02 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:21.777Z RX SIM-HDLC attempt=02 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:22.814Z TX SIM-HDLC attempt=02 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:23.851Z RX SIM-HDLC attempt=02 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:24.888Z TX SIM-HDLC attempt=03 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:25.925Z RX SIM-HDLC attempt=03 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:26.962Z TX SIM-HDLC attempt=03 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:27.999Z RX SIM-HDLC attempt=03 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:28.036Z TX SIM-HDLC attempt=03 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:29.073Z RX SIM-HDLC attempt=03 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:30.110Z TX SIM-HDLC attempt=03 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:31.147Z RX SIM-HDLC attempt=03 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:32.184Z TX SIM-HDLC attempt=03 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:33.221Z RX SIM-HDLC attempt=03 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:34.258Z TX SIM-HDLC attempt=03 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:35.295Z RX SIM-HDLC attempt=03 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:36.332Z TX SIM-HDLC attempt=04 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:37.369Z RX SIM-HDLC attempt=04 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:38.406Z TX SIM-HDLC attempt=04 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:39.443Z RX SIM-HDLC attempt=04 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:40.480Z TX SIM-HDLC attempt=04 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:41.517Z RX SIM-HDLC attempt=04 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:42.554Z TX SIM-HDLC attempt=04 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:43.591Z RX SIM-HDLC attempt=04 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:44.628Z TX SIM-HDLC attempt=04 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:45.665Z RX SIM-HDLC attempt=04 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:46.702Z TX SIM-HDLC attempt=04 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:47.739Z RX SIM-HDLC attempt=04 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:48.776Z TX SIM-HDLC attempt=05 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:49.813Z RX SIM-HDLC attempt=05 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:50.850Z TX SIM-HDLC attempt=05 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:51.887Z RX SIM-HDLC attempt=05 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:52.924Z TX SIM-HDLC attempt=05 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:53.961Z RX SIM-HDLC attempt=05 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:54.998Z TX SIM-HDLC attempt=05 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:55.035Z RX SIM-HDLC attempt=05 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:56.072Z TX SIM-HDLC attempt=05 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:57.109Z RX SIM-HDLC attempt=05 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:58.146Z TX SIM-HDLC attempt=05 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:59.183Z RX SIM-HDLC attempt=05 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:00.220Z TX SIM-HDLC attempt=06 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:01.257Z RX SIM-HDLC attempt=06 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:02.294Z TX SIM-HDLC attempt=06 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:03.331Z RX SIM-HDLC attempt=06 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:04.368Z TX SIM-HDLC attempt=06 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:05.405Z RX SIM-HDLC attempt=06 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:06.442Z TX SIM-HDLC attempt=06 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:07.479Z RX SIM-HDLC attempt=06 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:08.516Z TX SIM-HDLC attempt=06 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:09.553Z RX SIM-HDLC attempt=06 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:10.590Z TX SIM-HDLC attempt=06 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:11.627Z RX SIM-HDLC attempt=06 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:12.664Z TX SIM-HDLC attempt=07 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:13.701Z RX SIM-HDLC attempt=07 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:14.738Z TX SIM-HDLC attempt=07 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:15.775Z RX SIM-HDLC attempt=07 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:16.812Z TX SIM-HDLC attempt=07 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:17.849Z RX SIM-HDLC attempt=07 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:18.886Z TX SIM-HDLC attempt=07 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:19.923Z RX SIM-HDLC attempt=07 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:20.960Z TX SIM-HDLC attempt=07 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:21.997Z RX SIM-HDLC attempt=07 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:22.034Z TX SIM-HDLC attempt=07 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:23.071Z RX SIM-HDLC attempt=07 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:24.108Z TX SIM-HDLC attempt=08 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:25.145Z RX SIM-HDLC attempt=08 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:26.182Z TX SIM-HDLC attempt=08 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:27.219Z RX SIM-HDLC attempt=08 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:28.256Z TX SIM-HDLC attempt=08 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:29.293Z RX SIM-HDLC attempt=08 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:30.330Z TX SIM-HDLC attempt=08 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:31.367Z RX SIM-HDLC attempt=08 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:32.404Z TX SIM-HDLC attempt=08 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:33.441Z RX SIM-HDLC attempt=08 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:34.478Z TX SIM-HDLC attempt=08 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:35.515Z RX SIM-HDLC attempt=08 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:36.552Z TX SIM-HDLC attempt=09 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:37.589Z RX SIM-HDLC attempt=09 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:38.626Z TX SIM-HDLC attempt=09 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:39.663Z RX SIM-HDLC attempt=09 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:40.700Z TX SIM-HDLC attempt=09 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:41.737Z RX SIM-HDLC attempt=09 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:42.774Z TX SIM-HDLC attempt=09 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:43.811Z RX SIM-HDLC attempt=09 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:44.848Z TX SIM-HDLC attempt=09 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:45.885Z RX SIM-HDLC attempt=09 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:46.922Z TX SIM-HDLC attempt=09 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:47.959Z RX SIM-HDLC attempt=09 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:48.996Z TX SIM-HDLC attempt=10 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:49.033Z RX SIM-HDLC attempt=10 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:50.070Z TX SIM-HDLC attempt=10 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:51.107Z RX SIM-HDLC attempt=10 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:52.144Z TX SIM-HDLC attempt=10 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:53.181Z RX SIM-HDLC attempt=10 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:54.218Z TX SIM-HDLC attempt=10 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:55.255Z RX SIM-HDLC attempt=10 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:56.292Z TX SIM-HDLC attempt=10 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:57.329Z RX SIM-HDLC attempt=10 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:58.366Z TX SIM-HDLC attempt=10 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:59.403Z RX SIM-HDLC attempt=10 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:00.440Z TX SIM-HDLC attempt=11 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:01.477Z RX SIM-HDLC attempt=11 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:02.514Z TX SIM-HDLC attempt=11 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:03.551Z RX SIM-HDLC attempt=11 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:04.588Z TX SIM-HDLC attempt=11 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:05.625Z RX SIM-HDLC attempt=11 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:06.662Z TX SIM-HDLC attempt=11 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:07.699Z RX SIM-HDLC attempt=11 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:08.736Z TX SIM-HDLC attempt=11 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:09.773Z RX SIM-HDLC attempt=11 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:10.810Z TX SIM-HDLC attempt=11 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:11.847Z RX SIM-HDLC attempt=11 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:12.884Z TX SIM-HDLC attempt=12 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:13.921Z RX SIM-HDLC attempt=12 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:14.958Z TX SIM-HDLC attempt=12 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:15.995Z RX SIM-HDLC attempt=12 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:16.032Z TX SIM-HDLC attempt=12 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:17.069Z RX SIM-HDLC attempt=12 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:18.106Z TX SIM-HDLC attempt=12 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:19.143Z RX SIM-HDLC attempt=12 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:20.180Z TX SIM-HDLC attempt=12 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:21.217Z RX SIM-HDLC attempt=12 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:22.254Z TX SIM-HDLC attempt=12 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:23.291Z RX SIM-HDLC attempt=12 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:24.328Z TX SIM-HDLC attempt=13 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:25.365Z RX SIM-HDLC attempt=13 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:26.402Z TX SIM-HDLC attempt=13 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:27.439Z RX SIM-HDLC attempt=13 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:28.476Z TX SIM-HDLC attempt=13 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:29.513Z RX SIM-HDLC attempt=13 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:30.550Z TX SIM-HDLC attempt=13 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:31.587Z RX SIM-HDLC attempt=13 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:32.624Z TX SIM-HDLC attempt=13 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:33.661Z RX SIM-HDLC attempt=13 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:34.698Z TX SIM-HDLC attempt=13 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:35.735Z RX SIM-HDLC attempt=13 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:36.772Z TX SIM-HDLC attempt=14 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:37.809Z RX SIM-HDLC attempt=14 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:38.846Z TX SIM-HDLC attempt=14 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:39.883Z RX SIM-HDLC attempt=14 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:40.920Z TX SIM-HDLC attempt=14 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:41.957Z RX SIM-HDLC attempt=14 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:42.994Z TX SIM-HDLC attempt=14 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:43.031Z RX SIM-HDLC attempt=14 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:44.068Z TX SIM-HDLC attempt=14 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:45.105Z RX SIM-HDLC attempt=14 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:46.142Z TX SIM-HDLC attempt=14 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:47.179Z RX SIM-HDLC attempt=14 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:48.216Z TX SIM-HDLC attempt=15 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:49.253Z RX SIM-HDLC attempt=15 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:50.290Z TX SIM-HDLC attempt=15 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:51.327Z RX SIM-HDLC attempt=15 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:52.364Z TX SIM-HDLC attempt=15 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:53.401Z RX SIM-HDLC attempt=15 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:54.438Z TX SIM-HDLC attempt=15 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:55.475Z RX SIM-HDLC attempt=15 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E 2026-08-21T10:24:56.512Z TX SIM-HDLC attempt=15 frame=7E A0 23 03 21 93 5A 7D E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:57.549Z RX SIM-HDLC attempt=15 frame=7E A0 1E 21 03 73 9A 11 E6 E7 00 C4 01 81 00 00 00 01 00 00 60 01 00 FF 02 00 7E 2026-08-21T10:24:58.586Z TX SIM-HDLC attempt=15 frame=7E A0 0A 03 21 53 7B 16 81 80 14 05 02 07 D0 7E 2026-08-21T10:24:59.623Z RX SIM-HDLC attempt=15 frame=7E A0 0A 21 03 73 1C 22 81 80 12 05 01 07 D0 7E </code></pre> <p dir="auto">检查顺序:frame length → destination/source addressing → control byte → HCS → information field → FCS。Do not “fix” CRC before verifying which bytes were included.</p>
Profile Generic selective access: range descriptor example
<p dir="auto">A zero-row response can be valid when the meter clock and requested UTC interval do not overlap. Read clock attribute 2 before changing the selector.</p>
Profile Generic selective access: range descriptor example
<p dir="auto">Field Observation (Synthetic Trace): The meter real-time clock drifts 127 seconds behind the data concentrator. The daily billing row appears "missing" only when queried with the server timezone rather than the meter deviation.</p> <p dir="auto">Long reference URL used only to test wrapping:<br /> <a href="https://example.invalid/synthetic-dlms-trace/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/?obis=0.0.40.0.0.255&counter=42" rel="nofollow ugc">https://example.invalid/synthetic-dlms-trace/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/segment/?obis=0.0.40.0.0.255&counter=42</a></p> <p dir="auto">Long identifier-like token used only to test overflow containment:<br /> 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF</p> <p dir="auto">Conclusion Boundary: Verified that the layout safely handles long unbroken tokens without overflow; does not represent physical meter state.</p>
  • Login

  • Don't have an account? Register

  • Login or register to search.
Powered by NodeBB Contributors
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups