0
$\begingroup$

Rosanswers logo

When using the simple message protocol, messages that are sent contain a COMM_TYPE located in the header. According to the wiki page, this is an integer that identifies the communications type.

I can't really find any other information on this value. Between what types of communications does it choose? Does it choose between TCP and UDP? And what values can it have? Something like 0 for TCP and 1 for UDP?

Thx


Originally posted by Gengoz on ROS Answers with karma: 45 on 2015-04-13

Post score: 1

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Sorry I missed this one.

The values for comm_type are actually documented in the simple_message.h file in the simple_message package of the industrial_core stack (from here) :

enum CommType
{
  INVALID = 0,
  TOPIC = 1,
  SERVICE_REQUEST = 2,
  SERVICE_REPLY = 3
};

You can also find the defined values for the other parts of the header there.

Additionally, the simple_message package has been documented using Doxygen, which is automatically generated by the ROS buildfarm. You can access that documentation here, which is also accessible from the simple_message wiki page (top-right, Package Links, Code API). You'll want to open the page for the SimpleMessage class, which contains references to the StandardMsgTypes, CommTypes and the ReplyTypes used in the header.

Finally, defined values for the msg_type field are documented in REP-I0004.


Edit: you might also be interested in the simple_message Wireshark dissector.


Originally posted by gvdhoorn with karma: 86574 on 2015-05-18

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by Gengoz on 2015-05-18:
Thank you for your awnser! Do I understand correctly that the COMM_TYPE not so much indicates what is expected as an awnser, but more so what is being send? For 1: info is being send over a 'topic', for 2: a request is given and somthing is expected back, for 3: a reply to something is being given?

Comment by gvdhoorn on 2015-05-18:
Well what is being sent sort-of directly determines what is expected and vice-versa. If you send a msg that is a topic, you won't get anything back. If it is a svc req, you'll get a reply. If you send a 'topic msg' with comm_type==svc req you'll get a reply back, as you set it to a svc req.

Comment by Gengoz on 2015-05-18:
I understand. Thank you. I'll mark this as best awnser.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.