I have a Smart-Serial driver and we're having issues when receiving the responses.
We validated the data we're receiving from the device on Wireshark and wee're receiving all the data. When checking on DMA element, we're partialy receiving it and doesn't report timeouts in the communication). It's likely the communication is interrupted at some point but don't have any confirmation for that (no log errors, no stream viewer errors, no SLPort errors).
The Response parameter is configured with 'next param', so we receive any values on that without limiting with a trailier.
One thing to take into account is that we're not requesting the data using commands, we're receiving it after activate the element in the DMA.
Is there something we could implement in the driver to avoid that issue? Is this a software issue?
To solve that issue, we updated the header/trailer params type to 'read' and remove the 'headerTrailerLink' option from all of them.
Hi German,
Is the data that you receive from the device binary data, that could contain 0x00 bytes? If that data is somewhere converted to a string, it would be terminated by that character.
To solve that you should retrieve the binary data from the parameter, instead of a normal protocol.GetParameter(). This can be done as follows:
object[] oData = (object[])protocol.GetData("PARAMETER", <parameter ID>);
byte[] data = oData.Cast<byte>().ToArray();
Also don't forget the "read response" action and trigger before each response.
To investigate this further you could activate development logging on the element.