I'm trying to receive simple udp packet with length and data.
Packet structure has no header/trailer and like followings.
|LENGTH(2byte)|DATA(variable length)|
ex)
0C 00 00 01 02 03 04 05 06 07 08 09 0a 0b
I defined in the protocol like followings but didn't work.
The packets can be seen in stream viewer but not handled in the connector.
[Response]<Param id="100">
<Name>DataLength</Name>
<Type>length</Type>
<Interprete>
<RawType>numeric text</RawType>
<LengthType>fixed</LengthType>
<Length>2</Length>
<Type>double</Type>
</Interprete>
<Length>
<Content>
<Param>1</Param>
</Content>
</Length>
</Param><Param id="101">
<Name>DataBody</Name>
<Type>read</Type>
<Interprete>
<RawType>other</RawType>
<Type>string</Type>
<LengthType>next param</LengthType>
</Interprete>
</Param>
[Trigger]<Response id="100">
<Name>DevicePacket</Name>
<Content>
<Param>100</Param>
<Param>101</Param>
</Content>
</Response>
[Action]<Trigger id="100">
<Name>Before Packet</Name>
<On id="100">response</On>
<Time>before</Time>
<Type>action</Type>
<Content>
<Id>10</Id>
<Id>11</Id>
</Content>
</Trigger><Trigger id="101">
<Name>After Packet</Name>
<On id="100">response</On>
<Time>after</Time>
<Type>action</Type>
<Content>
<Id>100</Id>
</Content>
</Trigger>
<Action id="10">
<Name>Response Read</Name>
<On>response</On>
<Type>read</Type>
</Action>
<Action id="11">
<Name>Response Length</Name>
<On>response</On>
<Type>length</Type>
</Action>
Something wrong or missing?
Hi,
I noticed that this question has been open for some time now. If this has been resolved in the meantime, could you select the best answer so the question is closed? If none of the answers provided the solution, but you have found it yourself, could you add an answer of your own?
This issue has solved by replacing the order of the read/length.
[Original][Fixed]<Trigger id=”100″>
<Name>Before Packet</Name>
<On id=”100″>response</On>
<Time>before</Time>
<Type>action</Type>
<Content>
<Id>10</Id> <!-- On Response: Read -->
<Id>11</Id> <!-- Response Length -->
</Content>
</Trigger>
<Trigger id=”100″>
<Name>Before Packet</Name>
<On id=”100″>response</On>
<Time>before</Time>
<Type>action</Type>
<Content>
<Id>11</Id> <!-- Response Length -->
<Id>10</Id> <!-- On Response: Read -->
</Content>
</Trigger>
This is reverse order in the document but it's working for now.
I tried replacing the order between action:read and action:length and the packet received correctly. (action:length > action:read)
Are these reasonable?
In doc – https://docs.dataminer.services/develop/devguide/Connector/ConnectionsSerialCreatingCommandsAndResponses.html#responses-with-length-field
It said “Note that the length action needs to be after “read response”.”…