Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

@ahendrix - reading the roscpp tutorials, generating talker and listener, then replacing listener with unreliable_listener did the trick. I did not understand the prerequisites of your suggestion, but after a few hours of research I came up with the following Request and Response for requestTopic on XMLRPC for UDPROS (Now I know why multiple implementers have built the UDPROS, and not finished them. The state of my client the last year was hung up on the missing requestTopic documentation that is required to establish a connection on the UDPROS Clients components I wrote. I hope this helps other ROS Client implementers - if you decode the base64 you will discover it is the typical connection header parameters from TCPROS Protocol being passed in as base 64 String):

POST / HTTP/1.1 User-Agent: XMLRPC++ 0.7 Host: thyatira:46120 Content-Type: text/xml Content-length: 590

<?xml version="1.0"?> <methodCall><methodName>requestTopic</methodName> <params><param><value>/listener_unreliable</value></param><param><value>/chatter</value></param><param><value><array><data><value><array><data><value>UDPROS</value><value><base64>HQAAAGNhbGxlcmlkPS9saXN0ZW5lcl91bnJlbGlhYmxlJwAAAG1kNXN1bT05OTJjZThhMTY4 N2NlYzhjOGJkODgzZWM3M2NhNDFkMQ4AAAB0b3BpYz0vY2hhdHRlchQAAAB0eXBlPXN0ZF9t c2dzL1N0cmluZw==</base64></value><value>thyatira</value><value><i4>39861</i4></value><value><i4>1500</i4></value></data></array></value></data></array></value></param></params></methodCall>

HTTP/1.1 200 OK Server: XMLRPC++ 0.7 Content-Type: text/xml Content-length: 569

<?xml version="1.0"?> <methodResponse><params><param> <value><array><data><value><i4>1</i4></value><value></value><value><array><data><value>UDPROS</value><value>thyatira</value><value><i4>33184</i4></value><value><i4>1</i4></value><value><i4>1500</i4></value><value><base64>EAAAAGNhbGxlcmlkPS90YWxrZXInAAAAbWQ1c3VtPTk5MmNlOGExNjg3Y2VjOGM4YmQ4ODNl YzczY2E0MWQxHwAAAG1lc3NhZ2VfZGVmaW5pdGlvbj1zdHJpbmcgZGF0YQoOAAAAdG9waWM9 L2NoYXR0ZXIUAAAAdHlwZT1zdGRfbXNncy9TdHJpbmc=</base64></value></data></array></value></data></array></value> </param></params></methodResponse>

@ahendrix - reading the roscpp tutorials, generating talker and listener, then replacing listener with unreliable_listener did the trick. I did not understand the prerequisites of your suggestion, but after a few hours of research I came up with the following Request and Response for requestTopic on XMLRPC for UDPROS (Now I know why multiple implementers have built the UDPROS, and not finished them. The state of my client the last year was hung up on the missing requestTopic documentation that is required to establish a connection on the UDPROS Clients components I wrote. I hope this helps other ROS Client implementers - if you decode the base64 you will discover it is the typical connection header parameters from TCPROS Protocol being passed in as base 64 String):String. Behavior Note: The Subscriber port is connected to from the Publisher, and in the test I performed the Publisher Port did not match the response port provided by the Publisher in the XMLRPC Request):

POST / HTTP/1.1 User-Agent: XMLRPC++ 0.7 Host: thyatira:46120 Content-Type: text/xml Content-length: 590

<?xml version="1.0"?> <methodCall><methodName>requestTopic</methodName> <params><param><value>/listener_unreliable</value></param><param><value>/chatter</value></param><param><value><array><data><value><array><data><value>UDPROS</value><value><base64>HQAAAGNhbGxlcmlkPS9saXN0ZW5lcl91bnJlbGlhYmxlJwAAAG1kNXN1bT05OTJjZThhMTY4 N2NlYzhjOGJkODgzZWM3M2NhNDFkMQ4AAAB0b3BpYz0vY2hhdHRlchQAAAB0eXBlPXN0ZF9t c2dzL1N0cmluZw==</base64></value><value>thyatira</value><value><i4>39861</i4></value><value><i4>1500</i4></value></data></array></value></data></array></value></param></params></methodCall>

HTTP/1.1 200 OK Server: XMLRPC++ 0.7 Content-Type: text/xml Content-length: 569

<?xml version="1.0"?> <methodResponse><params><param> <value><array><data><value><i4>1</i4></value><value></value><value><array><data><value>UDPROS</value><value>thyatira</value><value><i4>33184</i4></value><value><i4>1</i4></value><value><i4>1500</i4></value><value><base64>EAAAAGNhbGxlcmlkPS90YWxrZXInAAAAbWQ1c3VtPTk5MmNlOGExNjg3Y2VjOGM4YmQ4ODNl YzczY2E0MWQxHwAAAG1lc3NhZ2VfZGVmaW5pdGlvbj1zdHJpbmcgZGF0YQoOAAAAdG9waWM9 L2NoYXR0ZXIUAAAAdHlwZT1zdGRfbXNncy9TdHJpbmc=</base64></value></data></array></value></data></array></value> </param></params></methodResponse>

Update: Unknown Error XMLRPC message on requestTopic for UDPROS is caused by invalid base64 UDPROS connection header in UDPROS.

