About TCP protocol implementation
I'm making a client from Pharo smalltalk (Pharo 1.4 with the latest CogVM) (To be used from a different machine of the ROS installed). My first goal is make work the turtle simulator from my client.
Considering:
- a remote client (without direct access to server)
an ubuntu ROS instalation
How can i get the message definition related to a topic? Can i ask to the topic? Does the topic answer me in the error text something about the type? (AFAIK, browsing the topic-tools implementation, this kind of data is based on file browsing)
Is any definition of a common TCPROS package to take as example of topic usage?
In this case, i'd spend a lot of time today trying to send messages to the turtle throgh the velocity topic without any response (no movement, no error, no feedback at all) and i tried with the logs, but without any useful data.
The process i'm following is:
start roscore start turtle node
then, from the client
register as publisher in Velocity topic via XMLRPC layer with the IP:PORT recived connect to the node with a TCP/ip connection then i send a message with:
header type: master getTopicTypeRelated:/turtle1/command_velocity; #here i get the topicType from getTopicTypes topic: /turtle1/command_velocity; latching: false; callerId: anArbitraryId; messageDefinition: 'float32 linear float32 angular'; md5Sum:'9d5c2dcd348ac8f76ce2a4307bd63a13'.
in the body of the request i tried with float numbers (2.0 0.0) for example.
All this data in binary.
I browse a lot of roscpp, rospy and rosjava code trying to find how them create and serialize the data, but i dont find meaningful differences. I browse the site and the questions several times and i didnt find extensive explanations of the protocol. Maybe am i missing steps?