Hi all,
I'm working on a smart serial protocol that will act as a "listener" (ip, any, one response with a param of length next param that is parsed as messages come through). I am trying to send a command, and it's showing up in the streamviewer, but I can NOT find it in wireshark, despite other traffic (ie messages from device) coming through. Needless to say, the set is not going through on the device.
My setup: makeCommandByProtocol, primary connection of type smart-serial, ip any, port 20002. Secondary connection of type smart-serial, ip <specificDeviceIP>, port also 20002.
I have my Pair with one command and no response where the command is one param that is set via qaction, and I can see the correct command in the streamviewer. I have my generic response that is parsing incoming traffic correctly, and also displaying "no response needed" when I try to send the command.
Pair setup in xml:
Streamviewer example:
I get a "No response needed" response from Streamviewer, but I see nothing in a wireshark, despite seeing the correct traffic coming through for the listening/parsing of messages.
Any ideas on what could be going wrong/other things I should check? I've tried almost everything I can think of including creating a bare bones driver that only sends the command and doesn't listen.
Hi Alex,
When data is being sent in a smart-serial element that is configured as server, it's broadcasted to all connected clients. So maybe there are no clients connected on the connection you are using to send data.
Maybe you could try what's described on this page. You probably don't need that second connection to send messages back to the client.
When a specific client sends data, the response should only be sent back to that specific client. This can be obtained by using a trigger "after response".
All groups executed as a result of a trigger 'after response' are sent to the client that sent the command.
Hi Alex,
Do I understand you want to sent data via the secondary connection?
- Did you already checked that the group is having the option to send it via the secondary connection
<Groups>
<Group id="" connection="0" />
<Group id="" connection="1" />
</Groups>
2. I feel it is a bit related to a bug in the past.
Smart-serial (2nd) connection seemingly not working (from 10.2.7)
There is a common mistake made in the driver definition that is now popping up extra by SW improvements from 10.2.7 => the reason it used to work is the bug.
Expected behavior:smart serial connection(s) will take all the defined header and/or trailer params into account. effect: data packages using a different header / trailer will not be passed => not even shown in the streamviewersolution: only define the header / trailer params you need ( = clean up params properly when removing responses)
Note that this is a well known behavior when using smart-serial as main connection, but we might miss it when using smart-serial as 2nd connection. In order to use headers and/or trailers in the main connection and disregard them in the 2nd, we need to define the connection in those params. <Type options="headerTrailerLink=1;connection=0">trailer</Type>
https://docs.dataminer.services/develop/devguide/Connector/ConnectionsSmartSerialDataForwarding.html#headers-and-trailers
Data forwarding | DataMiner Docs
Hi Tom,
Thanks for the feedback, but this does not fix my issue. Sets are still not going out to the device.
EDIT: The issue was fixed due to a device setting that needed to be enabled. Still using one listener connection and then dataminer determines where the command goes.