@ahendrix - reading the roscpp tutorials, generating talker and listener, then replacing listener with unreliable_listener did the trick. I did not understand the prerequisites of your suggestion, but after a few hours of research I came up with the following Request and Response for requestTopic on XMLRPC for UDPROS (Now I know why multiple implementers have built the UDPROS, and not finished them. The state of my client the last year was hung up on the missing requestTopic documentation that is required to establish a connection on the UDPROS Clients components I wrote. I hope this helps other ROS Client implementers - if you decode the base64 you will discover it is the typical connection header parameters from TCPROS Protocol being passed in as base 64 String. Behavior Note: The Subscriber port is connected to from the Publisher, and in the test I performed the Publisher Port did not match the response port provided by the Publisher in the XMLRPC Request):

POST / HTTP/1.1 User-Agent: XMLRPC++ 0.7 Host: thyatira:46120 Content-Type: text/xml Content-length: 590

<?xml version="1.0"?> <methodCall><methodName>requestTopic</methodName> <params><param><value>/listener_unreliable</value></param><param><value>/chatter</value></param><param><value><array><data><value><array><data><value>UDPROS</value><value><base64>HQAAAGNhbGxlcmlkPS9saXN0ZW5lcl91bnJlbGlhYmxlJwAAAG1kNXN1bT05OTJjZThhMTY4 N2NlYzhjOGJkODgzZWM3M2NhNDFkMQ4AAAB0b3BpYz0vY2hhdHRlchQAAAB0eXBlPXN0ZF9t c2dzL1N0cmluZw==</base64></value><value>thyatira</value><value><i4>39861</i4></value><value><i4>1500</i4></value></data></array></value></data></array></value></param></params></methodCall>

HTTP/1.1 200 OK Server: XMLRPC++ 0.7 Content-Type: text/xml Content-length: 569

<?xml version="1.0"?> <methodResponse><params><param> <value><array><data><value><i4>1</i4></value><value></value><value><array><data><value>UDPROS</value><value>thyatira</value><value><i4>33184</i4></value><value><i4>1</i4></value><value><i4>1500</i4></value><value><base64>EAAAAGNhbGxlcmlkPS90YWxrZXInAAAAbWQ1c3VtPTk5MmNlOGExNjg3Y2VjOGM4YmQ4ODNl YzczY2E0MWQxHwAAAG1lc3NhZ2VfZGVmaW5pdGlvbj1zdHJpbmcgZGF0YQoOAAAAdG9waWM9 L2NoYXR0ZXIUAAAAdHlwZT1zdGRfbXNncy9TdHJpbmc=</base64></value></data></array></value></data></array></value> </param></params></methodResponse>

Update: Unknown Error XMLRPC message on requestTopic for UDPROS is caused by invalid base64 UDPROS connection header in UDPROS.header.

@ahendrix - reading the roscpp tutorials, generating talker and listener, then replacing listener with unreliable_listener did the trick. I did not understand the prerequisites of your suggestion, but after a few hours of research I came up with the following Request and Response for requestTopic on XMLRPC for UDPROS (Now I know why multiple implementers have built the UDPROS, and not finished them. The state of my client the last year was hung up on the missing requestTopic documentation that is required to establish a connection on the UDPROS Clients components I wrote. I hope this helps other ROS Client implementers - if you decode the base64 you will discover it is the typical connection header parameters from TCPROS Protocol being passed in as base 64 String. Behavior Note: The Subscriber port is connected to from the Publisher, and in the test I performed the Publisher Port did not match the response port provided by the Publisher in the XMLRPC Request):

POST / HTTP/1.1 User-Agent: XMLRPC++ 0.7 Host: thyatira:46120 Content-Type: text/xml Content-length: 590

<?xml version="1.0"?> <methodCall><methodName>requestTopic</methodName> <params><param><value>/listener_unreliable</value></param><param><value>/chatter</value></param><param><value><array><data><value><array><data><value>UDPROS</value><value><base64>HQAAAGNhbGxlcmlkPS9saXN0ZW5lcl91bnJlbGlhYmxlJwAAAG1kNXN1bT05OTJjZThhMTY4 N2NlYzhjOGJkODgzZWM3M2NhNDFkMQ4AAAB0b3BpYz0vY2hhdHRlchQAAAB0eXBlPXN0ZF9t c2dzL1N0cmluZw==</base64></value><value>thyatira</value><value><i4>39861</i4></value><value><i4>1500</i4></value></data></array></value></data></array></value></param></params></methodCall>

HTTP/1.1 200 OK Server: XMLRPC++ 0.7 Content-Type: text/xml Content-length: 569

<?xml version="1.0"?> <methodResponse><params><param> <value><array><data><value><i4>1</i4></value><value></value><value><array><data><value>UDPROS</value><value>thyatira</value><value><i4>33184</i4></value><value><i4>1</i4></value><value><i4>1500</i4></value><value><base64>EAAAAGNhbGxlcmlkPS90YWxrZXInAAAAbWQ1c3VtPTk5MmNlOGExNjg3Y2VjOGM4YmQ4ODNl YzczY2E0MWQxHwAAAG1lc3NhZ2VfZGVmaW5pdGlvbj1zdHJpbmcgZGF0YQoOAAAAdG9waWM9 L2NoYXR0ZXIUAAAAdHlwZT1zdGRfbXNncy9TdHJpbmc=</base64></value></data></array></value></data></array></value> </param></params></methodResponse>