Hello Mikko,
there is a bug in Gurux DLMS Translator while processing GetRequestWithList
sample data exchange:
TX: 08:26:48 7E A0 39 02 23 61 76 ED 4D E6 E6 00 C0 03 C1 04 00 03 01 00 00 06 00 FF 02 00 00 03 01 00 00 06 01 FF 02 00 00 03 01 00 00 06 02 FF 02 00 00 03 01 00 00 06 03 FF 02 00 A7 4F 7E
RX: 08:26:48 7E A0 21 61 02 23 96 9B D4 E6 E7 00 C4 03 C1 04 00 12 08 FC 00 12 00 05 00 12 00 32 00 12 00 3C FD 80 7E
incorrect translation:
2: 7E A0 21 61 02 23 96 9B D4 E6 E7 00 C4 03 C1 04 00 12 08 FC 00 12 00 05 00 12 00 32 00 12 00 3C FD 80 7E
<HDLC len="20" >
<TargetAddress Value="30" />
<!-- Logical address:1, Physical address:17 -->
<SourceAddress Value="91" />
<FrameType Value="96" />
<PDU>
<GetResponse>
<GetResponseWithList>
<!-- Priority: High, ServiceClass: Confirmed, Invoke ID: 1 -->
<InvokeIdAndPriority Value="C1" />
<Result Qty="04" >
<Data>
<UInt16 Value="08FC" />
</Data>
</Result>
</GetResponseWithList>
</GetResponse>
</PDU>
</HDLC>
correct translation :
(after modifying
static void HandleGetResponseWithList
where in the cycle end
reply.Data.Position= reply.ReadPosition;
should be
reply.ReadPosition=reply.Data.Position ;)
2: 7E A0 21 61 02 23 96 9B D4 E6 E7 00 C4 03 C1 04 00 12 08 FC 00 12 00 05 00 12 00 32 00 12 00 3C FD 80 7E
<HDLC len="20" >
<TargetAddress Value="30" />
<!-- Logical address:1, Physical address:17 -->
<SourceAddress Value="91" />
<FrameType Value="96" />
<PDU>
<GetResponse>
<GetResponseWithList>
<!-- Priority: High, ServiceClass: Confirmed, Invoke ID: 1 -->
<InvokeIdAndPriority Value="C1" />
<Result Qty="04" >
<Data>
<UInt16 Value="08FC" />
</Data>
<Data>
<UInt16 Value="0005" />
</Data>
<Data>
<UInt16 Value="0032" />
</Data>
<Data>
<UInt16 Value="003C" />
</Data>
</Result>
</GetResponseWithList>
</GetResponse>
</PDU>
</HDLC>
Best regards, Andrew
Hi Andrew, I believe that…
Hi Andrew,
I believe that you are right, but this needs a little more investigation.
I'll keep you posted.
BR,
Mikko