hutcheb commented on a change in pull request #174:
URL: https://github.com/apache/plc4x/pull/174#discussion_r462815778



##########
File path: protocols/modbus/src/main/resources/protocols/modbus/modbus.mspec
##########
@@ -247,9 +247,9 @@
 ]
 
 [type 'ModbusPDUReadFileRecordResponseItem'
-    [implicit   uint 8     'dataLength'     '(COUNT(data) * 2) + 1']
+    [simple   uint 8     'dataLength']

Review comment:
       Hi Chris,
   
   Maybe I'm confused by what implicit and simple mean. I take them to mean:-
   Simple - Use the value that is included in the response.
   Implicit - Attempt to calculated the value based on the other fields in the 
response.
   
   As the length of the ModbusPDUReadFileRecordResponseItems is included in the 
response I changed it to simple instead of trying to calculate it from the data 
field.

##########
File path: protocols/modbus/src/main/resources/protocols/modbus/modbus.mspec
##########
@@ -247,9 +247,9 @@
 ]
 
 [type 'ModbusPDUReadFileRecordResponseItem'
-    [implicit   uint 8     'dataLength'     '(COUNT(data) * 2) + 1']
+    [simple   uint 8     'dataLength']

Review comment:
       Also as the data field has a variable length if you try to infer the 
length of it, it wouldn't know the length of the data field in the first 
ModbusPDUReadFileRecordResponseItem.
   
   So when it starts parsing the first ModbusPDUReadFileRecordResponseItem it 
would receive:-
   0x03 - It would then try to infer this field by using the rest of the 
message. It would end up with 7 instead of 3.
   0x06
   0x00
   0x01
   0x03
   0x06
   0x00
   0x01




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to